視窗看門狗有乙個提前喚醒中斷,如果開啟這個中斷,那麼當計數器的值達到0x40的時候就會產生這個中斷。
上次的**加一點就可以做這個實驗了。
void wwdg_init(u8 tr,u8 wr,u32 fprer)最後三行是新加的。
void wwdg_nvic_init(void)void wwdg_irqhandler(void)
為什麼會設計這樣的中斷呢?
我認為這樣設計是為
mcu復位之前留下一點時間,能夠讓程式設計師根據需要在復位之前儲存一些重要的資料,這樣在復位後
mcu可以知道復位原因,
以使系統有更高的穩定性。
有的網友說「在視窗看門狗中斷函式中餵狗沒有什麼意義,程式本來已經不按正常執行了,還在中斷函式中餵狗防止復位只會錯上加錯。」
stm32 視窗看門狗
當程式跑飛後又回到正常地方或者正好執行了重新整理看門狗操作,此情況下一般的看門狗是檢查不出來的 故可以使用視窗看門狗,這樣保證不會提前或者之後重新整理看門狗。可以檢查程式沒有按正常路線執行而跳過的一些程式段。視窗看門狗 就是在餵狗時間上有乙個上下線。只有在此時間段內才能執行餵狗操作。上線可以在暫存器...
STM32視窗看門狗
今天剛好遇到使用視窗看門狗的情況,開始設定不是很理解,摸索了幾個小時後終於明白了。記錄下以備不時之需。如上圖,從手冊的截圖,首先找到wwdg的時鐘 就是apb1了。其次我們看到下面wwdg復位條件兩個 如果啟動了看門狗當看門狗計數器 7bit 最大值127 少於0x40 64 時復位,如果啟動了看門...
STM32之視窗看門狗
1 有個7位遞減計數器 wwdg cr 就這個計數器和視窗計數器 wwdg cfr 決定什麼時候餵狗。狗喂早了,復位 早 體現在 計數器值 tr 視窗值 wr 也就是計數器值還沒有減到視窗值以下 2 當 0x40 計數器值 tr 視窗值 wr 時,這時候最適合餵狗了,也只有在這時候餵狗才合適 3 當...