STM32有兩種看門(mén)狗:獨(dú)立看門(mén)狗和窗口看門(mén)狗。本文主要介紹獨(dú)立看門(mén)狗的使用。
獨(dú)立看門(mén)狗(IDWG):由獨(dú)立的40KHZ的低速時(shí)鐘為其驅(qū)動(dòng)。因此,即使主時(shí)鐘發(fā)生故障,IDWG依然可以正常工作。
窗口看門(mén)狗(WWDG):有從APB1的時(shí)鐘分頻后得到的時(shí)鐘驅(qū)動(dòng),通過(guò)可配置的時(shí)間窗口來(lái)檢測(cè)應(yīng)用程序非正常的過(guò)早或過(guò)遲的行為。
IDWG最適合用于那些需要看門(mén)狗在一個(gè)主程序外,能夠完全獨(dú)立工作,并對(duì)時(shí)間精度要求低的場(chǎng)合。而WWDG最適合那些要求看門(mén)狗在精確計(jì)時(shí)窗口起作用的應(yīng)用程序。
IDWG使用的過(guò)程中,可以采用以下的方式進(jìn)行配置:
void IWDG_Configuration(void)
{
/* 使能對(duì)IWDG_PR and IWDG_RLR 寄存器寫(xiě)數(shù)據(jù) */
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
/* 設(shè)置IWDG的時(shí)鐘頻率*/
IWDG_SetPrescaler(IWDG_Prescaler_32); //IWDG_PR: 40KHz(LSI) / 32 = 1.25 KHz //800u
/* 設(shè)置IWDG的周期*/
IWDG_SetReload(349); //280MS /*根據(jù)不同模塊調(diào)整*/
/* 按照IWDG重裝載寄存器的值重裝載IWDG計(jì)數(shù)器*/
IWDG_ReloadCounter();
/* 使能IWDG (the LSI oscillator will be enabled by hardware) */
IWDG_Enable();
}
上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像
CopyRight 2020-2025 www.pendragonrpg.com All rights reserved 滬ICP備2021005866號(hào)