一:開啟看門狗的時鐘
rcc_apb1periphclockcmd(rcc_apb1periph_wwdg, enable);
二:設定時鐘分頻
/* wwdg clock counter = (pclk1 (42mhz)/4096)/8 = 1281 hz (~780 us) */
wwdg_setprescaler(wwdg_prescaler_8);
三:設定「下視窗」的值
wwdg_setwindowvalue(80);
四:使能開啟看門狗
wwdg_enable(127);//127強制轉換為8進製為7f,去掉第6位,剩下3f,為最大值
此處注意,餵狗視窗的時間為36.6到49.9之間,超出這個時間,或者提前餵狗都會引起系統復位。
/* enable wwdg and set counter value to 127, wwdg timeout = ~780 us * 64 = 49.92 ms
in this case the refresh window is: ~780 * (127-80) = 36.6ms < refresh window < ~780 * 64 = 49.9ms */
stm32 視窗看門狗
當程式跑飛後又回到正常地方或者正好執行了重新整理看門狗操作,此情況下一般的看門狗是檢查不出來的 故可以使用視窗看門狗,這樣保證不會提前或者之後重新整理看門狗。可以檢查程式沒有按正常路線執行而跳過的一些程式段。視窗看門狗 就是在餵狗時間上有乙個上下線。只有在此時間段內才能執行餵狗操作。上線可以在暫存器...
STM32視窗看門狗
今天剛好遇到使用視窗看門狗的情況,開始設定不是很理解,摸索了幾個小時後終於明白了。記錄下以備不時之需。如上圖,從手冊的截圖,首先找到wwdg的時鐘 就是apb1了。其次我們看到下面wwdg復位條件兩個 如果啟動了看門狗當看門狗計數器 7bit 最大值127 少於0x40 64 時復位,如果啟動了看門...
視窗看門狗 WWDG
視窗看門狗 wwdg 特點 餵狗有上下限時間。視窗看門狗有兩種情況產生復位 1.當餵狗的時候如果計數器的值大於某一設定數值w 6 0 時,此設定值在wwdg cfr暫存器定義。2.當計數器的數值從0x40減到0x3f時,即t6位跳變到0.理解 設定值相當於上限,0x3f相當於下限,計數值比上限大時餵...