十三、中断原理介绍
1. 中断基础知识
1.1 什么是中断
灵活的使用系统中断可以大大提高单片机对随机事件的实时处理能力,进而提高单片机的工作效率。那什么是中断呢?这里举一个例子,比如我们正在敲代码,突然有一个电话打过来,这时我们停止敲代码转而去接电话,然后在电话聊完事情之后继续敲代码。这里面的电话就相当于一个中断,打断我们当前做的事情,接电话聊事情就相当于中断需要去执行的事情,也就是中断服务程序。
1.2 外部中断
- NVIC 中断向量:实际使用中断向量数请参考参考手册中断向量表(不包括 Cortex™-M4F的 16 根中断线),每个中断向量可以根据中断选择寄存器选择对应的外设中断事件请求。
- 可编程优先级: 16 个可编程优先级(使用了 4 位中断优先级)。
- 不可屏蔽中断:可以独立选择多种系统中断事件请求作为不可屏蔽中断,且各中断事件请求配备独立的使能选择,挂起,清除挂起寄存器。
- 配备 16 个外部管脚中断。
- 配置多种外设中断事件请求,具体请参考中断事件请求序号列表。
- 配备 32 个软件中断事件请求。
- 中断可唤醒系统休眠模式和停止模式。
1.3 GPIO中断触发源
EIRQ0~EIRQ15对应每个端口的引脚。 例如:PA01对应EIRQ1,PC05对应EIRQ5。。。。。。
1.4 中断事件
中断选择寄存器 INTC_SEL0~31 选择的中断与软件中断共用 NVIC 的 0~31 号中断向量,由INTC_IER 中断使能寄存器控制许可;同时这些中断事件请求也可被选择为事件输入来唤醒内核(WFE)。
1.5 中断优先级
每一个中断都有16个可配置的优先级。
数字越小说明优先级越高,等级越高,反之则越小。