STM32单片机面试:串口接收为什么常用DMA?DMA与中断方式怎样选择?

浏览量:2
时间: 2026-11-01 10:04:14
嵌入式单片机 · 求职面试高频问答

“UART串口每来一个字节都进中断行不行?”这是嵌入式单片机常见追问。考点不在于说DMA更快,而在于理解CPU搬运数据与数据接收边界如何协作。

01 / 中断和DMA,真正差在哪里

逐字节中断接收的优点是逻辑直观,适合低速、短帧数据;缺点是每个字节都触发CPU处理,高波特率或多任务系统中更容易受到中断响应延迟的影响。

DMA允许外设数据直接搬运到内存缓冲区,CPU负责配置、帧结束判定和业务处理;DMA并不是不需要CPU,也不代表丢包永远不会发生。

DMA控制器在外设与内存之间搬运数据的原始工程结构示意图

02 / 工程中常见的接收方案

已知固定长度帧:DMA满缓冲中断或双缓冲机制即可判断一帧。

长度不固定:经常组合UART空闲线检测(IDLE)与DMA环形缓冲;处理时记录读写位置,防止覆盖未消费数据。

还应验证溢出、噪声导致的帧错误、数据缓存一致性(带D-Cache平台)、缓冲区边界和任务间同步。

03 / 面试参考回答

“短报文、吞吐低时用中断更简单。持续高速串口流我倾向DMA加环形缓冲,由空闲检测或协议长度确定帧边界,应用层做队列解析和异常计数;最后用连续发送、CPU高负载和超长帧验证不会丢数据。”

04 / 追问:DMA收到了,为什么解析还是错?

重点排查读写指针竞争、缓冲区覆盖、帧头帧尾和校验处理,而不是一上来就改波特率。

知识点:STM32面试题、UART DMA接收


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

一句话答案LDO 噪声靠 PSRR(电源抑制比)和输出噪声指标衡量:PSRR 随频率升高下降,低频靠 LDO、高频靠电容;RF/ADC 模拟供电用 LDO 是因... 详情>>

2026-09-18 09:05:01
EMC整改中,滤波器件选型有哪些常见误区?

📂 分类:EMC电磁兼容📊 经验级别:中级⭐ 难度:★★★☆☆📝 题型:整改实战题本文概述EMC整改中滤波器件选型常见的误区包括:只看标称值不看实际频率特... 详情>>

2026-08-11 11:22:19
12V转3.3V时,你会选LDO还是Buck?为什么?

电源研发岗位很常问这道题,因为只背拓扑是不够的,还要把压差、效率、功耗、噪声和成本放在同一张设计决策清单里。面试回答的核心选择取决于输入输出压差和负载电流。压差... 详情>>

2026-10-29 23:05:59
微带带通滤波器仿真中心频率正确,实物却偏移:先怀疑模型哪一项?

在微波PCB里,走线不只是互连;线宽、耦合间距、介质参数和金属外壳都是滤波器的一部分。从实物读结构|边缘耦合谐振器不是独立电感电容图中是边缘耦合的微带半波谐振器... 详情>>

2026-10-27 17:08:36
FPGA跨时钟域信号怎么处理?FPGA面试CDC设计与亚稳态解决方案

分类:FPGA设计经验级别:中高级难度:中等偏难题型:原理+设计题本文概述跨时钟域(CDC)是FPGA设计中最容易出问题也最容易被面试的知识点之一。本文从亚稳态... 详情>>

2026-08-21 10:44:54
开班信息