4. 软件配置排查与修复:确认正确COM口、波特率匹配、芯片型号与协议选择
烧录线接好了,硬件也检查过了,结果软件还是报错?
别急。我见过太多人卡在这一步——明明线没问题,就是烧不进去。说白了,软件端的配置才是真正的“隐形杀手”。
咱们一项一项来排查。
4.1 确认正确的COM口
先打开设备管理器。Windows用户按 Win + X,选“设备管理器”。Mac用户用 ls /dev/tty.* 看。
插上USB转串口工具,看看“端口(COM和LPT)”下面有没有新设备冒出来。我习惯拔插一次,看哪个端口消失又出现,那个就是你的目标COM口。
选COM口时,别凭感觉选COM1。我遇到过好几次,有人一直对着COM1烧,结果他的板子挂在COM5上。浪费了半小时。
4.2 波特率匹配
波特率说白了就是串口通信的“语速”。两边说快说慢必须一致,否则数据全是乱码。
| 常见场景 | 常用波特率 | 备注 |
|---|---|---|
| ST-Link / J-Link SWD | 115200 | 调试口默认,稳定 |
| ESP8266 / ESP32 串口下载 | 115200 或 921600 | 921600更快,但线长时容易失败 |
| 旧款51单片机ISP | 9600 或 19200 | 太老的片子跑不了高速 |
| Bootloader 自定义 | 57600 / 115200 | 看芯片手册 |
我个人习惯:先试115200。如果烧录失败,再降到9600试试。为什么?因为很多廉价USB转串口线在高速下不稳定,降速反而能通。
4.3 校验位 / 数据位 / 停止位设置
这三个参数通常不用动,默认值就能搞定。但万一遇到奇葩情况,你得知道怎么调。
- 数据位: 几乎全是
8。老设备偶尔用7,但极少见。 - 校验位: 默认
None(无校验)。有些工业设备用Even(偶校验)或Odd(奇校验)。 - 停止位: 默认
1。极少数用2。
我建议你直接设为 8-N-1(8数据位、无校验、1停止位)。这是串口世界的“普通话”,99%的情况都适用。
如果烧录还是失败,翻翻芯片手册,看看bootloader要求的参数。我曾经被一块国产MCU坑过——它要求停止位必须是2,手册里用小字写的,我找了半天才发现。
4.4 芯片型号选择
选错芯片型号,烧录工具根本不会理你。
举个例子:STM32F103C8T6 和 STM32F103RBT6,虽然都是F103系列,但Flash大小不同。你选错了,烧录器会报“芯片ID不匹配”或“Flash大小错误”。
如果你用的是国产替代芯片(比如GD32、APM32),记得在烧录软件里选对应的厂商和型号。有些烧录工具需要手动添加芯片包。
4.5 烧录协议选择:ISP / SWD / JTAG
选错协议,就像用钥匙开锁但插错了锁眼。根本对不上。
| 协议 | 接线数 | 适用场景 | 典型工具 |
|---|---|---|---|
| ISP (In-System Programming) | 3~4根(TX/RX/电源/GND) | 通过串口烧录,常用于空片或bootloader模式 | FlyMcu、ProgISP、STC-ISP |
| SWD (Serial Wire Debug) | 2根(SWDIO/SWCLK)+ 电源/GND | ARM Cortex-M系列调试与烧录,速度快 | ST-Link、J-Link、DAP-Link |
| JTAG (Joint Test Action Group) | 4~5根(TMS/TCK/TDI/TDO/TRST) | 全功能调试,支持边界扫描,引脚占用多 | J-Link、ST-Link/V2-1、Xilinx Platform Cable |
我个人的经验:能用SWD就别用ISP。SWD只需要两根线,速度快,还能在线调试。ISP虽然接线少,但需要手动进入bootloader模式,麻烦。
但如果你板子上的芯片是全新的(没烧过程序),而且没有引出SWD接口,那只能用ISP先烧一个bootloader进去。我当年做第一批样板时就是这么干的——先ISP烧boot,再SWD烧应用。
4.6 一张图理清软件配置流程
下面这张图是我自己总结的排查路径。每次烧录失败,我就按这个顺序走一遍,基本都能定位问题。
按这个顺序走一遍,90%的软件配置问题都能解决。剩下的10%,要么是硬件没焊好,要么是芯片本身已经锁死了——那个我们后面章节再聊。