您的位置:首页 > 其它

NVIC中断个人理解

qq_33214029 2020-07-21 04:14 197 查看 https://blog.csdn.net/qq_33214

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);
}

以上纯属个人观点,若有不正之处,请不吝赐教!

标签: