- UID
- 1029342
- 性别
- 男
|
SCB->AIRCR
STM32的中断分组:STM32将中断分为5个组,组0~4。该分组的设置是由SCB->AIRCR寄存器的bit10~8来定义的。具体的分配关系如下表所示: 组
| AIRCR[10:8]
| bit[7:4]分配情况
| 分配结果
| 0
| 111
| 0:4
| 0位抢占优先级,4位响应优先级
| 1
| 110
| 1:3
| 1位抢占优先级,3位响应优先级
| 2
| 101
| 2:2
| 2位抢占优先级,2位响应优先级
| 3
| 100
| 3:1
| 3位抢占优先级,1位响应优先级
| 4
| 011
| 4:0
| 4位抢占优先级,0位响应优先级
|
通过这个表,我们就可以清楚的看到组0~4对应的配置关系,例如组设置为3,那么此时所有的60个中断,每个中断的中断优先寄存器的高四位中的最高3位是抢占优先级,低1位是响应优先级。每个中断,你可以设置抢占优先级为0~7,响应优先级为1或0。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。
这里需要注意2点:
1,如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。
2,高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。
而在老版本的STM32标准外设库中也是有这样一个stm32f10x_map.h文件的。定义和上面的差不多,不同地方可能就是长度不同。
我现在手里拿的是最新的STM32标准外设库(3.5版),里面已经没有了stm32f10x_map.h这个文件了,要知道stm32f10x_map.h这个文件中定义了所有外设寄存器的结构和内存映射,像各个寄存器的结构体,基址,地址等等。
在新版的STM32的标准外设库中,将这些文件分开定义了,去掉了stm32f10x_map.h这个头文件后,新加入了stm32f10x.h 和core_cm3.h两个头文件。
在core_cm3.h中,定义了:
|
|