STM32 共提供了 16 根中断线,但外部引脚数量远远大于中断线的数量,ST 公司
的设计如下图:
可以看到 PA0,PB0,……PG0 都对应第一根中断线,由图所示,所有引脚都有
自己对应的中断线。但是每个中断线只能选择他的候选项中的一条,这样不固
定引脚,大大提升了使用的自由。
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3); //将中断
3 和 GPIOA 连接。
GPIO_EXTILineConfig 函数负责将你选用的引脚和他的中断线绑定起来。上例即
使用 3 号中断,GPIOA,即 PA3。
在使用外部中断之前,记得开启引脚复用时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //使能
管脚复用时钟
同样要初始化中断使用的 GPIO,初始化为上拉输入状态。