STM32WB 系列 MCU 的 FUS(固件更新服务)、BLE 协议栈(STACK)与用户应用(APP)可通过 STM32CubeProgrammer v2.11.0 及以上版本的 CLI(命令行接口)一次性烧写,无需多次手动操作,核心是通过串联-startfus、-fwupgrade、-d(下载 APP)和-hardRst命令,自动完成启动 FUS、升级 FUS/STACK、下载 APP 及复位全流程,大幅提升量产效率。
资料获取:STM32WB如何一次性烧写FUS+STACK+APP
1. 核心优势与适用场景
- 效率提升:避免多次手动输入地址和选择文件,单次命令完成三部分烧写;
- 量产适配:支持集成到脚本批量执行,减少人工操作错误;
- 版本要求:仅需 STM32CubeProgrammer ≥v2.11.0,兼容 STM32WB 全系列(如 STM32WB5x)。
2. 前置准备工作
2.1 工具与环境
- 安装 STM32CubeProgrammer v2.11.0 及以上版本,确保
STM32_Programmer_CLI.exe可在命令行调用(配置环境变量或进入安装目录执行); - 硬件连接:通过 SWD 接口连接开发板 / 量产板,确保 RESET 引脚与调试器相连(支持
-hardRst硬复位)。
2.2 待烧写文件与地址
需提前准备三类文件,烧写地址需严格遵循 STM32WB 内存映射规则(文档示例地址通用,具体以数据手册为准):
| 烧写对象 | 文件类型 | 推荐烧写地址 | 说明 |
|---|---|---|---|
| FUS | FUS 固件(如 stm32wb5x_FUS_fw.bin) | 0x080EC000 | 固件更新服务,需先启动 |
| STACK | BLE 协议栈(如 stm32wb5x_BLE_Stack_full_fw.bin) | 0x080CE000 | 蓝牙协议栈固件 |
| APP | 用户应用二进制文件(如 BLE_HeartRate.bin) | 0x08000000 | 用户主程序,默认启动地址 |
3. 核心操作:CLI 一次性烧写实现
<h3">3.1 命令行核心格式
通过串联关键命令,按 “启动 FUS→烧写 FUS→硬复位→烧写 STACK→硬复位→烧写 APP→硬复位” 顺序执行,完整命令格式如下:
3.2 关键参数说明
-c port=swd mode=UR:配置 SWD 接口,连接模式为 “Under Reset”(复位下连接);-startfus:启动 FUS 服务,为后续 FUS/STACK 升级做准备;-fwupgrade <文件路径> <地址>:专门用于升级 FUS 或 BLE 协议栈,支持firstinstall=1(首次安装)、startstack=1(启动栈)等可选参数;-d/-w <文件路径> <地址>:下载 APP 二进制文件,下载前自动擦除对应内存区域;-hardRst:每步操作后硬复位,确保配置生效,避免烧写冲突。
3.3 完整实操示例
以 STM32WB5x 为例,假设文件路径和地址如下,直接复制修改路径即可执行:
4. 烧写验证与注意事项
4.1 验证方法
- 烧写完成后,设备会自动硬复位并进入 APP 运行状态;
- 若为 BLE 应用(如心率监测),可通过手机蓝牙搜索设备,能成功连接即说明烧写有效;
- 查看命令行日志,出现 “Firmware Upgrade Success”“File download complete” 即表示各模块烧写成功。
4.2 关键注意事项
- 文件路径:若路径含空格,需用英文双引号包裹(如示例中格式);
- 地址准确性:FUS 和 STACK 地址不可混淆,需严格遵循 STM32WB 内存映射,避免覆盖;
- 工具版本:低于 v2.11.0 的版本不支持批量串联命令,需升级工具;
- 首次安装:若为首次烧写 FUS/STACK,需添加
firstinstall=1参数(如-fwupgrade "xxx.bin" 0x080EC000 firstinstall=1)。
STM32WB 一次性烧写 FUS+STACK+APP 的核心是利用 STM32CubeProgrammer 的 CLI 命令串联能力,通过-startfus启动服务、-fwupgrade升级 FUS/STACK、-d下载 APP,配合-hardRst确保每步生效,完全适配量产场景的自动化需求。操作无需复杂配置,修改文件路径和地址即可直接使用。
阅读全文
135