視窗看門狗WWDG(STM32F407為例)

2021-08-21 03:48:19 字數 597 閱讀 1868

一:開啟看門狗的時鐘

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相當於下限,計數值比上限大時餵...