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:快,但挑线、挑环境。我一般只在调试时用。

为什么会不匹配?三种情况:

  1. 烧录工具默认波特率跟芯片 Bootloader 不一致——比如 ESP32 的下载模式默认 115200,你工具设成 9600,那就连不上。
  2. 芯片内部时钟不准——有些廉价晶振误差大,标称 115200 实际跑出来可能只有 110000。这时候可以试试降低一档波特率。
  3. 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 的模块,装了旧驱动,一插就蓝屏。后来换了官方最新驱动才解决。建议直接去芯片厂商官网下载,别用第三方驱动精灵。

本章知识体系

下面这张图把烧录失败的四大原因串起来了。你可以把它当成排查路线图——从上到下,先查硬件,再查软件,别跳步。

串口烧录失败常见原因排查图 串口烧录失败 · 四大原因排查路线 烧录失败 硬件连接问题 TX/RX交叉 · GND共地 电源不稳定 电压 · 纹波 · 负载 波特率不匹配 工具 vs 芯片 · 晶振偏差 排查要点 万用表量电压 检查杜邦线接触 排查要点 示波器看纹波 单独供电测试 排查要点 逻辑分析仪抓波形 降低波特率测试 驱动未安装 CH340/CP2102/FT232 设备管理器检查感叹号

这张图你看懂了吗?从上往下走:烧录失败 → 四个原因 → 每个原因的排查要点。驱动问题我单独放在下面,因为它属于「软件环境」层面,跟硬件问题性质不同。但排查顺序上,我建议你先看驱动——打开设备管理器扫一眼,5 秒钟就能排除。然后再去折腾硬件连接和电源。

好了,这一章的内容就到这里。记住这四个原因,下次烧录失败时别慌,按图索骥,大概率十分钟内能搞定。