STM32的中断优先级别理解20210524
https://blog.csdn.net/dahailinan/article/details/80693781
理解:
1、STM32 总共有4个bit用来描述中断的种类,4个bit一共有5种组合【抢占式优先级别+副优先级(响应优先级)】,分组就决定了抢占优先级占用的bit数。组0也就是表示0个bit为抢占优先级。
2、抢占式优先级别高的可以打断低优先级别的工作,相同抢占优先级的不能相互打断。
3、副优先级高的中断来临是,序号低的优先处理【响应】。
前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4
前提条件2:“组”优先级别>“抢”占优先级别>“副”优先级别
前提条件3:同一组优先级别中,不同的抢占级别之间,其中一抢占级别正在做事,另外抢占级别不能打断他;(即”同一组优先级下的中断源间,没有中断嵌套“)
前提条件4:不同组优先级别间,依据优先级强弱,优先级别高的组的中断源可以打断优先级别低的组的正在做的事情;(即:不同组优先级间,可以中断嵌套)
对于上面的理解:
STM32中,每个设备都可以配置不同的 中断组,抢占优先级,响应优先级。
具体举例:
项目需要2个串口,但是不是两个串口同时使用,只是随机使用其中一个,程序对2个串口的优先级需要配置;
要求两个串口工作的时候不能相互打断,最好也不鞥你被其他程序打断,那么可以把2个串口都设置成 NVIC_PriorityGroup_0 分组0【0个bit表示抢占优先级】,副优先级可以分别设置为1,2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决