-
2016-04-16 15:15:01
下降沿检测,说白了就是满足这样一个逻辑,上次检测是1,这次检测是0,就是下降沿。 从这个条件可知,要确保能够正确检测到一个下降沿,负脉冲的宽度,必须大于一个检测周期,当负脉冲宽度小于一个检测周期,就有可能产生漏检。另一方面,要正确检测逻辑1,同样要求高电平持续时间大于一个检测周期。 如果检测是硬件的,比如INT0中断,一个检测周期是一个机器周期,比如1us,那么脉冲信号的宽度就必须保证高电平、低电平都大于1us,所以说,检测上限是500K。
如果检测是软件的,比如每1mS检测一次,检测上限就浊500Hz。
sbit inputPin = P1^0; void main(void ) { bit savePinState = inputPin; while(1) { delay_1T(); // 检测间隔 bit nowPinState = inputPin; if (( savePinState == 1 ) && ( nowPinState == 0 )) { // 检测到下降沿 } savePinState = nowPinState; // 这句是重点,保存当前的状态,下次再检测这就是"上次状态" } }
更多相关内容 -
6、TM4C12G单片机中断方式实现按键检测
2019-05-01 13:41:10TM4C12G单片机中断方式实现按键检测 1、首先看一下板子上按键的原理图 可以发现PF0和PF4两个引脚接了两个按键,当按键按下的时候就会接地,即变成低电平,前面讲GPIO作输入时是利用GPIOPinRead()函数来循环读取...TM4C12G单片机中断方式实现按键检测 1、首先看一下板子上按键的原理图
可以发现PF0和PF4两个引脚接了两个按键,当按键按下的时候就会接地,即变成低电平,前面讲GPIO作输入时是利用GPIOPinRead()
函数来循环读取io状态判断按键是否被按下,但这样显然有一个问题,即CPU在这一时刻不能作其他事情,所以能不能通过一种办法使CPU做其他事情的同时还能检测按键,即今天我们要说的内容:外部中断。2、中断
什么是单片机的中断?举一个例子,假如说玩游戏时,女朋友突然打电话过来,我们不得不停下游戏去接这个电话,然后接完电话继续进行我们的游戏。在这个过程中,电话铃声就可以理解为一个中断的触发,然后我们接了电话,即响应了这个中断,通话过程是中断程序做的事情,然后接完电话玩游戏就是单片机做完中断以后继续原来的工作。
那么在单片机的C语言代码是怎么实现的呢?
其实,我们会定义一个函数,但是这个函数和我们一般使用的函数不同,它是不需要被我们手动调用的,它的执行完全被单片机自动唤醒,唤醒的条件被用户定义。以今天要说的按键为例,即当检测到有低电平或下降沿时,单片机会停下当前正在进行的代码,转到我们定义的中断函数中,执行一系列操作。
3、代码实现
这里我们用按键1,即PF4。
(1)首先开启PORTF端口外设
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF)) {}
(2)配置PF0为上拉输入
GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_DIR_MODE_IN); GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);//上拉
GPIO_PIN_TYPE_STD_WPU
的意思是配置成上拉模式,即没有按键按下时高电平,有按键按下变为低电平。(3)配置中断触发类型
GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_FALLING_EDGE);//下降沿
GPIO_FALLING_EDGE
的意思是下降沿,这里也可以设置为GPIO_LOW_LEVEL
,即低电平。按键按下这个事件,电平由高到底,所以下降沿或低电平作为中断触发类型都可以。可以看下库函数中的其他参数:
//***************************************************************************** // // Values that can be passed to GPIOIntTypeSet as the ui32IntType parameter, // and returned from GPIOIntTypeGet. // //***************************************************************************** #define GPIO_FALLING_EDGE 0x00000000 // Interrupt on falling edge #define GPIO_RISING_EDGE 0x00000004 // Interrupt on rising edge #define GPIO_BOTH_EDGES 0x00000001 // Interrupt on both edges #define GPIO_LOW_LEVEL 0x00000002 // Interrupt on low level #define GPIO_HIGH_LEVEL 0x00000006 // Interrupt on high level #define GPIO_DISCRETE_INT 0x00010000 // Interrupt for individual pins
从宏的名称便可以看出中断触发类型。
(4)设置中断处理程序的地址
GPIOIntRegister(GPIO_PORTF_BASE, io_interrupt);
这里解释一下,
io_interrupt
是一个函数,在C语言里面函数名其实也是一个地址,将该中断处理程序的函数名作为参数传进这个GPIOIntRegister
函数中,即告诉了单片机这个中断处理函数的存储地址,当有中断事件发生时便进行寻址,找到这个函数进行执行。如果不用这个函数,我们也可以到中断向量表里手动进行注册,TM4C123G单片机的中断向量表位于
startup_TM4C123.s
文件。但是因为手动注册比较麻烦,所以推荐大家使用GPIOIntRegister
函数。(5)开启中断
GPIOIntEnable(GPIO_PORTF_BASE, GPIO_INT_PIN_4); IntEnable(INT_GPIOF); IntMasterEnable();
在单片机中,好多外设都有中断,为了有序的管理这些中断,便有了一些“开关”,通过代码控制各个部分中断的开启关闭。以这三行代码为例:
IntMasterEnable();
开启了总开关IntEnable(INT_GPIOF);
开启了F端口的开关,类似的其他外设://***************************************************************************** // // The following are defines for the interrupt assignments. // //***************************************************************************** #define INT_ADC0SS0 INT_CONCAT(INT_ADC0SS0_, INT_DEVICE_CLASS) #define INT_AES0 INT_CONCAT(INT_AES0_, INT_DEVICE_CLASS) #define INT_CAN0 INT_CONCAT(INT_CAN0_, INT_DEVICE_CLASS) #define INT_COMP0 INT_CONCAT(INT_COMP0_, INT_DEVICE_CLASS) #define INT_DES0 INT_CONCAT(INT_DES0_, INT_DEVICE_CLASS) #define INT_EMAC0 INT_CONCAT(INT_EMAC0_, INT_DEVICE_CLASS) #define INT_EPI0 INT_CONCAT(INT_EPI0_, INT_DEVICE_CLASS) #define INT_FLASH INT_CONCAT(INT_FLASH_, INT_DEVICE_CLASS) #define INT_GPIOC INT_CONCAT(INT_GPIOC_, INT_DEVICE_CLASS)
GPIOIntEnable(GPIO_PORTF_BASE, GPIO_INT_PIN_4);
开启了PF4的开关(6)编写中断处理函数
void io_interrupt(void) { uint32_t s = GPIOIntStatus(GPIO_PORTF_BASE, true); GPIOIntClear(GPIO_PORTF_BASE, s); if((s&GPIO_PIN_4) == GPIO_PIN_4) { while(!GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_4))//等待按键松开 ; //TODO flag = !flag; } }
中断处理函数即是中断被触发后单片机做的事情,其实中断的触发在单片机底层是将一个寄存器的某一位写为1,然后这个1触发了中断,因此为了保证下一次中断被重新触发,在进入中断后我们需要用
GPIOIntStatus
函数获取这个F端口的状态,然后用GPIOIntClear
将其清零。因为所有F端口下的引脚都会进入这个函数中进行处理,比如说这个单片机是PF0 - PF7,所以我们需要用这个
if((s&GPIO_PIN_4) == GPIO_PIN_4)
语句判断究竟是那个引脚触发了中断,这里是PF4,按键引脚。然后等待按键松开,进行自己想要的操作,这里是将一个变量进行了非操作。
最后附上测试的源代码:
程序功能:通过按键切换红蓝灯的闪烁。
#include <stdint.h> #include <stdbool.h> #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_gpio.h" #include "inc/hw_ints.h" #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/sysctl.h" #include "driverlib/interrupt.h" void io_interrupt(void); void delay_ms(uint32_t n); bool flag = 1; int main(void) { //时钟频率:40MHz SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); //开启外设 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF)) {} GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1);//设置PF1为输出,红灯 GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2);//设置PF2为输出,蓝灯 //设置PF4为上拉输入模式 GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_DIR_MODE_IN); GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //配置中断 GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_FALLING_EDGE); GPIOIntRegister(GPIO_PORTF_BASE, io_interrupt); //开启中断 GPIOIntEnable(GPIO_PORTF_BASE, GPIO_INT_PIN_4); IntEnable(INT_GPIOF); IntMasterEnable(); while(1) { if(flag == 1) { GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0xFF); delay_ms(100); GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x00); delay_ms(100); } else { GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0xFF); delay_ms(100); GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0x00); delay_ms(100); } } } //中断处理程序 void io_interrupt(void) { uint32_t s = GPIOIntStatus(GPIO_PORTF_BASE, true); GPIOIntClear(GPIO_PORTF_BASE, s); if((s&GPIO_PIN_4) == GPIO_PIN_4) { while(!GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_4))//等待按键松开 ; flag = !flag; } } void delay_ms(uint32_t n) { for(uint32_t i = 0; i < n; i++) SysCtlDelay(SysCtlClockGet()/3000); }
-
CubeMX配置STM32外部中断HAL库检测PWM频率
2021-07-28 09:12:00初始化引脚 SW下载 ...External Interrupt Mode with Rising edge trigger detection/l上升沿触发 External Interrupt Mode with Falling edge trigger detection//下降沿触发 External Interrupt .- 初始化引脚
SW下载
时钟输入
PA1作为外部中断的接收引脚,那么你只需要点击PA1,在点击它对应的GPIO_EXTIx
配置串口打印日志(条件编译打印日志)
具体实现细节和代码。
2. 使能中断
- GPIO配置
External Interrupt Mode with Rising edge trigger detection/l上升沿触发 External Interrupt Mode with Falling edge trigger detection//下降沿触发 External Interrupt Mode with Rising/Falling edge trigger detectionl/上升沿或下降沿触发
我们配置为上升沿触发并下拉
4. 导出项目
5.逻辑代码实现
变量定义int pwm_value=0;
外部中断函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin==GPIO_PIN_1) { pwm_value++; } }
核心代码(计数pwm_value/每秒)
pwm_value=0; HAL_Delay(1000); user_main_info("pwm_value -> %d Hz",pwm_value);
-
STM32+STM32CubeMX 中断系统与外部中断基础
2021-12-02 10:21:21外部中断EXIT是STM32芯片实时处理外部事件的一种机制,由于中断请求来自GPIO端口的引脚,所以称为外部中断 三、外部中断的程序设计思路 传统STM32外部中断设计步骤: 基于STM32CubeMX的外部中断设计步骤: 中断...文章目录
前言
提示:这里可以添加本文要记录的大概内容:
例如:STM32CubeMX对于初学者更加的容易,配置过程相对寄存器和库函数较为简单,所以本文介绍一下STM32CubeMX中断的配置。
提示:以下是本篇文章正文内容,下面案例可供参考
一、STM32的中断系统
中断、中断源、中断向量、中断优先级、中断服务函数……
ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。
STM32的中断通道可能会由多个中断源共用。这就意味着,某一个中断服务函数也可能被多个中断源所共用。所以,在中断服务函数的入口处,需要有一个判断机制,用以辨别是哪个中断触发了中断。
STM32有2个优先级概念:抢占优先级和响应优先级,每个中断都需要指定这两种优先级。
Cortex M3内核中有一个称为嵌套向量中断控制器(NVIC)的设备,对中断进行统一的协调和控制。其中最主要的工作就是控制中断使能和确定中断优先级。
二、STM的外部中断
外部中断EXIT是STM32芯片实时处理外部事件的一种机制,由于中断请求来自GPIO端口的引脚,所以称为外部中断
STM32芯片有16个外部中断源EXTI0-EXTI15,分别对应着7个中断向量,也就是对应着7个中断服务函数。
EXTI0、EXTI1、EXTI2、EXTI3、EXTI4:专用。
EXTI5-EXTI9:共用。
EXTI10-EXTI15:共用。
EXTI0的连接引脚是:PA0-PG0,每个端口组的0号引脚。以此类推。
外部中断触发条件:上升沿触发、下降沿触发或双边沿触发。
注意:不能配置成高电平触发和低电平触发。
三、外部中断的程序设计思路
传统STM32外部中断设计步骤:
(1)将GPIO初始化为输入端口
(2)配置相关I/O引脚与中断线的映射关系。
(3)设置该I/O引脚对应的中断触发条件
(4)配置NVIC,并使能中断
(5)编写中断服务函数
基于STM32CubeMX的外部中断设计步骤:
(1)在STM32CubeMX中指定引脚,配置中断初始化参数。
(2)重写该I/O引脚对应的中断回调函数。
中断初始化配置
(1)将GPIO设置为:GPIO_EXIT功能。下图是PC13的设置,其他引脚设置方法相同
(2)设置中断触发条件:上升沿、下降沿、上升沿或下降沿。
(3)使能相关的NVIC通道。
四、例子
开发板引脚对应图,如下图所示
引脚分配图
将PC13、PD3、PA0引脚设置成外部中断,分别设置为下降沿/上升沿/下降沿触发,在中断服务函数中如下图
中断服务函数的编写
在生成的工程中,首先,找到main.c文件,可以照看引脚的配置
其次,我们找到stm32f1xx_it.c文件,本文件是各个引脚配置好的EXIT函数,下图是以PA0为例子
跳转到下图中的函数,在到main中重新写虚函数
下面是中断函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_13) //PC13判断是否触发 { HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5); //LED1电平翻转 } if(GPIO_Pin == GPIO_PIN_3) //PD3判断是否触发 { HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_12); //LED2电平翻转 } if(GPIO_Pin == GPIO_PIN_0) //PA0判断是否触发 { HAL_GPIO_TogglePin(GPIOD,GPIO_PIN_12); //LED2电平翻转 HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5); //LED1电平翻转 } }
总结
以上就是今天要讲的内容,本文仅仅简单介绍了STM32CubeMX中断设置的使用
-
12.中断+外部中断
2022-02-24 21:35:53对于单片机来讲,中断是指 CPU 在处理某一事件 A 时,发生了另一事件 B, 请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应), 转去处理事件 B(中断服务);待CPU将事件B处理完毕后,再回到原来事件 A ... -
外部中断与内部中断原理与使用
2021-07-26 09:36:511.解释 计算机执行某一程序时,发生了紧急事件或者有特殊请求,CPU暂停某程序的执行,转而去处理上述事件,处理完毕后再重新执行原来被打断的程序。...(这两个中断源标志与中断方式由特殊功能寄存器TCON的低四位控制) -
AVR单片机中断实现 ATmega16 INT ISR(INT0_vect)
2021-01-17 19:07:382.21实例功能前面例子中分别介绍了按键控制发光二极管的亮...单片机中除了具有基本输入输出功能的作用外,还有专门检测外界信号并作出响应的中断系统。在本例中,通过利用外部中断实现单片机对按键事件的响应和处理... -
STM32——中断、EXTI、按键中断实验
2021-09-17 14:52:541.1 中断的含义1.2 中断的作用(了解即可)1.3 中断的流程二、中断资源2.1 NVIC中断控制器2.2 NVIC寄存器三、优先级的概念四、中断编程 一、中断是什么? 1.1 中断的含义 说道中断,首先需要对中断这个概念有所了解... -
STM32中断------------边沿触发中断与电平触发中断的匹配
2019-07-08 17:13:30STM32的中断涉及的内容比较多,我们今天仅仅说明不同中断触发类型之间的匹配。STM32外部中断的触发方式都是边沿触发,如下: EXTI_Trigger_Rising = 0x08, EXTI_Trigger_Falling = 0x0C, EXTI_Trigger_Rising_... -
【stm32f407】外部中断实现按键中断方式
2017-06-07 11:20:44STM32F4的每个IO都可以作为外部中断的中断输入口,这点也是STM32F4的强大之处。STM32F407的中断控制器支持22个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F407的22个... -
STM32F103外部中断实现
2021-10-13 19:43:44中断是单片机中最重要的一个功能了,通过中断可以提高程序的运行效率,可以是单片机及时的响应各种外设的请求。STM32系列单片机的中断主要由嵌套向量中断控制器来管理。 嵌套向量中断控制器特性如下: 68个... -
3.STM32CubeMX学习笔记三:STM32的中断系统与外部中断基础
2022-01-13 20:10:18使用STM32F103ZET6开发板,利用HAL库进行的STM32CubeMX学习笔记三:STM32的中断系统与外部中断基础 -
中断系统\中断源及中断分类和中断类型码
2021-02-08 16:24:42文章目录第八章 中断系统8.1 中断的基本概念8.1.1 中断概念的引入及描述中断方式示意(以输入中断为例)**中断**的定义8.1.2 中断源及中断分类中断的分类8.1.3 中断类型码中断类型码中断向量中断向量表中断向量表的... -
电压正向过零检测电路的设计.doc
2019-07-23 17:58:14220V的交流电首先经过电阻分压,然后进行光电耦合,假设输入的是A相电压,则在A相电压由负半周向正半周转换时,图中三极管导通并工作在饱和状态,会产生一个下降沿脉冲送入ADμC812的INT0引脚使系统进入中断程序。... -
STM32外部中断触发
2020-10-21 16:50:49最近在做一个关于USB PD快充的项目,在使用外部中断的时候遇到了一个奇怪的问题,一使能中断就直接触发了外部中断,进去了中断服务函数。 引脚配置是高电平,上拉;也量了引脚的电平,是一个持续的高电平,并没有... -
Linux 中断实验
2021-11-08 21:48:56目录Linux 中断简介Linux 中断API 函数上半部与下半部设备树中断信息节点获取中断号硬件原理图分析实验程序编写修改设备树文件 不管是裸机实验还是Linux 下的驱动实验,中断都是频繁使用的功能,关于I.MX6U 的中断... -
STM32(8):番外篇之“上升沿 vs. 下降沿”
2022-01-20 22:18:02D触发器里面约定的时钟是上升沿敏感(postedge),reset(重置)是下降沿敏感(negedge);这种是约定俗称;如果时钟改成是下降沿敏感,就是反向D触发器;上升沿下降沿互换在绝大多数场景下是没有问题的,但是有些... -
通过中断控制led灯 与 中断通信
2021-11-05 21:57:57目录一、中断的介绍1.1 单片机的中断1.2 STM32的中断1.2.1 中断地址1.2.2 中断优先级1.2.3 中断使能1.3 中断的过程二、利用STM32CubeMX生成HAL库代码,并实现LED的控制参考文献 一、中断的介绍 1.1 单片机的中断 ... -
STM32——中断(外部中断、定时器中断)
2021-04-24 20:18:12STM32F407芯片支持82个可屏蔽中断 NVIC:嵌套向量中断控制器,控制芯片中断相关功能。由于ARM给NVIC预留了非常多的功能,但是对于使用M4内核设计芯片的公司可能就不需要这么多功能,于是就需要在NVIC上进行裁剪。ST... -
手把手之STM32中断
2021-01-17 13:59:06代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续... -
中断
2017-12-08 18:55:50中断系统主程序遇中断请求后,执行中断请求处理程序,完成后继续执行主程序。... INT0外部中断0由P3.2引入,低电平或者下降沿触发。中断号0 2. INT1外部中断1由P3.3引入,低电平或者下降沿触发。中断号2 3. -
C51教程 第四个51程序:中断控制--外部中断0
2020-02-18 20:31:52单片机中断是指CPU在正常执行程序的过程中,由于计算机内部或外部发生了另一事件(如定时时间到,超压报警等),请求CPU迅速去处理,CPU暂时停止当前程序的运行,而转去处理所发生的事件。通俗的讲,就是单片机在中断发生时... -
51单片机----中断
2022-02-10 13:22:27中断系统:上电复位:用了一个阻容电路电容通交隔直 单片机的引脚默认都是有一个上拉电阻的,也就是默认端口是5v ...如果有这样一个下降沿产生的话就会进入到一个外部中断处理中去。 这是一个非... -
gd32f303 设计中断优先级_ALIENTEK 阿波罗 STM32F767 开发板资料连载第九章 外部中断实验...
2020-11-21 04:45:471)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子第九章 外部中断实验这一章,我们将向大家介绍如何使用 STM32F7 的外部输入中断... -
51单片机(二十八)—— 外部中断实验
2020-03-06 11:12:21INT0—外部中断0,由P32端口线引入,低电平或下降沿触发中断。 INT1—外部中断1,由P33端口线引入,低电平或下降沿触发中断。 T0—定时器/计数器0中断,由T0计数器计满回零引起。 T1—定时器/计数器1中断,由T1... -
51单片机(V51)学习——外部中断和定时器中断
2020-09-29 22:10:0051单片机(V51)学习——外部中断和定时器中断简单使用一、外部中断(下降沿开启和低电平开启)(1)外部中断概念:(2)下降沿演示:(3)低电平中断二、定时器中断(1)概念:(2)简单使用 一、外部中断(下降沿... -
中断——外部中断,定时计数器,串口通信
2020-05-05 14:51:505.中断响应条件(同时满足) (1)中断源有中断请求 (2)此中断允许位置1,打开中断控制(IE寄存器) (3)CPU打开总中断(EA=1) 二.外部中断 1.外部中断请求 见中断源,即P3.2或P3.3引脚低电平或下降沿型号可以触发... -
中断方式-计算机组成原理与汇编语言-电子发烧友网站
2021-07-16 00:29:505.2.1 中断的基本概念1.中断的概念及中断源分类在CPU执行程序过程中,由于某种事件发生,强迫CPU暂时停止正在执行的程序而转向对发生的事件进行处理,事件处理结束... NMI称为非屏蔽中断请求输入信号,上升沿有效。... -
STM32的串口空闲中断及接受数据
2020-12-19 12:00:35STM32的串口空闲中断及接受数据——STM32简介STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核STM32的串口空闲中断及接受数据——关于什么是空闲中断:检测到接收数据后,在... -
Linux内核中断结构
2021-05-08 11:09:27Linux内核中断结构