【通用】FlyMcu 烧录程序失败排查与修复指南

:backhand_index_pointing_down: 本篇主角长这样

image

适用于产品:RRC 控制器 / RRCLite 控制器 / 开源小车控制器 / 开源舵机控制器 / MiniSTM32机器人控制器
涉及模块:FlyMcu(串口ISP烧录工具)/ USB转串口模块(CH340 / CP210x)

一、问题描述

使用 FlyMcu 串口烧录软件对 STM32 系列芯片进行程序下载时,出现连接失败、芯片超时无应答、写入出错、校验失败等异常情况,工具界面提示各类错误代码或报错信息,导致固件无法正常烧录至芯片。

二、问题说明

FlyMcu 烧录失败通常涉及硬件连接、BOOT引脚配置、串口驱动、DTR/RTS信号设置、芯片读保护及固件文件格式等多个环节。不同芯片型号与不同烧录配置的组合,需要使用对应的参数设置,任何一项设置错误或硬件异常均会导致烧录失败。常见错误代码及含义如下:

错误代码 / 报错信息 含义
芯片超时无应答,无法连接 芯片未进入下载模式或串口通信中断
开始连接…401,接收到:7F……7F BOOT引脚未正确拉高,芯片未进入ISP模式
写入出错在0KB,进度0% 芯片读保护已启用,或Flash写入权限被锁定
程序文件不是0x8000000和0x20000000区域 烧录了bin文件而非hex文件,地址信息缺失
COM_CMD_TIMEOUT 串口通信超时,DTR/RTS信号配置错误
全片擦除失败 / 去除写保护失败 Flash写保护已启用,需先解除保护
编程后程序不自动运行 未勾选“编程后执行”,或未正确复位

三、解决办法

请按以下顺序逐项排查,多数问题可通过前七步解决。

1、检查串口驱动是否安装并正确识别

打开电脑设备管理器,查看“端口(COM 和 LPT)”下是否有对应的 COM 端口显示(如 USB-SERIAL CH340 / CP210x)。若无显示或显示黄色感叹号,说明USB转串口驱动未安装或异常。

  • 对于 CH340 系列芯片,需安装 CH340 驱动。
  • 对于 CP210x 系列芯片,需安装 CP210x 驱动。
  • 驱动可在芯片厂商官网下载。

驱动下载地址:
USB转串口芯片 CH340 - 南京沁恒微电子股份有限公司

若设备管理器中已显示 COM 口但 FlyMcu 下拉菜单中找不到,可尝试重新插拔 USB 线、更换 USB 端口或更换USB数据线(部分充电线仅供电不支持数据传输)。

2、确认 BOOT 引脚配置正确

STM32 芯片需将 BOOT0 拉高(接3.3V)、BOOT1 拉低(接GND)才能进入 ISP 串口下载模式。

BOOT1 BOOT0 启动模式 适用场景
X 0 主闪存存储器 正常运行模式
0 1 系统存储器(ISP) 串口下载模式
1 1 内置SRAM 调试模式

检查开发板上的跳线帽是否连接正确。部分开发板在设计上通过 DTR/RTS 自动控制 BOOT 引脚,无需手动跳线,但仍需确认 FlyMcu 中的 DTR/RTS 选项配置正确。

3、确认 FlyMcu 软件设置正确

打开 FlyMcu,按以下步骤检查配置:

(1)搜索串口:在“Port”下拉菜单中选择设备管理器中对应的 COM 口(如 COM3)。

(2)设置波特率:根据芯片型号设置波特率:

  • 建议波特率设置为 115200

(3)选择固件文件:点击“打开文件”,选择要烧录的 .hex 文件(注意:FlyMcu 烧录 bin 文件可能因缺少地址信息而报错,建议使用 hex 文件)。

(4)配置 DTR/RTS 信号(关键步骤):

  • 对于带有自动ISP电路的开发板,选择:“DTR的低电平复位,RTS的高电平进BootLoader”
  • 若上述选项无效,可尝试:“DTR的高电平复位,RTS的低电平进BootLoader”

(5)勾选必要选项:

  • :check_box_with_check: 编程后执行(烧录完成后自动运行程序)
  • :check_box_with_check: 校验(确保数据写入正确)
  • ☐ 编程到FLASH时写选项字节(除非明确需要,否则不建议勾选,勾选错误可能导致芯片被写保护)

4、确保芯片进入下载模式并正确复位

若已按上述步骤配置但仍提示 “芯片超时无应答,无法连接” ,可能是芯片未正确进入下载模式。

手动进入下载模式的方法:

