野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6852|回复: 2

关于中断分组的问题

[复制链接]
发表于 2021-12-30 11:38:33 | 显示全部楼层 |阅读模式

    为了尽快熟悉 STM32,我仅看了 PDF 版本的资料。不懂的地方,我会 BaiDu 或者 Google 下,暂时没有时间看视频。
问此问题请谅解。

    关于中断的 Group 分为 Group_0, Group_1, Group_2, Group_3, Group_4

    可以通过 NVIC_PriorityGroupConfig 函数来配置系统使用哪个 Group.

    在网上搜索看到以下知识:
    观点1:组别是有优先级的
               Group_0 > Group_1 > Group_2 > Group_3 > Group_4
    观点2:在系统中,NVIC_PriorityGroupConfig 只能调用一次。
               即系统要么使用 Group0 或 Group1,不允许同时使用 Group0 和 Group1.

    我的问题1:"观点1“ 和 "观点2" 正确吗?
    我的问题2:如果系统只能选用一个 Group 的话,那为什么 Group 之间还有优先级呢? (很奇怪)





NVIC_PriorityGroupConfig
回复

使用道具 举报

发表于 2022-2-27 15:56:04 | 显示全部楼层
你没正确理解分组的意思,这个分组不是设定某个外设中断向量的优先级。而是 把中断向量 这个4位数据 进行拆分:几位表示抢占优先级 几位表示响应优先级:
例如:
#define NVIC_PRIORITYGROUP_0   ((uint32_t)0x00000007U)  0位抢占优先级,4位响应优先级
#define NVIC_PRIORITYGROUP_1   ((uint32_t)0x00000006U)  1位抢占优先级,3位响应优先级
#define NVIC_PRIORITYGROUP_2   ((uint32_t)0x00000005U)  2位抢占优先级,2位响应优先级
#define NVIC_PRIORITYGROUP_3   ((uint32_t)0x00000004U)  3位抢占优先级,1位响应优先级
#define NVIC_PRIORITYGROUP_4   ((uint32_t)0x00000003U)  4位抢占优先级,0位响应优先级

外设中断向量设定后 再改分组后 这个向量的设定的含义就变了 所以在引用时 一般只允许初始化时候进行一次分组 后面不要再变了 不然会把所有外设中断的优先级弄乱。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-3 15:52:37 | 显示全部楼层
白鹭林暗旅 发表于 2022-2-27 15:56
你没正确理解分组的意思,这个分组不是设定某个外设中断向量的优先级。而是 把中断向量 这个4位数据 进行拆 ...

多谢指导, TKS
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 04:00 , Processed in 0.051154 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表