STM32中断优先级分组主要有以下5种:
- 分组0:所有16位用于子优先级,没有抢占优先级。此时可配置的子优先级为0~15,共16级,适用于系统中对中断实时性要求不高,且中断源较多,需要更多子优先级来区分不同中断的情况。
- 分组1:最高1位用于抢占优先级,最低3位用于子优先级。可配置的抢占优先级为0和1,共2级;子优先级为0~7,共8级。适用于系统中有少数中断需要较高的实时响应,同时又有一些中断可以在其他中断处理过程中被打断,但需要通过子优先级来进一步区分同一抢占优先级下不同中断的情况。
- 分组2:最高2位用于抢占优先级,最低2位用于子优先级。可配置的抢占优先级为03,共4级;子优先级为03,共4级。这种分组方式在抢占优先级和子优先级的分配上比较均衡,适用于系统中不同中断对实时性要求有一定差异,且需要在不同级别中断之间进行合理调度的情况。
- 分组3:最高3位用于抢占优先级,最低1位用于子优先级。可配置的抢占优先级为0~7,共8级;子优先级为0和1,共2级。适用于系统中大部分中断需要有不同程度的实时响应,且对抢占优先级的需求较高,而子优先级只需简单区分的情况。