凡亿教育-龙艳
凡事用心,一起进步
打开APP
公司名片
凡亿课堂 | 面试指南
当前位置: 首页 面试指南
单片机为什么要用中断?中断服务函数里能不能直接延时?
浏览量:10
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加环形缓冲?


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

相关文章

嵌入式系统的特点?

2024-03-27 11:15:11

STM32中断优先级与NVIC怎么配置?中断嵌套与延迟怎么理解?嵌入式面试

2026-09-16 10:00:53

EMC面试:频谱上是一排离散尖峰还是一片宽带噪声,怎么反推干扰源?

2026-10-21 17:04:41

电子工程师面试:项目做失败了怎么讲?会复盘的人反而更容易拿分

2026-10-16 20:21:56

SPI总线硬件设计要点有哪些?硬件工程师面试SPI接口设计与常见问题

2026-08-21 10:41:06