嵌入式Linux / 企业面试高频题 ·
开发板上电有串口输出,但终端里全是乱码。硬件和内核都可能有问题,面试官更希望听到按层级验证的排查顺序。
面试先说结论
先确认串口类型和电平,再让两端通信参数一致:波特率、数据位、校验位、停止位、流控。Linux控制台还要核对bootargs中的console设备名、启动阶段串口配置和设备树pinctrl。乱码不能直接等同于驱动损坏。
一、核心原理与工程判断

先区分TTL与RS232
很多开发板调试排针输出3.3V或1.8V TTL/CMOS UART电平;传统RS232电压与极性不同。直接把RS232接口接到SoC UART排针可能造成不正常通信甚至损坏,不应只看插头能否接上。
乱码与无输出的差别
乱码说明信号可能已经到达接收端,但波特率/位格式/时钟偏差或电平波形不对。完全无输出则应进一步查TX/RX接反、GND未共参考、引脚复用、供电或console选择。
为什么只有内核阶段乱码
Bootloader、内核早期console和用户态getty可以分别配置不同的串口和波特率。若U-Boot正常而内核乱码,优先核对bootargs和内核串口时钟,而不是先换USB转串口线。
二、实际排查与设计步骤
查开发板资料确认调试串口电平、GND、TX、RX方向和供电域。
在Minicom等工具中关闭不必要的软/硬流控,并与目标端统一115200 8N1或实际参数。
检查USB转串口设备号、USB驱动和是否被其他程序占用。
核对U-Boot环境变量、bootargs中的console=、设备树aliases/pinctrl和内核日志。
用逻辑分析仪或示波器核对UART位宽、起始位、停止位与电平摆幅。
三、面试中的常见失分点
误区1:不确认TTL还是RS232就直接接线。
误区2:只修改minicom参数,不看Bootloader和内核阶段的配置是否一致。
四、面试官可能继续追问
面试追问:什么情况会“前几行正常,后面突然乱码”?
可能是启动阶段切换了不同串口时钟或console配置,也可能是切换供电/引脚复用引发时序变化,应按日志出现时间定位。
相关业务与课程
围绕电子工程师实际岗位能力,了解对应方向的系统课程。

扫码关注






























