当前位置: 首页 > news >正文

简单理解:配置NVIC优先级分组2(2位抢占+2位子优先级)具体有哪几个?

NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)优先级分组是 STM32 中用于管理中断优先级的重要机制,通过分组决定抢占优先级和子优先级各占多少比特位2。以下是具体介绍2:

  • 分组方式:STM32 支持 5 种优先级分组,通过NVIC_PriorityGroupConfig()函数配置。具体如下:
    • NVIC_PriorityGroup_0:0bit 抢占优先级、4bit 响应优先级,抢占优先级取值为 0,响应优先级取值为 0~15。
    • NVIC_PriorityGroup_1:1bit 抢占优先级、3bit 响应优先级,抢占优先级取值为 0~1,响应优先级取值为 0~7。
    • NVIC_PriorityGroup_2:2bit 抢占优先级、2bit 响应优先级,抢占优先级取值为 0~3,响应优先级取值为 0~3。
    • NVIC_PriorityGroup_3:3bit 抢占优先级、1bit 响应优先级,抢占优先级取值为 0~7,响应优先级取值为 0~1。
    • NVIC_PriorityGroup_4:4bit 抢占优先级、0bit 响应优先级,抢占优先级取值为 0~15,响应优先级取值为 0。
  • 优先级规则:组优先级高的中断能抢占组优先级低的中断,实现中断嵌套。若多个挂起异常共用相同的组优先级,则需使用次优先级来决定同组中的异常优先级。例如在 NVIC_PriorityGroup_2 中,抢占优先级为 0 的中断可以打断抢占优先级为 1、2、3 的中断,若两个中断抢占优先级都为 1,则子优先级低的(数值小)会先执行。

在 NVIC 优先级分组 2(2 位抢占优先级 + 2 位子优先级)下,抢占优先级(Preemption Priority)和子优先级(Sub Priority)的取值范围均为0~3(2 位二进制数的所有组合),二者的所有组合共形成4(抢占)× 4(子)= 16 种具体优先级配置

16 种优先级配置详情表

下表列出了所有组合,包含 “抢占优先级、子优先级、对应的 IP 寄存器 4 位值(二进制 / 十进制)”,其中:

  • IP 寄存器值:NVIC 的中断优先级控制寄存器(IP)用 4 位存储优先级,分组 2 下的格式为[抢占优先级(2位)][子优先级(2位)],即(抢占优先级 << 2) | 子优先级
  • 优先级规则:抢占优先级数值越小,优先级越高(可打断低抢占优先级中断);若抢占优先级相同,子优先级数值越小,优先级越高(仅决定同抢占级下的响应顺序,不可嵌套)。
序号抢占优先级(2 位)子优先级(2 位)IP 寄存器 4 位值(二进制)IP 寄存器值(十进制)
10000 000
20100 011
30200 102
40300 113
51001 004
61101 015
71201 106
81301 117
92010 008
102110 019
112210 1010
122310 1111
133011 0012
143111 0113
153211 1014
163311 1115

关键说明

  1. 优先级高低对比示例

    • 配置 1(抢占 0,子 0)优先级最高,可打断所有其他 15 种配置的中断;
    • 配置 16(抢占 3,子 3)优先级最低,无法打断任何其他配置的中断,且仅在所有高优先级中断未挂起时才响应;
    • 配置 5(抢占 1,子 0)和配置 7(抢占 1,子 2):抢占优先级相同,配置 5 的子优先级更高,若二者同时挂起,配置 5 先响应(不可嵌套)。
  2. 代码配置示例(以配置 7 为例):若需将某中断(如定时器 1 更新中断)配置为 “抢占 1,子 2”,代码如下:

    // 1. 先设置分组2(整个程序仅需调用1次) NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 2. 配置具体中断优先级(定时器1更新中断) NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_UP_IRQn; // 中断通道:定时器1更新 NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1; // 抢占优先级1 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2; // 子优先级2 NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; // 使能中断 NVIC_Init(&NVIC_InitStruct);
  3. 注意事项

    • 同一系统中仅能选择一种 NVIC 分组(如分组 2),多次调用NVIC_PriorityGroupConfig()会导致优先级混乱;
    • 抢占 / 子优先级不可超出 0~3 的范围,否则会出现未定义的中断响应行为。
http://www.jsqmd.com/news/349133/

相关文章:

  • 当图像“有了情绪”:一次基于 CLIP 的图像情感分类实践
  • 论文开题“黑科技”:书匠策AI如何让你的选题从“青铜”变“王者”?
  • 开题报告“救星”来了!书匠策AI教你轻松搞定学术第一步
  • 期刊投稿 “命中率” 飙升!虎贲等考 AI:精准锚定期刊偏好,论文见刊少走 1 年弯路
  • Scikit-learn 实战:15 分钟构建生产级中国房价预测模型 - 实践
  • 科研党收藏!更贴合继续教育的AI论文平台,千笔·专业学术智能体 VS 灵感ai
  • 2026年 会展策划/搭建/营销/设计/执行/布置/运营全链条服务商推荐榜:专业实力与创意口碑深度解析 - 品牌企业推荐师(官方)
  • OCR识别+文件提取:Java开发的实用工具路径
  • 《Seata从入门到实战》第一章:Seata核心概念与架构
  • 智慧农业蓝莓成熟度检测数据集VOC+YOLO格式926张3类别
  • 研究生收藏!全网顶尖的AI论文写作软件 —— 千笔·专业论文写作工具
  • 2026年湖北景观国际产品引进服务首选推荐:中美丽岛景观有限公司 - 2026年企业推荐榜
  • 一种很类似分治思想的问题解决策略及示例
  • 无人机视角路面异常城市道路裂缝泥堆坑洞垃圾积水检测数据集VOC+YOLO格式1274张11类别
  • 2026年有实力的乙二醇螺杆机,水冷水冷式螺杆机,低温水冷式螺杆机厂家实力推荐榜 - 品牌鉴赏师
  • 2026年卷板机厂家权威推荐:上辊万能/自动/液压/数控/四辊/大型/三辊卷板机源头厂家精选 - 品牌推荐官
  • Java生态AI基础能力:热门问题全解析
  • 从熬夜3天到10分钟!虎贲等考AI PPT重构学术演示逻辑,科研人终于不用肝图了
  • 论文双险通关!虎贲等考 AI 降重去 AIGC:让学术原创性无可挑剔
  • 论文开题“黑科技”:书匠策AI如何让你的选题“一键开挂”
  • 2026年可靠的食品级冷水机,乙二醇冷水机,工业冷水机厂家采购优选榜单 - 品牌鉴赏师
  • 论文开题不再愁!书匠策AI:你的科研“智能导航仪”
  • 2026年义乌本土餐饮品牌价值亲测盘点调研榜 - 呼呼拉呼
  • 住宅代理与数据中心代理在爬虫中的选择
  • 艺术IP版权方推荐TOP5:全球化视野下的多元选择 - 博客万
  • 爬虫IP封禁后的自动切换与检测机制
  • 开题报告“救星”驾到!书匠策AI如何让你的研究赢在起点?
  • int转四字节(小端)
  • 2026年义乌家庭聚餐与节庆宴席品牌指南:聚焦地道风味、情感联结与全家庭周期服务 - 呼呼拉呼
  • 高性价比拉篮品牌推荐,六款精工之选,点亮你的厨房收纳空间