STM32 Burn Tool 是一个免编译、免安装开发环境的 Windows 图形化烧录工具。它使用 Windows PowerShell 5.1、WPF 和 OpenOCD,面向团队成员快速完成 STM32F1 固件下载、校验和复位运行。
- 下载器:ST-LINK/V2
- 调试接口:SWD
- 芯片系列:STM32F1
- 固件格式:ELF
- 烧录程序:OpenOCD
- 系统:Windows 10 / Windows 11
首版不支持 CMSIS-DAP、J-LINK、DFU、UART Bootloader、BIN、HEX、Option Bytes、芯片解锁、读保护解除、全片自动擦除或 ST-LINK 固件升级。
STM32BurnTool
├─ StartBurnTool.bat 双击启动入口
├─ BurnTool.ps1 GUI 与烧录逻辑
├─ MainWindow.xaml WPF 界面和样式
├─ BurnToolConfig.json 本机路径配置
├─ stm32f1_stlink.cfg STM32F1 + ST-LINK/SWD 配置
├─ Assets 可选本地图标目录
└─ README.md 使用说明
所有内部路径都相对于脚本目录解析,整个文件夹可以复制到另一台 Windows 电脑。配置文件只保存所选 OpenOCD 和 ELF 路径,不保存任何附加命令。
- 解压或安装适用于 Windows 的 OpenOCD。
- 双击
StartBurnTool.bat。 - 点击 OpenOCD 行的“选择文件”,选择安装目录中的
openocd.exe。 - 点击 ELF 固件行的“选择文件”,选择工程编译生成的
.elf。 - 连接目标板后点击“检测连接”。
- 检测通过后点击“烧录并运行”。
启动脚本只对本次 PowerShell 进程使用 ExecutionPolicy Bypass,不会永久修改系统执行策略。
OpenOCD 常见位置类似 OpenOCD\bin\openocd.exe,实际位置取决于你的安装或解压目录。工具不会修改 OpenOCD 安装目录。
ELF 文件必须由 STM32 工程成功编译生成,通常位于工程的 build、Debug 或 Release 目录。工具只读取 ELF 文件,不会修改它。选择后界面会显示文件大小和最后修改时间。
- 检测连接:使用内置 ST-LINK/SWD 配置执行
init; shutdown,检查 OpenOCD、ST-LINK 和 STM32 目标是否可连接;不要求先选择 ELF。 - 烧录并运行:写入 ELF、执行 verify、复位目标并退出。成功结论同时依据退出码、OpenOCD 成功关键字和错误输出。
- 复位运行:执行
init; reset run; shutdown,无需选择 ELF。 - 取消当前操作:只结束本工具当前启动的 OpenOCD 子进程,不影响系统里的其他 OpenOCD 实例。
- 打开固件目录:在资源管理器中打开并选中当前 ELF。
- 实时日志:保留 stdout 和 stderr 原始输出,可清空或复制。
本工具不会自动执行 mass_erase、芯片解锁、Option Bytes 修改、读保护解除或固件升级。
| ST-LINK/V2 | STM32F1 |
|---|---|
| SWDIO | PA13 |
| SWCLK | PA14 |
| GND | GND |
| 3.3V / VTref | 3.3V |
| RST | NRST(可选但推荐) |
重要提醒:
- BOOT0 应保持为 0。
- ST-LINK 与 STM32 必须共地。
- 不要把 3.3V 接到 5V 引脚。
- 目标板应稳定供电;请确认 VTref 电压正常。
- 烧录前关闭 CLion、Keil、STM32CubeProgrammer 等可能占用 ST-LINK 的软件。
- 未检测到或无法打开 ST-LINK:检查 USB 数据线、驱动和接口,关闭占用设备的调试软件,再拔插 ST-LINK。
- LIBUSB_ERROR_ACCESS:先关闭占用 ST-LINK 的程序;仍失败时可使用界面出现的“以管理员身份重新启动”按钮。
- target not halted / timed out:检查 SWDIO、SWCLK、GND、供电和 NRST,确认 BOOT0 为 0。
- target voltage:检查 3.3V、VTref 与共地连接。
- verification failed:检查供电稳定性、SWD 接线和下载速度。
- device is protected:芯片可能启用了读保护。本工具不会自动修改 Option Bytes 或解除保护。
- 找不到配置脚本:确认 OpenOCD 安装包中存在
scripts\interface\stlink.cfg与scripts\target\stm32f1x.cfg,并保持本工具的stm32f1_stlink.cfg未被删除。
错误发生时请保留并复制“实时日志”,原始 OpenOCD 输出有助于定位问题。
可将整个 STM32BurnTool 文件夹复制给组员。首次在新电脑启动后,重新选择该电脑上的 openocd.exe 和 ELF 文件即可。若复制前不希望携带本机路径,可将 BurnToolConfig.json 的两个值恢复为空字符串。
工具不联网,不执行用户提供的附加 OpenOCD 参数,不通过 Shell 拼接烧录命令,不修改 STM32 工程源码、ELF、Option Bytes 或 ST-LINK 固件。