(1)将 BOOT0 拉高(接3.3V) ,BOOT1 拉低(接GND)。

(2)按下 复位按键(RESET) 后释放,使芯片复位并进入 ISP 模式。

(3)在 FlyMcu 中点击 “开始编程” 。

若开发板无复位按键,可断电后重新上电,使芯片以新的 BOOT 引脚状态启动。

若仍无法连接,可尝试在 FlyMcu 中先点击 “清除芯片” 进行全片擦除,再重新烧录。

5、检查串口是否被占用或存在干扰

确认 FlyMcu 选择的 COM 口未被其他程序占用。

常见占用串口的程序包括:

  • 串口调试助手(如 XCOM、SSCOM)
  • Keil 的调试功能
  • 其他串口通信软件

解决方法:关闭所有可能占用串口的程序后,重新打开 FlyMcu 尝试烧录。

此外,若开发板上连接了 ST-Link、J-Link 等其他调试器,建议先拔除,因为这些外设可能会干扰串口通信。

6、处理芯片读保护/写保护问题

若烧录时提示“写入出错在0KB”或“全片擦除失败”,通常是由于芯片已启用读保护(Read Out Protection)或写保护。

解决方法:

(1)在 FlyMcu 中勾选 “编程到FLASH时写选项字节” ,并确保选项字节区域设置为解除保护状态。

(2)若上述方法无效,可尝试先用 STM32CubeProgrammer 或 ST-Link Utility 工具解除读保护并执行全片擦除。

(3)若仍无法解除保护,可尝试在 FlyMcu 中先设置读保护,再解除读保护,通过这种“重置”方式修复保护等级紊乱的问题。

注意:解除读保护会自动执行全片擦除,芯片中原有的程序和数据将被清除。

7、确认固件文件格式正确

FlyMcu 仅支持烧录 .hex 格式文件(hex 文件包含地址信息)。若使用 .bin 文件,会报错 “程序文件不是0x8000000和0x20000000区域”。

解决方法:

  • 在 Keil 中重新编译工程,确保生成 .hex 文件(Keil 需在 Output 选项中勾选“Create HEX File”)。
  • 若必须使用 bin 文件,建议改用 STM32CubeProgrammer 进行烧录。

8、检查电源供电是否稳定

芯片供电电压不稳定或电流不足会导致烧录失败。

检查要点:

  • 确保电源电压符合芯片要求(STM32 通常为 3.3V ± 5%)。
  • 使用万用表测量 VDD 和 GND 之间的电压。
  • 避免使用电脑前置 USB 接口或 USB 延长线,建议使用电脑后置 USB 接口。
  • 若使用电池供电,确认电池电量充足。

9、更新 FlyMcu 版本

旧版本 FlyMcu 可能存在已知问题或对新型号芯片支持不完善。

  • 建议使用 FlyMcu V0.188 或更新版本。
  • 若使用较新型号的芯片(如 STM32L4、STM32F7 等),FlyMcu 可能无法识别,建议改用 STM32CubeProgrammer 或 ATK-XISP。

10、尝试更换烧录工具——ATK-XISP

image

若以上所有方法均无法解决问题,建议更换为正点原子推出的 ATK-XISP 串口烧录软件。

ATK-XISP 相比 FlyMcu 的优势:

  • 界面简洁,操作更直观。
  • 对新型号 STM32 芯片(如 STM32F4、STM32L4 等)支持更完善。
  • 支持 hex 格式文件下载、编程后自动运行、逐字节校验、读保护设置/解除、移除写保护、全片擦除等功能。
  • 提供一键下载功能,简化了 BOOT 引脚的控制流程。

ATK-XISP 使用步骤:

(1)接线:USB 数据线接开发板串口,确保 TX/RX 交叉连接(PA9(TX) 接 RXD,PA10(RX) 接 TXD)。

(2)打开 ATK-XISP.exe,选择对应的串口号和波特率。

(3)选择要烧录的 .hex 文件。

(4)点击 “开始编程” ,等待烧录完成。

ATK-XISP 下载地址:
正点原子官方文档 - ATK-XISP

11、硬件替换排查

若以上所有方法均无法解决问题:

  • 更换 USB 数据线,排除线材故障。
  • 更换电脑 USB 端口,避免使用前置接口或扩展坞。
  • 更换另一块同型号的开发板或芯片进行测试,确认是否为当前硬件损坏。
  • 若确认为芯片硬件故障,请联系售后或芯片厂商进一步检测。

四、资源下载

若你的资料包丢失或找不到上述工具文件,可通过以下途径获取: