STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。
STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18:
线0~15:对应外部 IO口的输入中断。
线16:连接到 PVD 输出。
线17:连接到 RTC 闹钟事件。
线18:连接到 USB 唤醒事件。
GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线 0~15。PAx ~ PGx端口的中断事件都连接到了EXTIx外部中断线上,同一时刻只能响应一个端口的事件触发,不能同时响应所有GPIO端口的事件,但可以分时复用;
PA0、PA1、PA2、PB3、PB4、PC5、PC6、PC7、PC8、PD9、PD10、PD11、PD12、PD13、PD14、PE15 这些IO口可以同时引发中断;
实现EXTI线 0 ~ 15与对应IO口的配置是通过通过SYSCFG_EXTICR寄存器。
参考下图外部中断通用I/O映像: