1. pre-emption priority 先占优先级------抢占优先级
抢占优先级是中断能否打断其他中断的属性。
在STM32中,中断服务函数正在执行时,如果发生了一个更高抢占优先级的中断,当前中断会被新的中断打断,形成中断嵌套。抢占优先级由NVIC_IRQChannelPreemptionPriority参数配置,优先级数值越小,优先级越高。
2. subpriority 从占优先级------响应优先级
响应优先级在抢占优先级相同的情况下起作用。当两个抢占优先级相同的中断同时发生时,响应优先级高的中断会先得到处理。响应优先级由NVIC_IRQChannelSubPriority参数配置,数值越小,优先级越高。
3. 优先级分组(Priority Grouping)
STM32通过NVIC_PriorityGroupConfig函数设置优先级分组,这决定了抢占优先级和响应优先级在中断优先级寄存器中的位分配。分组有五种方案,从第0组到第4组,分别对应不同的抢占优先级和响应优先级的位数配置。例如,第2组配置中,抢占优先级有4个等级(0-3),响应优先级也有4个等级(0~3)。