目录
一、简单介绍外部中断
中断即打断,实至CPU再执行当前程序时,由于系统出现了某种需要处理的紧急情况,CPU暂停正在执行的程序,转而去执行另一段特殊程序来处理的出现的紧急事务,处理结束后CPU自动返回到原先暂停的程序中去继续执行,这种执行过程由于外界的的原因被中间打断的情况成为中断。
外部中断EXTI(External interrupt/event controller)特指的是,在中断向量表中的EXTI的外部中断,STM32的每个IO都可以作为外部中断输入。EXTI管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。
STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级。具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
优先级分组
分组 | 抢占优先级 | 响应优先级 |
组0 | 0 | 0-15 |
组1 | 0-1 | 0-7 |
组2 | 0-3 | 0-3 |
组3 | 0-7 | 0-1 |
组4 | 0-15 | 0 |
二、外部中断结构图
三、外部中断配置
1、中断配置界面
2、配置GPIO
选择最下面一项是中断选项
3、配置对应外部中断通道的中断使能位
4、此时在内核NVIC中设置外部中断
5、生成代码,初始化线上中断,设置触发条件
EXIT_Init()
6、编写中断服务函数
NVIC_Init()
7、清除中断标志
上拉指输入高电平,下拉指输入低电平
浅浅来一个中断的代码
是控制LED灯的。