STM32F4踩过的坑——无限复位重启之选项字节(Option Bytes)

目录

  • 无限重启
  • 验证IWDG猜想
  • 查找IWDG是怎么被开启的
  • 修复选项字节
    • 代码修改(未实现,待更新)
    • 工具修改(J-Link STM32 Unlock、ST-Link Utility)

无限重启

烧写程序后,发现MCU复位脚每隔500ms+就回出现一个低电平复位脉冲
仔细检查复位电路后,未发现信号输入源,因此怀疑是STM32内部输出的复位脉冲(联想到内部看门狗,看门狗可能需要输出复位脉冲给MCU外部的其他电路)

验证IWDG猜想

在while循环中喂狗,发现MCU不再重启,确认是IWDG被使能了;
仔细翻看检查代码后,未发现IWDG的使能代码(难不成IWDG不需要软件开启)

查找IWDG是怎么被开启的

通过搜索引擎查找各种资料后,发现,很可能是STM32的选项字节(Option Bytes)被人修改,或者被盗版J-Link无意间修改了(只是猜测);
验证:通过代码读取选项字节,并打印,发现选项字节的WDG_SW位被清零,与默认值不同,由此确认是选项字节的问题;

修复选项字节

代码修改(未实现,待更新)

工具修改(J-Link STM32 Unlock、ST-Link Utility)

STM32F4踩过的坑——无限复位重启之选项字节(Option Bytes)_第1张图片
手头没有ST-Link,但是据说ST-Link的修复方式更简单

你可能感兴趣的:(STM32)