1. 烧录失败的常见原因
做嵌入式开发,谁没被串口烧录坑过几次?我入行头两年,光是「烧录失败」这四个字就见过不下五十种变体。后来慢慢摸出规律了——绝大多数失败,根源就那么几个。今天咱们就把这层窗户纸捅破。
说白了,串口烧录就是一场「板子 ↔ 工具 ↔ 电脑」三方对话。任何一方掉链子,对话就断了。下面这四种情况,我几乎每周都会在技术群里看到有人问。
核心观点:烧录失败不是玄学,90% 的问题出在硬件连接、电源、波特率、驱动这四个环节。排查顺序也按这个来。
1.1 硬件连接问题
这是最常见、也最容易忽略的坑。我记得有一次帮同事调一块 STM32F103 的板子,他折腾了三个小时死活连不上。我过去一看——TX 和 RX 接反了。嗯,就这。
串口连接的基本规则:
- TX ↔ RX 交叉连接:板子的 TX 接工具的 RX,板子的 RX 接工具的 TX。别接成 TX ↔ TX,那是给两个设备「吵架」用的。
- GND 必须共地:不接 GND,信号电平就是悬空的。我见过有人只接 TX/RX 两根线,结果烧录成功率不到 30%。
- 线长别超过 1.5 米:串口是异步通信,线太长信号会畸变。超过 2 米,波特率 115200 基本就别想了。
- 杜邦线要插牢:松动、氧化、接触不良——这些「软故障」最恶心,时好时坏,排查起来能把你逼疯。
我的习惯:每次上电前,先用万用表量一下 TX/RX 引脚的对地电压。正常空闲状态应该是 3.3V 或 5V(取决于电平)。如果量出来是 0V 或乱跳,先查焊接和连接。
1.2 电源不稳定
烧录过程中,芯片需要稳定的供电。电源一抖,烧录就崩。这个坑我在做一款低功耗物联网终端时踩过——电池供电,电压从 3.7V 掉到 3.3V 以下,烧录到一半就卡死了。
电源相关的几个要点:
| 问题类型 | 典型表现 | 排查方向 |
|---|---|---|
| 电压过低 | 烧录器能识别芯片,但擦除/写入时失败 | 检查电源适配器输出,用示波器看纹波 |
| 纹波过大 | 烧录进度条走到一半卡住,或校验失败 | 加 100μF 电解电容 + 0.1μF 瓷片电容 |
| 瞬间掉电 | 烧录器反复断开重连 | 检查 USB 线是否过长,换带屏蔽的线 |
| 负载突变 | 烧录时板子上的其他模块突然启动 | 烧录时断开非必要外设,尤其是电机、继电器 |
你想想看,芯片在擦写 Flash 时电流会突然增大。如果电源跟不上,电压瞬间跌落,烧录逻辑就乱了。我建议烧录时单独供电,别跟大功率设备共用一路电源。
警告:不要用电脑 USB 口直接给开发板供电烧录!尤其是板子上有电机、舵机、大屏的时候。USB 口的过流保护一触发,烧录立刻中断,分区表可能就坏了。
1.3 波特率不匹配
串口通信就像两个人用对讲机说话——你说中文,对方也得懂中文。波特率就是那个「语言」。两边设的不一样,收到的全是乱码。
常见波特率及适用场景:
- 9600:最稳,但慢。适合长线、干扰大的环境。
- 115200:最常用,速度和稳定性平衡得好。
- 460800 / 921600:快,但挑线、挑环境。我一般只在调试时用。
为什么会不匹配?三种情况:
- 烧录工具默认波特率跟芯片 Bootloader 不一致——比如 ESP32 的下载模式默认 115200,你工具设成 9600,那就连不上。
- 芯片内部时钟不准——有些廉价晶振误差大,标称 115200 实际跑出来可能只有 110000。这时候可以试试降低一档波特率。
- USB 转串口芯片的驱动设置被改了——我遇到过 CH340 的驱动被 Windows 更新重置成 9600,排查了半小时才发现。
避坑指南:我曾经在调试一块 ESP8266 时,怎么都连不上。后来用逻辑分析仪抓了一下 TX 脚的波形,发现实际波特率是 74880——芯片内部晶振偏差导致的。把工具波特率改成 74880,一次成功。所以,如果你怀疑波特率问题,用示波器或逻辑分析仪量一下实际波形,比瞎猜快得多。
1.4 驱动未安装
这个坑新手踩得最多。USB 转串口芯片插上电脑,设备管理器里显示一个黄色感叹号——驱动没装。没有驱动,操作系统根本不认识这个设备,烧录工具自然也找不到串口。
市面上常见的 USB 转串口芯片:
| 芯片型号 | 常见品牌/模块 | 驱动名称 |
|---|---|---|
| CH340 / CH341 | 很多国产开发板、USB 转串口模块 | CH340 驱动(Windows 需手动安装) |
| CP2102 / CP2104 | Silicon Labs 方案,常用于高端模块 | CP210x USB to UART Bridge 驱动 |
| FT232 / FT231X | FTDI 方案,稳定但贵 | FTDI VCP 驱动 |
| PL2303 | Prolific 方案,老模块常见 | PL2303 驱动(注意区分版本) |
驱动没装的表现很典型:烧录工具里「串口列表」是空的,或者选了串口但提示「无法打开串口」。Windows 下打开设备管理器,看「端口 (COM 和 LPT)」下面有没有带感叹号的设备。有的话,右键更新驱动就行。
注意:PL2303 芯片有新旧版本之分。老版驱动装在新版芯片上会蓝屏。我吃过这个亏——一块 PL2303TA 的模块,装了旧驱动,一插就蓝屏。后来换了官方最新驱动才解决。建议直接去芯片厂商官网下载,别用第三方驱动精灵。
本章知识体系
下面这张图把烧录失败的四大原因串起来了。你可以把它当成排查路线图——从上到下,先查硬件,再查软件,别跳步。
这张图你看懂了吗?从上往下走:烧录失败 → 四个原因 → 每个原因的排查要点。驱动问题我单独放在下面,因为它属于「软件环境」层面,跟硬件问题性质不同。但排查顺序上,我建议你先看驱动——打开设备管理器扫一眼,5 秒钟就能排除。然后再去折腾硬件连接和电源。
好了,这一章的内容就到这里。记住这四个原因,下次烧录失败时别慌,按图索骥,大概率十分钟内能搞定。