STM32中断流程如下:
根据流程编写外部中断配置
①初始化IO口为输入
GPIOE_CRL &= ~(0XF << 16);
GPIOE_CRL |= 0x8 << 16;// 设置PE4 上下拉输入模式 2MHZ
GPIOE->ODR|=1<<4; //PE4 上拉
②开启IO口复用时钟
RCC->APB2ENR |= 1<<6; // 使能APB2总线时钟
RCC->APB2ENR|=0x01;//使能io复用时钟
③设置IO口与中断线的映射关系
AFIO->EXTICR[1] &= 0xfff0;
AFIO->EXTICR[1] |= 0xfff4; // PE4 配置为外部中断4
④初始化线上中断,设置触发条件等
EXTI->IMR |= 1<<4; // 放开来自线4上的中断
EXTI->FTSR |= 1<<4; // 允许线4的下降沿触发中断
⑤配置中断分组(NVIC),并使能中断
temp = SCB->AIRCR; // 读取先前的值
temp &= 0X0000F8FF; // 清空高位,并给BIT[10:8] 置0
temp |= (0X05FA<<16 | (7 - group) << 8); // 设置秘钥并设置优先级分组
SCB->AIRCR = temp;
NVIC->ISER[interrupt_channel/32] |= (1<<(interrupt_chan