stm32 視窗看門狗

2021-07-08 19:26:26 字數 851 閱讀 6801

當程式跑飛後又回到正常地方或者正好執行了重新整理看門狗操作,此情況下一般的看門狗是檢查不出來的

故可以使用視窗看門狗,這樣保證不會提前或者之後重新整理看門狗。可以檢查程式沒有按正常路線執行而跳過的一些程式段。

視窗看門狗:就是在餵狗時間上有乙個上下線。只有在此時間段內才能執行餵狗操作。

上線可以在暫存器中設定;而下線是固定值0x3fh

工作示意圖:

框圖:

產生復位情況:

1、當餵狗的時候如果是計數器的值大於設定值;

2、當計數器的值從0x40減到0x3f時,就是圖中的t6跳變到0時

超時計算:twwdg = (4096 * 2 ^wdgtb * (t[5:0] + 1) /  fpclk1)

wwdgtb是wwdg的預分頻係數        fpclk1是 apb1的時鐘分頻(khz)   t(5:0)是看門狗計數器低6位

配置過程:

1、使能看門狗時鐘:rcc_apb1periphclockcmd()

2、設定分頻係數:wwdg_setprescaler()

3、設定上視窗值:wwdg_setwindowvalue()

4、開啟提前喚醒中斷並分組: wwdg_enable1t()      nvic_init()

5、使能看門狗:wwdg_enable()

6、餵狗:wwdg_setcounter()

7、中斷函式:wwdg_irqhandler()

STM32視窗看門狗

今天剛好遇到使用視窗看門狗的情況,開始設定不是很理解,摸索了幾個小時後終於明白了。記錄下以備不時之需。如上圖,從手冊的截圖,首先找到wwdg的時鐘 就是apb1了。其次我們看到下面wwdg復位條件兩個 如果啟動了看門狗當看門狗計數器 7bit 最大值127 少於0x40 64 時復位,如果啟動了看門...

STM32之視窗看門狗

1 有個7位遞減計數器 wwdg cr 就這個計數器和視窗計數器 wwdg cfr 決定什麼時候餵狗。狗喂早了,復位 早 體現在 計數器值 tr 視窗值 wr 也就是計數器值還沒有減到視窗值以下 2 當 0x40 計數器值 tr 視窗值 wr 時,這時候最適合餵狗了,也只有在這時候餵狗才合適 3 當...

stm32 視窗看門狗學習(二)

視窗看門狗有乙個提前喚醒中斷,如果開啟這個中斷,那麼當計數器的值達到0x40的時候就會產生這個中斷。上次的 加一點就可以做這個實驗了。void wwdg init u8 tr,u8 wr,u32 fprer 最後三行是新加的。void wwdg nvic init void void wwdg ir...