STM32 獨(dú)立看門狗的使用
STM32有兩種看門狗:獨(dú)立看門狗和窗口看門狗。本文主要介紹獨(dú)立看門狗的使用。
獨(dú)立看門狗(IDWG):由獨(dú)立的40KHZ的低速時(shí)鐘為其驅(qū)動(dòng)。因此,即使主時(shí)鐘發(fā)生故障,IDWG依然可以正常工作。
窗口看門狗(WWDG):有從APB1的時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過可配置的時(shí)間窗口來檢測應(yīng)用程序非正常的過早或過遲的行為。
IDWG最適合用于那些需要看門狗在一個(gè)主程序外,能夠完全獨(dú)立工作,并對時(shí)間精度要求低的場合。而WWDG最適合那些要求看門狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。
IDWG使用的過程中,可以采用以下的方式進(jìn)行配置:
-
voidIWDG_Configuration(void)
-
{
-
-
/*使能對IWDG_PRandIWDG_RLR寄存器寫數(shù)據(jù)*/
-
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
-
-
/*設(shè)置IWDG的時(shí)鐘頻率*/
-
IWDG_SetPrescaler(IWDG_Prescaler_32);//IWDG_PR:40KHz(LSI)/32=1.25KHz//800u
-
-
/*設(shè)置IWDG的周期*/
-
IWDG_SetReload(349);//280MS/*根據(jù)不同模塊調(diào)整*/
-
-
/*按照IWDG重裝載寄存器的值重裝載IWDG計(jì)數(shù)器*/
-
IWDG_ReloadCounter();
-
-
/*使能IWDG(theLSIoscillatorwillbeenabledbyhardware)*/
-
IWDG_Enable();
-
}