1.EXTI外部中断
中断概念
总结:当中断满足的时候,CPU暂停运行,进入中断执行相应逻辑
中断执行流程
中断优先级:根据多个中断的紧急程度,进行顺序执行
中断嵌套:中断内部嵌套中断,当执行一级中断的时候,如果再次触发内部中断,就会进入二级中断 执行逻辑: 主程序->一级中断->二级中断 执行完成后 二级中断->一级中断->主程序 继续运行
概念:
内部外设中断:
1.NVIC
Nested Vectored Interrupt Controller的缩写,即嵌套向量中断控制器。
在STM32等微控制器中,NVIC用于管理中断,它可以实现中断的优先级设置、中断的使能和禁用、中断的嵌套等功能。
总结:引脚电平变化,触发中断,软件触发:程序触发,支持所有的GPIO口,但是Pin号相同的,不能同时触发中断。
NVIC优先级分组
以医院排号为例,响应优先级可以插队看病,我没有取了最后一个号,但是等上一个病人看完病,不管排了多少人,我都可以先看病 。 抢占优先级可以不等上一个病人看完,直接叫号进行看病,抢占优先级高的就可以进行中断嵌套。两个中断的抢占优先级跟响应优先级都一样的,以中断号为排序。数字越小优先级越高
解释:四位寄存器 即为 0000
如果抢占优先级0位,取值为0 那么到1111 就有时16种情况
如果抢占优先级1位,那么高位置只有0跟1 两种选择 , 而000对应0 111对应4+2+1 =7,所以相应优先级有8种选择,而抢占优先级有2 种选择 ,数字越小优先级越高。
NVIC 的基本结构
CPU 为医生,NVIC 为叫号系统,会可以优先安排紧急的病人,最左侧为病人;
2.APIO中断引脚选择器
他可以在三个GPIO的16个引脚里面选择一个进入EXTI通道
APIO 主要有两个功能,第一个就是刚刚讲到的中断引脚选择,第二个就是引脚重映射,这里补充一下引脚重映射的概念。
引脚重映射:
是指将特定外设功能的引脚重新分配到不同的引脚上,以满足不同的硬件设计需求和提高系统的灵活性比如PA0有很多作用,但是不能同时执行两种功能,就可以把PA0重新映射到新的引脚上。
3.EXTI
(External Interrupt/Event Controller,外部中断/事件控制器)
中断响应跟事件响应的关系与区别
事件相应不会触发中断,而是触发别的外设的中断操作,属于与外设的联合工作,而中断响应属于正常流程,引脚电平变化触发中断。
这里的输入线,就是20根输入线 ——> 边沿检测电路 上升沿触发寄存器跟下降沿寄存器可以选择触发方式——>或门输入端
逻辑符号说明:
-
或门: 长得像导弹头(可以有多个输入,但是只能有一个输出),只有全部输入0 输出才为0
-
与门:大于半圆(同样有多个输入,但是只有一个输出,只要有一个为0,那么输出就为0,只有全部为1 才会为1)
-
非门: 三角形,一个输入输出,输入0 就为1 输出1 就为0
-
数据选择器,符号为梯形,有多个输入,一个输出,侧面有选择控制端,根据控制端数据,从输入选择一个到输出,这些就是常见的逻辑符号
总结:外部中断主要应用于以下场景:实时响应紧急事件,如工业系统故障检测;快速响应用户交互,提升设备响应速度;实现与外部设备同步;用于低功耗系统的唤醒;以及在安全关键系统中进行安全监控。