关于STM32中断优先级分组的科普,初学者常见问题解答(Q&A)

2019-07-20 23:41发布

CM3内核集成了强大的NVIC(可嵌套的向量中断控制器),
权威指南中介绍它就花了大量篇幅,
要把整个NVIC完全搞懂也不容易,
我也只学习了一点皮毛,
对于初学者来说,中断优先级分组及中断优先级设定这种基本问题是绕不开的,
刚接触NVIC的同学对此常有疑问,
本帖仅仅针对STM32中断优先级分组这一个方面,
给初学者科普一下这方面的常见问题,
老手请绕道,不过欢迎进来交流。
也可以提新的问题,我所知道的尽量解答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
warship
1楼-- · 2019-07-22 10:55
问题十一:两个不同的中断,优先级可以设置完全一样吗?
答:可以。
实际上,我们常用的STM32是用4位来区分优先级的。共可设16种不同的优先级,而我们可用的中断远不止16种,
所以当系统用到的中断数多于16种时,也不得不重复了。这时候,完全相同优先级的两个中断根据硬件的排序来决定谁先得到服务,具体查阅有关手册。
如果真的优先级数不够用时,我们可以把无所谓谁先谁后的两个中断设置为完全相同的优先级。
warship
2楼-- · 2019-07-22 14:55
 精彩回答 2  元偷偷看……
warship
3楼-- · 2019-07-22 18:27
 精彩回答 2  元偷偷看……
warship
4楼-- · 2019-07-22 21:30
本帖最后由 warship 于 2018-7-28 20:47 编辑

关于SYSTICK中断优先级的讨论
http://www.openedv.com/forum.php ... =1&extra=#pid862314
SCB->SHP[11]即为SYSTICK的中断优先级
其它系统异常的优先级寄存器为:
存储器管理 fault 的优先级:   SCB->SHP[0]  
总线 fault 的优先级:SCB->SHP[1]
用法 fault 的优先级:SCB->SHP[2]
SVC 优先级:SCB->SHP[7]
调试监视器的优先级:SCB->SHP[8]
PendSV 的优先级:SCB->SHP[10]

筑梦233
5楼-- · 2019-07-23 01:56
感谢楼主
嘀嗒
6楼-- · 2019-07-23 06:50
谢谢楼主精心列举解答问题,解决了我许多困惑。

一周热门 更多>