ST-LINK Utility烧录实战:从hex文件到STM32H743全流程
2026/9/12 14:32:45 网站建设 项目流程

www.z-linear.com

D223的STM32H743固件如何用ST-Link Utility烧录hex?连接后能看到哪些芯片信息?烧录成功后为什么要按复位键?本文按官方烧录教程逐步复现完整流程。


一、准备工作

1.1 硬件连接

电脑 ──USB──> ST-Link仿真器 ──SWD排线──> D223 SWD口(PA13/PA14/NRST/3.3V/GND) 板卡 ──DC 12V──> 供电

1.2 软件准备

软件用途
STM32 ST-LINK Utilityhex烧录(本文主角)
ST-LINK驱动仿真器驱动
编译产物xxx.hex(Keil输出目录)或bin

二、烧录四步流程

2.1 第一步:打开hex文件

打开ST-LINK Utility,菜单File → Open,选择目标hex文件(如STM32H743.hex)。

打开后状态栏显示:

[STM32H743.hex] opened successfully. [STM32H743.hex] checksum: 0x00326E1B Size: 0x8B80 (35968字节) Address range: 0x08000000...

2.2 第二步:点击连接

点击Target → Connect(或工具栏连接按钮)。连接成功后日志窗口显示:

Connected via SWD. SWD Frequency = 4.0 MHz. Connection mode : Normal. Debug in Low Power mode enabled. Device ID: 0x450 Device flash Size : 2MBytes Device family : STM32H7xx

关键信息解读:

日志项含义
SWD Frequency 4.0MHz下载速度
Device ID 0x450H743器件ID
Flash Size 2MBytesH743VGT6的2MB Flash
Low Power mode enabled低功耗下也能连接

2.3 第三步:下载(Program & Verify)

Target → Program & Verify,或直接按工具栏"下载"按钮。确认起始地址0x08000000,点击Start。

烧录日志:

Memory programmed in 1s and 359ms. Verification...OK Programmed memory Checksum: 0x026F1B
  • 编程耗时仅1.36秒(35KB固件)
  • Verification OK = 校验通过
  • Checksum一致性确认

2.4 第四步:按复位运行

烧录成功后按一下ST-Link上面的复位按键,程序从0x08000000开始运行。

若在Program选项中勾选了"Start after programming",则可省去手动复位。


三、连接失败的排查

3.1 "ST-Link is not in the DFU mode"报错

若显示"ST-Link is not in the DFU mode. Please restart it",说明仿真器连接出现问题——从USB接口拔掉仿真器重新插上即可。

3.2 仿真器固件升级

CubeIDE只支持J-LINK和ST-LINK仿真器,首次使用前需检查仿真器固件版本:Help → ST-LINK Upgrade → Open update mode → 显示当前版本和可升级版本 → 点击Upgrade。仿真器固件升级一次即可。

现象处理
检测不到仿真器拔插USB;检查驱动
版本低于可升级版本点Upgrade升级
连接后无Device ID检查SWD线序/供电
H7系列连不上换Connect under reset模式

3.3 读保护解除

若芯片曾被设置读保护(RDP),Utility会提示——Target → Option Bytes → 将RDP降级为AA(0xAA)即可解除(注意:解除读保护会全片擦除)。


四、ST-LINK Utility的其他实用功能

4.1 内存查看

连接后地址栏输入0x08000000,可查看Flash内容——与hex文件比对快速定位烧录是否正确。

Address: 0x08000000 Size: 0x8B80 Data Width: 32 bits 0x08000000: 24009268 ...

4.2 全片擦除

Target → Erase Chip——换固件架构或出售板卡前彻底清空。

4.3 读回固件(备份)

Target → Read → 保存为hex/bin——在没有源码时备份板上运行固件的唯一方法。

功能用途
读Flash固件备份/逆向分析
写任意地址调试数据注入
Option BytesRDP/WWDG/BOOT配置
外部Loader烧录外部QSPI Flash

五、hex vs bin vs elf

格式内容需要指定地址?
.hex带地址记录的文本格式不需要(自带地址)
.bin纯二进制镜像需要(手动填0x08000000)
.elf带符号+调试信息CubeProgrammer支持,MDK用axf

ST-LINK Utility烧bin时务必在地址栏填入0x08000000,否则写入错误位置芯片无法启动。


六、ST-LINK Utility vs STM32CubeProgrammer

维度ST-LINK UtilityCubeProgrammer
界面经典简洁现代GUI
文件格式hex/binhex/bin/elf/srec
接口仅SWD/JTAGSWD/JTAG/UART/USB DFU/I2C/SPI/CAN
外部存储需External Loader集成更多Loader
维护状态已停止更新(被取代)官方推荐

ST-LINK Utility简单够用,是许多老工程师的习惯;新项目建议迁移到STM32CubeProgrammer(下篇详解)。


七、量产烧录建议

研发阶段: MDK一键编译+下载(SWD) 小批量: ST-LINK Utility / CubeProgrammer 手动逐块 中批量: CubeProgrammer CLI命令行脚本 STM32_Programmer_CLI -c port=SWD -w app.hex -v -rst 大规模: 烧录夹具+自动化测试台

CLI批量示例

:: 批量烧录脚本(每插一块板按一次回车) @echo off :loop STM32_Programmer_CLI -c port=SWD -el ExternalLoader.stldr ^ -w D223_app.hex -v -hardRst if %errorlevel%==0 echo [OK] 烧录成功 pause goto loop

八、总结

ST-LINK Utility烧录流程实现了:

步骤操作关键日志
①打开hexFile→Openopened successfully + checksum
②连接Target→ConnectDevice ID 0x450 / 2MBytes
③烧录Program&Verify1s359ms / Verification OK
④复位按ST-Link复位键程序运行

从打开hex文件到checksum校验,从SWD 4MHz连接到1.36秒烧录完成,从按复位键到固件点亮板卡——ST-LINK Utility的烧录四步曲是每块D223/7606出厂和调试的必经之路。虽然它正被STM32CubeProgrammer取代,但"连接→烧录→校验→复位"的流程逻辑永远不变。


下篇预告:《STM32CubeProgrammer与DFU固件升级全解析》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询