STM32F1笔记
中断
NVIC(嵌套向量中断控制器)
NVIC相关寄存器 | 位数 | 寄存器个数 | 备注 |
---|---|---|---|
ISER(Set Enable, 中断使能寄存器) | 32 | 8 | 每个位控制一个中断 |
ICER(Clear Enable, 中断除能寄存器) | 32 | 8 | 每个位控制一个中断 |
AIRCR(应用程序中断及复位控制寄存器) | 32 | 1 | 位[10:8]控制优先级分组 |
IPR(中断优先级寄存器) | 8 | 240 | 8个位对应一个中断,而STM32只使用高4位 |
中断优先级
-
抢占优先级(pre):高抢占优先级可以打断正在执行的低抢占优先级中断
-
响应优先级(sub):当抢占优先级相同时,响应优先级高的先执行,但是不能相互打断
抢占和响应都相同的情况下,自然优先级(
中断向量表中的优先级
)越高的,先执行数值越小,优先级越高
中断优先级分组
优先级分组 | AIRCR[10:8] | IPRx bit[7:4]分配 | 分配结果 |
---|---|---|---|
0 | 111 | None : [7:4] | 0位抢占优先级,4位响应优先级 |
1 | 110 | [7] : [6:4] | 1位抢占优先级,3位响应优先级 |
2 | 101 | [7:6] : [5:4] | 2位抢占优先级,2位响应优先级 |
…… | …… | …… | …… |
一个工程中,一般只设置一次中断优先级分组