1.NVIC优先级
1.NVIC分组不参与优先级
2.中断同时发生,抢占优先级高的就会抢占 抢占优先级低的先执行
3.抢占优先级相同,中断同时发生,子优先级高的先执行中断
4.抢占优先级与子优先级相同时,比较硬件中断编号,编号越小,优先级越高。
下面是NVIC优先级分组,0-4组,每组16个中断优先级
2.NVIC程序配置
1.NVIC分组
2.配置外部中断源
3.配置抢占优先级
4.配置子优先级
5.使能中断
NVIC中断源:
NVIC软件配置
static void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* ÅäÖÃNVICΪÓÅÏȼ¶×é1 */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
/* ÅäÖÃÖжÏÔ´£º°´¼ü1 */
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
/* ÅäÖÃÇÀÕ¼ÓÅÏȼ¶ */
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
/* ÅäÖÃ×ÓÓÅÏȼ¶ */
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
/* ʹÄÜÖжÏͨµÀ */
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
以上纯属个人观点,若有不正之处,请不吝赐教!