首页/新闻资讯/正文详情

【嵌入式外设精学】Day03|中断优先级:抢占、响应、嵌套

发布时间:2026/9/26 17:41:49 来源:云帆数科 栏目:资讯中心
【嵌入式外设精学】Day03|中断优先级:抢占、响应、嵌套
【嵌入式外设精学】Day03中断优先级抢占、响应、嵌套今天解决两个中断谁先跑ISR 里会不会被打断数字是不是越大越高目录问题 2. 原理 3. 代码 4. 误区 5. 自测 6. 答案1. 问题周期控制和串口同时来会不会抖在中断里delay会不会出大事2. 原理2.1 两级优先级Cortex-M 里常见名称作用抢占优先级数值更小的可以打断数值更大的 ISR响应优先级子优先级抢占级相同时谁先排队进服务不嵌套口诀抢占定“能不能插队”响应定“同级谁先上”。2.2 嵌套高抢占级 ISR 可以打断低抢占级 ISR现场保存后跑完再回来。代价栈占用变大共享数据要更小心。2.3 为什么 ISR 要短ISR 跑多久比它优先级低的中断就要等多久主循环也会被拖住。delay_ms(100)、长格式化printf都不该出现在 ISR 里。2.4 和实时控制的关系控制环若在“低优先级、还总被打断”的地方跑周期会抖。所以传感器采样/控制往往给更高抢占级显示、菜单放主循环。3. 代码示例#includestm32f4xx.hvoidnvic_init(void){NVIC_InitTypeDef nvic;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/* 组别影响“几位抢占、几位响应”按手册选一种统一约定 *//* 控制/采样更高优先数字更小 */nvic.NVIC_IRQChannelTIM3_IRQn;nvic.NVIC_IRQChannelPreemptionPriority0;nvic.NVIC_IRQChannelSubPriority0;nvic.NVIC_IRQChannelCmdENABLE;NVIC_Init(nvic);/* 串口其次 */nvic.NVIC_IRQChannelUSART1_IRQn;nvic.NVIC_IRQChannelPreemptionPriority1;nvic.NVIC_IRQChannelSubPriority0;nvic.NVIC_IRQChannelCmdENABLE;NVIC_Init(nvic);}ISR 里只做“快事”voidUSART1_IRQHandler(void){if(USART_GetITStatus(USART1,USART_IT_RXNE)!RESET){uint8_tb(uint8_t)USART_ReceiveData(USART1);/* 入队即可不要在这里解析显示大延时 */uart_rx_push(b);}}保护共享变量主循环 ISR 都会写时__disable_irq();/* 修改共享结构的几条语句 */__enable_irq();临界区要尽量短只包“必须一致的那几行”。4. 常见误区误区正解数字越大优先级越高Cortex-M 常见是越小越高子优先级也能嵌套嵌套看抢占ISR 里while等外设很容易卡死系统关中断保护越久越安全会丢事件、抖周期5. 自测抢占级 2 和 1谁可打断谁为什么中断里不宜delay_ms(100)6. 答案抢占级 1优先级更高可打断 2。其它中断和主循环被拖住丢事件、控制变抖甚至看门狗复位。作者shuifanyu标签中断NVIC优先级实时

相关推荐

大模型工程化实战(一):概率坍塌的救赎 - 用 JSON Schema 给 LLM 输出加锁并接入 TaoToken
大模型工程化实战(一):概率坍塌的救赎 - 用 JSON Schema 给 LLM 输出加锁并接入 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 17:41:30

Multi-Agent工具可见性设计:从全局注入到动态路由的工程实践
Multi-Agent工具可见性设计:从全局注入到动态路由的工程实践

我调一个客服售后 Multi-Agent 的时候遇到过这样一幕:负责退款审批的子 Agent 面对用户的订单信息,非常自信地生成了一条“已退款”的回复,可实际上它根本没调订单状态查询工具——不是不想调,而是这个工具的 schema 压根没出现在… · 2026/9/26 17:41:30

Claude Code模板工程化:CLAUDE.md、斜杠命令与团队复用实践
Claude Code模板工程化:CLAUDE.md、斜杠命令与团队复用实践

我大概是从Claude Code还是小范围预览时就入坑的,头三个月基本是想到什么问什么,后来发现自己在重复做同一类事情:开新项目要交代技术栈、写完代码要评审、改完逻辑要补测试、要重构了得先列计划。这些话术每次都要重新组织,偶尔还… · 2026/9/26 17:41:11

从刷榜到落地:大模型真实场景应用开发实战与避坑指南
从刷榜到落地:大模型真实场景应用开发实战与避坑指南

1. 从“刷榜”到“落地”:为什么真实场景成了大模型的新战场过去两年,我身边做AI的朋友聊天的画风经历了三次明显转变。2023年上半年,大家见面第一句是“你那边卡够不够”;2023年下半年变成“你们微调用的什么数据集”&#xff1b… · 2026/9/26 18:37:07

从零手写小型编译程序:词法分析、语法分析与代码生成实战
从零手写小型编译程序:词法分析、语法分析与代码生成实战

简介:这份资源面向学习编译原理、需要完成课程设计的高校学生,围绕SLR(1)分析法实现一个小型编译程序,解决从高级语言源程序到四元式程序翻译的实践问题。资源包共14个文件,约22KB,以c源码、dat测试数据、asm汇编输出、… · 2026/9/26 18:37:07

手写小型编译程序:从词法分析到栈式虚拟机的完整实现指南
手写小型编译程序:从词法分析到栈式虚拟机的完整实现指南

简介:这份资源面向学习编译原理、需要完成课程设计的高校学生,围绕SLR(1)分析法实现一个小型编译程序,解决从高级语言源程序到四元式程序翻译的实践问题。资源包共14个文件,压缩后约22KB,以c源码、dat测试数据、asm汇编… · 2026/9/26 18:37:07

Flask搭配Django开发化妆预约系统:微信小程序全栈实践
Flask搭配Django开发化妆预约系统:微信小程序全栈实践

做化妆造预约系统,前后端技术栈怎么配才顺手?这个标题里同时出现了 Flask 和 Django,老实说第一次看到的时候我也愣了一下——这两个框架平时很少出现在同一个项目里。但实际做下来你会发现,这个组合不但不冲突,反而把… · 2026/9/26 18:37:07

Java GC核心知识点全梳理:GC Root、循环引用与三色标记法详解
Java GC核心知识点全梳理:GC Root、循环引用与三色标记法详解

Java GC核心知识点整合:从GC Root到三色标记法的一次彻底梳理每次排查线上OOM或者JVM频繁Full GC的时候,我总会习惯性地先打开堆转储文件,顺着引用链一路往上翻。翻到最顶端的某个"根"时,真相往往就藏在那条引用链上。这… · 2026/9/26 18:37:07

Jev决策模型与TypeSafe AI:从API Key到置信度路由的完整工程实践
Jev决策模型与TypeSafe AI:从API Key到置信度路由的完整工程实践

1. Jev 在 TypeSafe 决策体系里到底扮演什么角色1.1 Jev 与 TypeSafe AI 的关系先说个容易混淆的点:Jev 不是某个 JavaScript 工具库,也不是冷门框架的名字,它是 TypeSafe 决策体系里的一个模型服务。和常见的聊天模型不同,Jev 的… · 2026/9/26 18:37:00

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码