外部中断可以理解为IO口进行输入捕获外部设备电平,当IO口检测到电平符合设置 需求的时候,进入中断,执行中断回调函数。 常用也是为按键的输入捕获,但是外部中断进行输入捕获远远比普通的按键轮询更加可靠,也更加精确。
外部中断各种配置
捕获边沿配置
上升沿捕获: 也就是电平上升的边缘,实际上就是低电平变为高电平的这一瞬间
下降沿捕获: 电平下降的边缘,也就是高电平变为低电平的这个瞬间。
双边缘捕获: 是前面两者的结合体。所以使用该模式的时候,一个按键输入捕获去进行消抖的前提下,可以进入2次中断(按下一次边缘,抬起一次边缘)
例:
假设按键另外一端接GND,这样输入的GPIO就要配置为上拉模式(防止电平跳动到gnd),当按键不按下的时候,IO口就一直读取到为高电平,按下了就变为低电平,抬起了又变成高电平。期间就出现了 高--> 低 --> 高 的电平跳动
IO口配置
我们的GPIO口大体上可以看成是GPIOX_PinX 然而外部中断只跟Pin相关,所以EXTIX , 后面的X , 也就与Pin对应, 所以配置中断的时候要切记,不要同一个Pin脚去反复配置, 如: PA1 和PB1 , 这样触发的都是 EXTI1 的中断,效果是一样的。
所以我们的外部中断在stm32里面,主要就是 0- 15的中断, 也就符合了Pin0 - Pin15
拓: 外部中断也常用于低功耗模式的唤醒,特别是停止模式唤醒。