我们找到EXTI2_IRQHandler()这个函数,这就是EXTI2中断响应的函数。我的目标是将LED灯点亮,所以函数体其实很简单: void EXTI2_IRQHandler(void) { //点亮LED灯 GPIO_SetBits(GPIOD,GPIO_Pin_6); //清空中断标志位,防止持续进入中断 EXTI_ClearITPendingBit(EXTI_Line2)
EXTI9_5_IRQHandler * GPIO_Pin15-GPIO_Pin10 EXTI15_10_IRQn EXTI15_10_IRQHandler * */ void EXIT1_Init(void) { /* 开始AFIO时钟和GPIO时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB, ENABLE); /* GPIO结构体初始化 */ GPIO_InitTypeDef GPIO_InitStructure; GPIO...
voidEXTI0_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line0) != RESET) { // 这里可以添加中断处理代码,例如点亮一个LED GPIO_SetBits(GPIOA, GPIO_Pin_1); // 清除中断标志位 EXTI_ClearITPendingBit(EXTI_Line0); } } int main(void) { // 初始化外部中断 EXTI_Init_Config(); // 初始化L...
定义了一个名为EXTI0_IRQHandler的中断服务函数,通过读取EXTI_GetITStatus函数来检测是否有中断请求产生,执行完中断服务函数后,需要使用EXTI_ClearITPendingBit清除中断标志位并关闭中断。 上面的例子可能还是有点晦涩,我们先来看一下EXTI的基本结构,如图4所示: 图4 EXTI基本结构图 在上图中AFIO、EXTI、NVIC都有其特定...
#define KEY2_INT_GPIO_CLK RCC_APB2Periph_GPIOC static void EXTI_NVIC_Config(void); void EXTI_Key_Config(void); #endif /* __BSP_EXTI_H */ 接下来看中断服务函数stm32f10x_it.c void EXTI0_IRQHandler(void) { // 判断是否发生中断 ...
以GPIOC_PIN2对应的EXTI2为例,可以在上图中找到,EXTI2_IRQHandler就是其中断服务函数 后面接着的[WEAK]表示其是弱定义,用户可以自己重新定义。 EXTIX_IRQHandler() 还以上篇中的中断点灯为例, 当按键按下又抬起,EXTI2检测到上升沿后会向NVIC发送发送一个中断请...
// 外部中断4服务程序voidEXTI4_IRQHandler(void){delay_ms(10);//消抖if(KEY0==0)// 下降沿触发{LED0=!LED0;LED1=!LED1;}EXTI_ClearITPendingBit(EXTI_Line4);//清除LINE4上的中断标志位} 代码 这是主函数的代码,将中断完成之后,就能实现之前独立按键的功能了。
编号1 是输入线,EXTI 控制器有 19 个中断/事件输入线,这些输入线可以通过寄存器设置为任意一个 GPIO,也可以是一些外设的事件,这部分内容我们将在后面专门讲解。输入线一般是存在电平变化的信号。 编号2 是一个边沿检测电路,它会根据上升沿触发选择寄存(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应位的设置来...
IRQHandler ; Window Watchdog DCD PVD_IRQHandler ; PVD through EXTI Line detect DCD TAMPER_IRQHandler ; Tamper DCD RTC_IRQHandler ; RTC DCD FLASH_IRQHandler ; Flash DCD RCC_IRQHandler ; RCC DCD EXTI0_IRQHandler ; EXTI Line 0 DCD EXTI1_IRQHandler ; EXTI Line 1 DCD EXTI2_IRQHandler ; EXTI ...
(1)、中断屏蔽寄存器EXTI_IMR 图5为断屏蔽寄存器定义,本寄存器用于打开和关闭外部中断的请求,0~22位有效,对应之前提到的23个外部中断请求,对应的位写0时,关闭外部中断请求;对应位写1时,打开外部中断请求。 图5 中断屏蔽寄存器定义 (2)、事件屏蔽寄存器EXTI_EMR ...