单片机为什么要用中断?中断服务函数里能不能直接延时?

浏览量:2
时间: 2026-10-30 11:53:05

FIRMWARE · 中断机制

这是嵌入式岗位非常典型的开场题,考的是实时性意识,而不是会不会写一个中断函数。

先给结论

轮询是CPU主动检查事件;中断是事件触发CPU暂时转去处理。ISR应尽量短、可预测,把复杂操作交给主循环或任务处理;忙等延时通常不适合放在中断里。

① 面试官到底在考什么?

面试官通常会追问串口、按键、定时器为什么常用中断;如果候选人回答“实时性高”,下一问就是中断优先级、共享变量与中断嵌套。

真实数字示波器屏幕照片。实际评估中断响应与执行时间时,可以让GPIO在ISR入口/出口翻转,再用仪器观察脉宽和时序抖动;本图不是该程序的实测结果。

② 工程思路:按这个顺序展开

01 / 先比较轮询与中断

轮询实现简单但检查频率受主循环影响;中断适合需要及时响应或异步到来的事件,但也会产生进入/退出和抢占开销。

02 / 把ISR职责界定清楚

通常先读取状态、清除或确认中断源、读取/写入必要寄存器,再把数据写入缓冲区或设置任务标志。不要在ISR里做大量打印、长时间等待或依赖其他上下文才能完成的阻塞操作。

03 / 说出验证办法

通过GPIO打点加示波器/逻辑分析仪测中断延迟与ISR执行时间,再检查较高优先级中断到来时是否影响其他关键任务。

③ 常见失分点

  • 说“中断永远比轮询效率高”,忽略高频中断风暴的成本

  • 在ISR中执行HAL_Delay之类依赖系统tick的等待,却没有考虑时基是否仍可前进

  • ISR和主程序共享变量不做同步与原子性分析

④ 面试时可以这样回答

“中断适合异步事件和有响应时间要求的场景,轮询适合简单且时序可控的任务。我的中断服务程序会尽量短,完成寄存器处理和必要的数据搬运,后续耗时工作放到主循环或RTOS任务。是否满足实时性,我会通过打点测中断响应与执行时间验证。”

面试官可能继续追问

如果UART接收中断频率很高,怎样改成DMA加环形缓冲?


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
EMC面试:军标GJB 151和民用/汽车EMC有什么区别?别只会背标准号

军标EMC面试重点不在背CE、CS、RE、RS编号,而在理解平台电磁环境、试验边界、线束配置、接地方式与设备任务可靠性的差异。面试先答结论:军标EMC和普通民用... 详情>>

2026-10-14 23:30:23
FPGA面试:位宽截断为什么会出Bug?Verilog有符号和无符号运算别混

RTL里很多“仿真能跑、结果偶发不对”的问题并不来自时序,而是位宽和符号扩展。Verilog表达式的结果位宽、signed/unsigned属性、常量写法都会影... 详情>>

2026-10-18 15:54:27
射频天线阻抗匹配怎么做?史密斯圆图与π型匹配怎么做?射频工程师面试

射频电路中高级技术基础题本文概述天线阻抗匹配是射频设计的基本功,史密斯圆图是匹配的核心工具,也是射频面试的进阶高频题。面试官想听的不是“加个匹配网络”,而是你懂... 详情>>

2026-09-08 09:00:02
辐射骚扰RE怎么测试与整改?3米法和10米法区别?辐射超标怎么定位?EMC面试

一句话答案辐射骚扰 RE 测设备 30MHz~1GHz(或 6GHz)的空间辐射,在半电波暗室用接收天线测;3 米法距离 3m,10 米法距离 10m,限值不同... 详情>>

2026-10-06 11:51:49
单片机I/O走线在PCB上怎样避免串扰?单片机面试要从边沿速率讲到间距和屏蔽

分类:单片机工程师面试题经验要求:中级难度:中级题型:布线规范📖 本文概述单片机I/O走线的串扰控制是PCB布线规范方向的高频面试题。本文从信号边沿速率评估、... 详情>>

2026-08-04 15:56:27
开班信息