STM32(学习记录)——EXTI外部中断
STM32的每个I/O口都可以作为外部中断输入。
STM32的中断控制器可以支持20个中断/事件请求
其中的线0~15对应外部I/O口的输入中断
线16对应PVD输出
线17对应RTC闹钟事件
线18对应USB唤醒事件
线19对应以太网唤醒事件
图一 中断线与I/O口的对应关系
外部中断(标准库)一般配置过程:
①构建(GPIO口,NVIC嵌套中断控制器,外部中断)初始化结构体对象
GPIO_InitTypeDef GPIO_InitStruct
NVIC_InitTypeDef NVIC_InitStruct
EXTI_InitTypeDef EXTI_InitStruct
②开启IO时钟以及复用时钟(AFIO)(x=A~G)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCCAPB2Periph_GPIOx,ENABLE);
③初始化IO为输入(input)(x=A~G)
(1)编辑GPIO初始化结构体对象
配置IO口工作模式(input)
配置管脚(之后需要将其映射为外部中断输入端)
(2)调用GPIO_Init(GPIOx,&GPIO_InitStruct);
④编辑外部中断初始化结构体对象(y=0~15)
EXTI_InitSt