STM32U5(如 U575)出现周期性复位(空片状态也触发),核心原因是Option Bytes 中 IWDG(独立看门狗)硬件模式被意外使能—— 无固件喂狗或未关闭 IWDG 时,会触发看门狗复位。解决方案:通过 STM32CubeProgrammer 恢复 Option Bytes 出厂设置,或在工程中禁用 IWDG,即可彻底消除异常。
资料获取:问题解析 | STM32U5周期性异常复位问题分析
1. 问题背景:诡异的周期性复位现象
1.1 核心现象
1.2 波形验证
2. 根源拆解:IWDG 硬件模式的隐性触发
2.1 复位源定位:RCC_CSR 寄存器排查
通过 STM32CubeProgrammer 读取 RCC_CSR 寄存器,关键发现:
IWDGRSTF位(bit29)=1,表明复位源是独立看门狗(IWDG);- 其他复位标志位(如 PORRSTF、PINRSTF)未置位,排除上电复位、外部引脚复位。
2.2 核心诱因:Option Bytes 的 IWDG 配置
STM32U5 的 IWDG 支持硬件 / 软件两种模式,由 Option Bytes 的IWDG_SW位控制:
IWDG_SW=0(默认未置位):IWDG 为硬件模式,复位后自动启动,必须周期性喂狗;IWDG_SW=1:IWDG 为软件模式,需通过代码手动启动。- 问题关键:客户的 MCU Option Bytes 中
IWDG_SW未置位,IWDG 硬件模式激活,无喂狗操作时触发复位。
2.3 IWDG 硬件模式的特性(易被忽略)
- 自动启动:MCU 上电 / 复位后无需代码,IWDG 直接启动;
- 不可冻结:调试模式下仍运行,不会因连接调试器暂停;
- 空片也运行:即使无固件,IWDG 仍按默认时钟(LSI)计数,超时触发复位。
3. 解决方案:2 步彻底解决,优先方案 1
3.1 方案 1:恢复 Option Bytes 出厂设置(快速高效)
利用 STM32CubeProgrammer 的一键恢复功能,直接重置 IWDG 配置:
- 连接开发板与 PC,打开 STM32CubeProgrammer,选择对应连接方式(如 ST-Link);
- 点击「Option Bytes」选项卡,找到「Restore Defaults」按钮(新版本新增功能);
- 点击「Apply」应用配置,MCU 自动重启,IWDG 硬件模式被禁用;
- 验证:空片状态下无周期性复位,烧录程序后运行正常。
3.2 方案 2:工程中禁用 IWDG(长期稳定)
若需避免后续配置丢失,可在工程中通过代码禁用 IWDG,或配置为软件模式:
(1)禁用 IWDG(推荐)
在HAL_MspInit函数中添加禁用代码:
(2)配置为 IWDG 软件模式
通过 CubeMX 配置 Option Bytes:
- 打开工程的
.ioc文件,进入「Configuration」→「Option Bytes」; - 找到「IWDG_SW」选项,勾选启用(
IWDG_SW=1); - 生成代码后,IWDG 需通过
HAL_IWDG_Start(&hiwdg)手动启动,无启动则不运行。
4. 关键注意事项
- 调试避坑:IWDG 硬件模式下,调试时需先禁用 IWDG,否则复位会中断调试;
- 固件兼容性:若需使用 IWDG,需在代码中添加喂狗逻辑(如
HAL_IWDG_Refresh(&hiwdg)); - 批量生产:建议在量产烧录时,同步配置 Option Bytes 的
IWDG_SW=1,避免硬件模式意外激活; - 工具版本:STM32CubeProgrammer 需≥v2.18.0,确保支持 Option Bytes 一键恢复功能。
STM32U5 周期性复位的核心是 “Option Bytes 中 IWDG 硬件模式默认激活”,无喂狗时触发看门狗复位。解决的关键是 “关闭 IWDG 或切换为软件模式”—— 一键恢复 Option Bytes 最快捷,工程中配置代码最稳定。该问题在开发板评估、量产烧录场景中易出现,需重点关注 Option Bytes 的 IWDG 配置。
206