STM32
直播中

张浩

7年用户 1118经验值
私信 关注
[问答]

是何原因导致的STM32程序仿真重启

是何原因导致的STM32程序仿真重启?怎样去解决这个问题?

回帖(1)

陈藜文

2021-9-24 11:41:27
  STM32重启之选项字节
  最近用STMCubeMX生成hal库工程,程序在仿真的时候不断重启,一度怀疑是hal库生成的工程有问题,可是同样的程序在另一块板子上却不会出现重启的情况,到这里基本就可以定位是硬件问题了,但是我左看右看也看不出硬件哪里出了问题;本来想放弃,想想这个问题不搞明白,后患无穷;
  采用的是仿真的手段,看看是何原因导致的重启:
  程序中加入对RCC_CSR寄存器清零的代码,以便在程序最开始的地方打断点,看看是什么导致了重启:
  RCC-》CSR |= 1《《24;
  
  从上面可以看出,是独立看门狗和硬件复位引脚复位导致的重启;
  可是我没有开看门狗啊!!!
  用万用表交流档测量MCU复位引脚,还真有电平跳动,看来真的是看门狗被触发了;
  查看stm32的用户手册,翻到看门狗章节:
  
  我去,又是选项字节。。
  之前就遇到过stm32读保护的问题,折腾了好久发现是选项字节启用了读保护,于是,用ST-LINK Utility工具打开选项字节:
  
  然后,勾选上再点击Apply,重启问题果然解决,也不知道是怎么触发这个设置的,有网友说是盗版jlink会导致这个问题,也不知道是不是,时间有限,就不再深究了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分