首先我们需要知道什么是中断优先级:中断优先级是CPU响应中断的先后顺序
中断优先处理的原则是:
- 先响应优先级高的中断请求,再响应优先级低的中断请求。
- 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
- 如果同级的多个中断请求同时出现
中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是:
- 先响应优先级高的中断请求,再响应优先级低的中断请求。
- 如果一个中断请求己被响应,同级的其他中断请求将被禁止。
- 如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。
单片机内部自然优先级顺序(由高到低)为:
外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断
中断优先级的配置:
首先,对STM32中断进行分组,组0-4.同时,对每个中断设置一个抢占优先级和一个响应优先级
抢占优先级和响应优先级的区别
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行。
使用讲解 :
实际在使用中我们可以根据实际情况设置相应的优先级分组。
特别注意:一个程序代码里只能有一个中断优先级分组,存在多个 优先级分组可能会导致程序出现奇奇怪怪的错误!
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
5997文章
43948浏览量
620550 -
cpu
+关注
关注
68文章
10412浏览量
206465 -
中断优先级
+关注
关注
0文章
22浏览量
9266
发布评论请先 登录
相关推荐
STM32F103的寄存器NVIC_IPRx抢占优先级和子优先级是怎么设置的?
STM32F103的寄存器NVIC_IPRx有些不明白,抢占优先级和子优先级是怎么设置的?
如果,中断分组2,抢占优先级3,子优先级3
发表于 03-27 07:48
RTTnano的用户main函数中的优先级是多少?
RTTnano 的用户main函数中的优先级是多少?为什么会出现创建新的task之后,main函数会抢占掉低优先级的task,例如RT_THREAD_PRIORITY_MAX设置为8 ,低于3
发表于 02-26 08:01
STM32 MCU通过STM32CubeMx配置NVIC怎么没有中断子优先级选项
时,不难发现一个问题,那就是怎么没有中断子优先级【或称响应优先级、副优先级等】的配置?!【当然,
发表于 09-09 09:25
•785次阅读
PLIC管理的中断的优先级和RISC-V本身的机器定时器以及软中断的中断优先级问题
请问PLIC管理的外设中断的优先级和RISC-V本身的机器定时器以及软中断谁的优先级会更高?
机器定时器中断和软
发表于 06-25 19:05
评论