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

 

posted @ 2021-05-24 20:20  流水江湖  阅读(1293)  评论(0编辑  收藏  举报