关于STM32的中断优先级
1.STM32中每一个中断都有一个专门的寄存器,(Interrupt Priority Register),来描述该中断的占先式优先级和副优先级,在这个寄存器中STM32使用4个二进制位描述优先级
2.占先式优先级和副优先级的分配
优先级组别 | 占先式优先级 | 副优先级 |
4 | 4位/16级 | 0位/1级 |
3 | 3位/8级 | 1位/2级 |
2 | 2位/4级 | 2位/4级 |
1 | 1位/2级 | 3位/8级 |
0 | 0位/1级 | 4位/16级 |
中断组别0-4,即表示了中断占先式优先级的位数,中断组别为n,占先式有n位,副优先级(4-n)位,有2^n个优先级(从0开始),在每个优先级下面,有(2^(4-n))个副优先级。
前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4
前提条件2:“组”优先级别>“抢”占优先级别>“副”优先级别
前提条件3:同一组优先级别中,不同的抢占级别之间,其中一抢占级别正在做事,另外抢占级别不能打断他;(即”同一组优先级下的中断源间,没有中断嵌套“)
前提条件4:不同组优先级别间,依据优先级强弱,优先级别高的组的中断源可以打断优先级别低的组的正在做的事情;(即:不同组优先级间,可以中断嵌套)