|
参考如上的方式,3bit 可分为5个组,0~4,而当其分组号确定之后,对应的抢占式和响应优先级的数目也对应的已经确定了。
比如分组2,,对应于2bit抢占式优先级和2bit响应优先级,因此对应的抢占式优先级必须在0~3,同理响应优先级也是0~3.
1.2抢占优先级 & 响应优先级区别:
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
抢占优先级相同的中断,即:响应优先级:当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
以上说明:只要符合中断分组方式,只需要注意对应的抢占式和响应的优先顺序,如果是同一个等级,可分配抢占式和响应优先级相同。
NVIC_InitTypeDef NVIC_InitStructure;
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
/* Enable the USARTy Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
2.中断优先级设置步骤