NVIC 只可以配置 16 种中断向量的优先级,也就是说,抢占优先级和响应优先级的数量由一个 4 位的数字来决定,把这个 4 位数字的位数分配成抢占优先级部分和响应优先级部分。有 5 组分配方式 。这个为什么是五种分配方式呢?这是由M3内核中的应用程序中断及复位控制寄存器(AIRCR)(地址:0xE000_ED00)决定的,是由AIRCR的 8-10位决定的。寄存器截图如下:
设置五种分组的代码如下:
void NVIC_PRIGroup_Enable(uint32_t NVIC_PRIGroup)
{
/* Set the priority grouping value */
SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PRIGroup;
}
|