1、有個7位遞減計數器(wwdg->cr),就這個計數器和視窗計數器(wwdg->cfr)決定什麼時候餵狗。狗喂早了,復位——「早」體現在 計數器值(tr)>視窗值(wr),也就是計數器值還沒有減到視窗值以下;
2、當 0x40 < 計數器值(tr) < 視窗值(wr) 時,這時候最適合餵狗了,也只有在這時候餵狗才合適;
3、當 計數器的值 從0x40變到0x3f的時候,將產生看門狗復位;當然在要產生復位的前一段時間,如果開啟了提前喚醒中斷,那麼就會進入中斷,在中斷函式裡,我們需要及時餵狗,否則會產生復位;
4、在這個中斷裡面一般不進行餵狗,一般是系統去世前的「遺囑」,比如儲存重要的資料等。
stm32 視窗看門狗
當程式跑飛後又回到正常地方或者正好執行了重新整理看門狗操作,此情況下一般的看門狗是檢查不出來的 故可以使用視窗看門狗,這樣保證不會提前或者之後重新整理看門狗。可以檢查程式沒有按正常路線執行而跳過的一些程式段。視窗看門狗 就是在餵狗時間上有乙個上下線。只有在此時間段內才能執行餵狗操作。上線可以在暫存器...
STM32視窗看門狗
今天剛好遇到使用視窗看門狗的情況,開始設定不是很理解,摸索了幾個小時後終於明白了。記錄下以備不時之需。如上圖,從手冊的截圖,首先找到wwdg的時鐘 就是apb1了。其次我們看到下面wwdg復位條件兩個 如果啟動了看門狗當看門狗計數器 7bit 最大值127 少於0x40 64 時復位,如果啟動了看門...
stm32 視窗看門狗學習(二)
視窗看門狗有乙個提前喚醒中斷,如果開啟這個中斷,那麼當計數器的值達到0x40的時候就會產生這個中斷。上次的 加一點就可以做這個實驗了。void wwdg init u8 tr,u8 wr,u32 fprer 最後三行是新加的。void wwdg nvic init void void wwdg ir...