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