STM32窗口看門(mén)狗程序
2022-02-07 22:20:02|
來(lái)源:網(wǎng)絡(luò) 作者:
窗口看門(mén)狗(WWDG)通常被用來(lái)監(jiān)測(cè)由外部干擾或不可預(yù)見(jiàn)的邏輯條件造成的應(yīng)用程序背離正常的運(yùn)行序列而產(chǎn)生的軟件故障。除非遞減計(jì)數(shù)器的值在T6位(WWDG->CR的第六位)變成0前被刷新,看門(mén)狗電路在達(dá)到預(yù)置的時(shí)間周期時(shí),會(huì)產(chǎn)生一個(gè)MCU復(fù)位。在遞減計(jì)數(shù)器達(dá)到窗口配置寄存器(WWDG->CFR)數(shù)值之前,如果7位的遞減計(jì)數(shù)器數(shù)值(在控制寄存器中)被刷新, 那么也將產(chǎn)生一個(gè)MCU復(fù)位。這表明遞減計(jì)數(shù)器需要在一個(gè)有限的時(shí)間窗口中被刷新。圖 3.6.1.1中,T[6:0]就是WWDG_CR的低七位,W[6:0]即是WWDG->CFR的低七位。T[6:0]就是窗口看門(mén)狗的計(jì)數(shù)器,而W[6:0]則是窗口看門(mén)狗的上窗口,下窗口值是固定的(0X40)。當(dāng)窗口看門(mén)狗的計(jì)數(shù)器在上窗口值之外被刷新,或者低于下窗口值都會(huì)產(chǎn)生復(fù)位。上窗口值(W[6:0])是由用戶(hù)自己設(shè)定的,根據(jù)實(shí)際要求來(lái)設(shè)計(jì)窗口值,但是一定要確保窗口值大于0X40,否則窗口就不存在了。窗口看門(mén)狗的超時(shí)公式如下:Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1;其中:Twwdg:WWDG超時(shí)時(shí)間(單位為ms)Fpclk1:APB1的時(shí)鐘頻率(單位為Khz)WDGTB:WWDG的預(yù)分頻系數(shù)T[5:0]:窗口看門(mén)狗的計(jì)數(shù)器低6位窗口看門(mén)狗寄存器介紹:如何使用窗口看門(mén)狗:1)使能WWDG時(shí)鐘2)設(shè)置WWDG_CFR和WWDG_CR兩個(gè)寄存器在時(shí)鐘使能完后,我們?cè)O(shè)置WWDG的CFR和CR兩個(gè)寄存器,對(duì)WWDG進(jìn)行配置。包括使能窗口看門(mén)狗、開(kāi)啟中斷、設(shè)置計(jì)數(shù)器的初始值、設(shè)置窗口值并設(shè)置分頻數(shù)WDGTB3)開(kāi)啟WWDG中斷并分組4)編寫(xiě)中斷服務(wù)函數(shù)
標(biāo)簽: STM32窗口看門(mén)