[应用相关] NVIC中断应用

[复制链接]
487|6
 楼主| 狗啃模拟 发表于 2021-12-30 21:54 | 显示全部楼层 |阅读模式
AD, ic, vi
1.NVIC优先级

1.NVIC分组不参与优先级
2.中断同时发生,抢占优先级高的就会抢占 抢占优先级低的先执行
3.抢占优先级相同,中断同时发生,子优先级高的先执行中断
4.抢占优先级与子优先级相同时,比较硬件中断编号,编号越小,优先级越高。


 楼主| 狗啃模拟 发表于 2021-12-30 21:56 | 显示全部楼层
下面是NVIC优先级分组,0-4组,每组16个中断优先级
 楼主| 狗啃模拟 发表于 2021-12-30 21:59 | 显示全部楼层
 楼主| 狗啃模拟 发表于 2021-12-30 22:00 | 显示全部楼层
2.NVIC程序配置
1.NVIC分组
2.配置外部中断源
3.配置抢占优先级
4.配置子优先级
5.使能中断
 楼主| 狗啃模拟 发表于 2021-12-30 22:02 | 显示全部楼层
NVIC中断源:
9680761cdbba3198be.png
 楼主| 狗啃模拟 发表于 2021-12-30 22:02 | 显示全部楼层
NVIC软件配置

  1. static void NVIC_Configuration(void)
  2. {
  3.   NVIC_InitTypeDef NVIC_InitStructure;
  4.   
  5.   /* ÅäÖÃNVICΪÓÅÏȼ¶×é1 */
  6.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  7.   
  8.   /* ÅäÖÃÖжÏÔ´£º°´¼ü1 */
  9.   NVIC_InitStructure.NVIC_IRQChannel =  EXTI0_IRQn;
  10.   /* ÅäÖÃÇÀÕ¼ÓÅÏȼ¶ */
  11.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  12.   /* ÅäÖÃ×ÓÓÅÏȼ¶ */
  13.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  14.   /* ʹÄÜÖжÏͨµÀ */
  15.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  16.   NVIC_Init(&NVIC_InitStructure);
  17. }
 楼主| 狗啃模拟 发表于 2021-12-30 22:04 | 显示全部楼层
以上纯属个人观点,若有不正之处,请不吝赐教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1054

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部