STM32学习笔记---NVIC中断优先级(重点提分组)
抢占优先级小的优先,可以打断优先级大的程序;
响应优先级(也成为子优先级)不能打断程序但是在同时发生时响应优先级小的优先
优先级分组
优先级分组可以确定能有多少个抢占优先级和响应优先级
STM32用了4位确定分组(如上图)能有多少抢占优先级或响应优先级以2的n次方确定,
比如分组3,有2的3次方个抢占优先级即8个抢占优先级,2的1次方即2个响应优先级
中断分组函数:
NVIC_PriorityGroupConfig();
NVIC_InitTypeDef结构体:
typedef struct
{
uint8_t NVIC_IRQChannel; //初始化哪个中断
uint8_t NVIC_IRQChannelPreemptionPriority; //定义这个中断抢占优先级
uint8_t NVIC_IRQChannelSubPriority; //定义子优先级
FunctionalState NVIC_IRQChannelCmd; //中断是否使能
}NVIC_InitTypeDef;
中断初始化函数:
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)