1. 烧录失败的常见原因

做嵌入式这么多年,我见过太多工程师在串口烧录这一步卡住。说白了,烧录失败就三大类原因:硬件没接对、软件没配好、芯片本身不听话。咱们一个一个捋清楚。

核心原则:烧录失败时,先别急着怀疑芯片坏了。80% 的问题出在连接和配置上。我自己的习惯是——先看硬件,再看软件,最后查芯片状态。

1.1 硬件连接问题

硬件连接是烧录的第一道关卡。线接错了,后面再怎么折腾都是白费。我遇到过好几次,工程师拿着板子来找我,说芯片烧不进去,结果我一看——TX 和 RX 接反了。

线序错误

串口烧录最基础的要求:发送接接收,接收接发送。这个道理大家都懂,但实际接线时特别容易搞混。

  • TX → RX: 烧录器的 TX 必须接目标板的 RX
  • RX → TX: 烧录器的 RX 必须接目标板的 TX
  • GND → GND: 地线必须共地,这是最容易忽略的

我的小技巧:拿万用表量一下目标板上的 TX/RX 引脚,确认电平后再接线。我曾经因为板子上丝印标反了,折腾了整整一个下午。

接触不良

杜邦线、排针、夹子——这些连接件用久了容易出问题。你想想看,一个虚焊的排针,或者一个松动的杜邦线,信号时断时续,烧录怎么可能成功?

  • 杜邦线插不到位,只搭了个边
  • 排针氧化,接触电阻变大
  • 夹子夹不稳,一碰就掉

注意:如果用的是烧录夹子夹 QFP 封装的芯片,一定要确认夹子齿和引脚对齐了。我见过有人夹偏了,结果烧录的是隔壁引脚的电平。

电平不匹配

这是新手最容易踩的坑。3.3V 的芯片用 5V 的烧录器去烧,轻则烧录失败,重则直接烧毁芯片 IO 口。

烧录器电平 目标芯片电平 结果
3.3V 3.3V 正常
5V 3.3V 可能烧毁 IO
3.3V 5V 信号识别不了
1.8V 3.3V 电平不够,不工作

避坑指南:我现在做项目,都会在原理图上标注每个串口引脚的电压域。烧录前看一眼,心里有底。如果你用的是 USB 转串口模块,记得确认它输出的是 3.3V 还是 5V。

1.2 软件配置问题

硬件接好了,接下来就是软件。说实话,软件配置出错的概率比硬件还高。因为选项太多了,一个不小心就选错。

波特率错误

串口烧录对波特率很敏感。你设 115200,芯片内部 Bootloader 跑的是 9600,那两边根本对不上话。

  • 常见 Bootloader 默认波特率:9600、115200、57600
  • 有些芯片支持自动波特率检测,但不是所有芯片都支持
  • 波特率太高时,线缆太长会导致误码

经验之谈:不确定波特率时,先用 9600 试。低速不容易出错。我有个项目,芯片手册写的是 115200,结果实际 Bootloader 跑的是 57600——手册写错了。

端口号错误

电脑上插了好几个 USB 转串口设备,你选的是 COM3,实际烧录器在 COM5。这种错误太常见了。

  • 打开设备管理器,确认端口号
  • 拔掉再插上,看哪个端口消失又出现
  • 有些软件会列出所有可用端口,选对了再点连接

我的习惯:每次插上烧录器后,先在设备管理器里看一眼端口号,再打开烧录软件。别偷懒,这一步能省很多时间。

芯片型号选错

同一个系列的不同型号,烧录算法可能完全不同。你选了 STM32F103C8,实际板子上是 STM32F103RB——Flash 大小不一样,烧录地址就不对。

常见错误 后果
选错 Flash 大小 烧录地址偏移,程序跑不起来
选错封装 引脚映射不同,外设不工作
选错系列 烧录算法不兼容,直接报错

注意:芯片上的丝印可能会被磨掉或者看不清。我建议你拿到板子后,第一时间用放大镜确认芯片型号,或者直接看 BOM 表。

1.3 芯片状态问题

硬件和软件都没问题,但烧录还是失败。这时候就要考虑芯片本身的状态了。

芯片锁死

有些芯片有读保护或者写保护功能。你之前烧过代码,开启了保护,下次想再烧就进不去了。

  • 读保护开启后,调试接口被禁用
  • 写保护开启后,Flash 不能擦除
  • 需要先解除保护,才能重新烧录

我曾经:遇到过一块 STM32,怎么都连不上。后来发现是之前项目里开了读保护。用串口发个解锁命令,立马就好了。所以别急着扔芯片。

看门狗复位

芯片上电后,如果 Bootloader 还没跑起来,看门狗先超时了,芯片就会不断复位。烧录软件刚连上,芯片又重启了,根本没法完成烧录。

  • 硬件看门狗:上电即启动,无法关闭
  • 软件看门狗:需要代码里喂狗,但 Bootloader 可能没喂
  • 复位周期太短,烧录握手都来不及

解决方法:按住复位键,点击烧录,在松手的瞬间让芯片进入烧录模式。这招我用了好多次,屡试不爽。

电源不稳定

烧录过程中,芯片需要稳定的电源。如果电源纹波太大,或者供电不足,烧录就会中途失败。

  • USB 口供电不足,尤其是接了长线
  • 板子上有大电流负载,拉低了电压
  • 电源纹波太大,干扰串口通信

注意:我建议烧录时,用外部稳压电源给目标板供电,别只靠 USB 口。尤其是带电机、继电器这些大负载的板子,一定要单独供电。

串口烧录失败原因分类 烧录失败 硬件连接问题 软件配置问题 芯片状态问题 线序错误 接触不良 电平不匹配 波特率错误 端口号错误 芯片型号选错 芯片锁死 看门狗复位 电源不稳定 排查顺序建议 ① 先检查硬件连接:线序、接触、电平 ② 再确认软件配置:波特率、端口、型号 ③ 最后排查芯片状态:锁死、复位、电源 ④ 按这个顺序排查,能解决 95% 的烧录失败

这张图把烧录失败的原因分成了三大类。每次遇到烧录失败,你就按这个结构去排查。我个人习惯是从左到右、从上到下——先看硬件,再看软件,最后查芯片。这个顺序能帮你少走很多弯路。