找回密码
 注册
关于网站域名变更的通知

STM32F1 NVIC中断管理

2024-8-30 13:44| 查看: 59| 评论: 0

摘要: STM32F1 NVIC中断管理 NVIC两个属性:抢占属性、响应属性(编号越小,优先级越高) NVIC_IRQChannelSubPriority 参数配置例子:三个中断向量A、B、C 中断向量名称 抢占优先级 响应优先级 ...
下载.jpg

STM32F1 NVIC中断管理

NVIC两个属性:抢占属性、响应属性(编号越小,优先级越高)



NVIC_IRQChannelSubPriority 参数配置例子:三个中断向量A、B、C



中断向量名称        抢占优先级        响应优先级

A        0        0

B        1        0

C        1        1

此处中断A可以打断中断B,但B不能打断C。

两个要点:

1、若两个中断的抢占优先级和响应优先级相同,则哪一个先发生就先执行。

2、不同的抢占优先级,高抢占优先级可以打断正在进行低抢占优先级

相同的抢占优先级,高响应优先级不可以打断正在进行低响应优先级



NVIC的优先组



0-1总共五个分配方式:



第0 组: 所有4 位用来配置响应优先级。即16 种中断向量具有都不相同的响应优先级。

第1 组:最高1 位用来配置抢占优先级,低3 位用来配置响应优先级。表示有2 种级别的抢占优先级(0 级,1 级),有8 种响应优先级,即在16 种中断向量之中,有8 种中断,其抢占优先级都为0 级,而它们的响应优先级分别为0~7,其余8 种中断向量的抢占优先级则都为1 级,响应优先级别分别为0~7。

第2 组:2 位用来配置抢占优先级,2 位用来配置响应优先级。即4 种抢占优先级,4 种响应优先级。

第3 组:高3 位用来配置抢占优先级,最低1 位用来配置响应优先级。即有8 种抢占优先级,2 种响应2 优先级。

第4 组:所有4 位用来配置抢占优先级,即NVIC 配置的16 种中断向量都是只有抢占属性,没有响应属性。



示例代码:



    //配置NVIC:设置NVIC中断分组2:2位抢占优先级,2位响应优先级

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);



    //定义NVIC中断结构体

    NVIC_InitTypeDef NVIC_InitStructure;

    //使能XXXXX_IRQn所在的中断通道

    NVIC_InitStructure.NVIC_IRQChannel = XXXXX_IRQn;            

    //设置抢占优先级

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;

    //设置响应优先级

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;   

    //使能中断通道

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    //初始化中断结构体         

    NVIC_Init(&NVIC_InitStructure);



STM32F4中断管理与此次类似,这里只是介绍基本配置和优先级高低问题




本站资讯文章系编辑转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。
本站拥有对此声明的最终解释权。
收藏 邀请
关闭

推荐内容上一条 /1 下一条

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 11:54 , Processed in 0.109375 second(s), 28 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

返回顶部