1、概述
EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种。因此,EXIT在实际项目开发中也是比较常见的一种。EXTI(External interrupt/event controller) —外部中断/事件控制器, 管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独置可以单独配置为中断或者事件,以及触发事件的属性。
EXTI功能框图:
2、准备工作
本次采用按键作为触发源的方式来使得控制器产生中断,并在中断服务函数中执行相应的命令。按键按下->LED状态做出相应的改变,并尝试用不同优先级的中断来让LED灯做出相应的改变。
硬件设计:
轻触按键在按下时会使得引脚接通,通过电路设计可以使得按下时产生电平变化。
3、代码描述
3.1 初始化用来中断的GPIO
3.2 初始化EXTI
3.3 配置NVIC
3.4编写中断服务函数
按键和EXTI宏定义:
嵌套向量中断控制器NVIC配置:
/**************************************************/
static void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/*配置中断源:KEY2*/
NVIC_InitStructure.NVIC_IRQChannel = KEY2_INT_EXTI_IRQ;