以下总结参考原子STM32开发指南
STM32F103 的中断控制器支持 19 个外部中断/事件请求。STM32F103 的19 个外部中断为:
线 0~15:对应外部 IO 口的输入中断。
线 16:连接到 PVD 输出。
线 17:连接到 RTC 闹钟事件。
线 18:连接到 USB 唤醒事件。
每个中断线对应了最多 7 个 IO 口,以线 0 为例:它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、 GPIOF.0、 GPIOG.0。
在库函数中,配置 GPIO 与中断线的映射关系的函数 GPIO_EXTILineConfig()来实现的:
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
然后看一下这个函数的使用范例:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2); //将中断线2与GPIOE映射起来
中断线上中断的初始化是通过函数 EXTI_Init()实现的。EXTI_Init()函数的定义是:
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
我们来看看结构体 EXTI_InitTypeDef 的成员变量:
typedef struct
{
uint32_t EXTI_Lin