欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > STM32——HAL库开发笔记18(中断的优先级)(参考来源:b站铁头山羊)

STM32——HAL库开发笔记18(中断的优先级)(参考来源:b站铁头山羊)

2025/2/22 2:05:56 来源:https://blog.csdn.net/weixin_65582542/article/details/145602692  浏览:    关键词:STM32——HAL库开发笔记18(中断的优先级)(参考来源:b站铁头山羊)

一、基本概念

中断优先级是指系统在处理多个中断请求时,决定哪个中断先被处理的顺序。优先级高的中断会优先得到处理,而优先级低的中断则会被暂时挂起,直到高优先级的中断处理完毕。

二、中断优先级分组

对于STM32F103C8T6,它分为0-15,总共16个终端优先等级,数字越小,等级越高。

四位二进制数来表示中断优先级

bit3、bit2为抢占优先级,和中断嵌套、中断排队有关

bit1、bit0为子优先级,只和中断排队有关

因此产生了物种分配方式,如下图

以上就是中断优先级分组。

三、中断排队

在中断程序执行的时候产生中断,这时候就需要排队,排队规则就是中断优先级越高,排队越靠前。两个中断的优先级相同时,遵循先来后到的原则。

四、中断嵌套

中断嵌套是指在一个中断处理过程中,系统允许更高优先级的中断打断当前中断处理程序,转而执行新的中断处理程序。待高优先级中断处理完成后,再返回继续执行原中断处理程序。

是否发生中断嵌套只和抢占优先级有关,而且发生的条件是:新中断的优先级更高。

五、例子

假设我们采用两位抢占优先级和两位子优先级的分组方式,此时他们的取值范围都是(00~11)即(0~3)。

在我们执行常规程序时来了中断1优先级为11(1011B)抢占优先级为2,子优先级为3,我们写为(2,3)。

执行中断1时又来了中断2,优先级为8(1000B)(2,0)。对比一下两个中断的抢占优先级,都是2,所以遵从先来后到原则。在这时候又来了中断3 ,优先级为4(0100B)(1,0)中断3的抢占优先级为1,比中断1和中断2的优先级高,所以发生中断嵌套,先执行中断3,中断3结束后再执行中断2和中断1。中断1和中断2相比,中断2优先级高,所以先执行中断2。

最终执行顺序为:中断3、中断2、中断1。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词