STM32重啓之選項字節
最近用STMCubeMX生成hal庫工程,程序在仿真的時候不斷重啓,一度懷疑是hal庫生成的工程有問題,可是同樣的程序在另一塊板子上卻不會出現重啓的情況,到這裏基本就可以定位是硬件問題了,但是我左看右看也看不出硬件哪裏出了問題;本來想放棄,想想這個問題不搞明白,後患無窮;
採用的是仿真的手段,看看是何原因導致的重啓:
程序中加入對RCC_CSR寄存器清零的代碼,以便在程序最開始的地方打斷點,看看是什麼導致了重啓:
RCC->CSR |= 1<<24;
從上面可以看出,是獨立看門狗和硬件復位引腳復位導致的重啓;
可是我沒有開看門狗啊!!!
用萬用表交流檔測量MCU復位引腳,還真有電平跳動,看來真的是看門狗被觸發了;
查看stm32的用戶手冊,翻到看門狗章節:
我去,又是選項字節。。
之前就遇到過stm32讀保護的問題,折騰了好久發現是選項字節啓用了讀保護,於是,用ST-LINK Utility工具打開選項字節:
然後,勾選上再點擊Apply,重啓問題果然解決,也不知道是怎麼觸發這個設置的,有網友說是盜版jlink會導致這個問題,也不知道是不是,時間有限,就不再深究了;