1.EXTI外部中断,可以检测指定的GPIO的电平信号,档期指定的GPIO口产生电平信号时EXTI将立即向NVIC发送中断申请,经过NVIC裁决后即可中断CPU主程序,像CPU执行EXTI对应的中断程序
2.支持触发的模式,上升沿和下降沿,双边沿,软件出发
3.支持的GPIO口:所有的GPIO口,但相同的PIN不能同时触发中断
4.通道数:16个GPIO_PIN,外加PVD输出,RTC闹钟,USB唤醒,以太网唤醒
5.触发相应方式:中断响应/事件响应
中断系统
1.在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂时停当前正在运行的程序,转而去处理中断程序,处理完成之后再返回来被暂停的位置继续运行
2.中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行决裁,优先级响更加紧急的中断源
3.中断嵌套:当一个中断程序正在运行时,又有新的更高中断优先级的中断源申请,CPU再次暂停去处理新的中断程序,处理结束后再一次进行返回
库函数
1.复位AFIO外设
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
2.锁定GPIO防止被意外更改
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
3.配置AFIO的事件输出功能功能的
void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_EventOutputCmd(FunctionalState NewState);
4.用来进行引脚重映射
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
5.可以配置AFIO的数据选择器,选择想要中断的引脚
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
6.以太网外设
void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);
7.清楚EXTI配置,恢复成上电默认状态
void EXTI_DeInit(void);
8.根据结构体里的参数配置EXTI外设
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
9.把参数传递的结构体变量赋一个默认值
void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);
10. 软件触发外部中断
void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);
11.中断分组
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
12.根据结构体里的指定参数初始化NVIC
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
13.设置中断向量表
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
14.系统低功耗配置
void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);