您的位置:首頁 > 熱點(diǎn) >

STM32的看門狗配置

看門狗的配置有2部分:看門狗的初始化和喂狗。

下面看一下STM32是怎么初始化看門狗和喂狗的。

看門狗初始化步驟:

1.IWDG_PR和IWDG_RLR寄存器具有寫保護(hù)功能。要修改這兩個(gè)寄存器的值,必須先向IWDG_KR寄存器中寫入0x5555。

2.設(shè)置預(yù)分頻因子 (Prescaler divider)PR[2:0] 。

3.設(shè)置看門狗計(jì)數(shù)器重裝載值。RLR[11:0]。

4.重新裝載看門狗的計(jì)數(shù)值,只要在鍵寄存器IWDG_KR中寫入0xAAAA。

5.在鍵寄存器(IWDG_KR)中寫入0xCCCC,開始啟用獨(dú)立看門狗。

void Wdt_Init(void){// Enable write access to IWDG_PR and IWDG_RLR registersIWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//IWDG->KR =0x5555// IWDG counter clock: 40KHz(LSI) / 64 = 0.625 KHzIWDG_SetPrescaler(IWDG_Prescaler_256);//IWDG->PR =0x06;

// Set counter reload value to 1250IWDG_SetReload(0xfff);//IWDG->RLR =0xFFFRed IWDG counter

IWDG_ReloadCounter();//IWDG->KR =0xAAAA

/ Enable IWDG (the LSI oscillator will be enabledby hardware)IWDG_Enable();//IWDG->KR =0xCCCC

}

//喂狗

void Kick_Dog(void){//Reload IWDG counterIWDG_ReloadCounter();//IWDG->KR =0xAAAA}

上面這個(gè)看門狗有 /25626214.4 ms。即2s多一點(diǎn)時(shí)間沒有喂狗就復(fù)位。

LSI不穩(wěn)定,官方手冊(cè)有下面這么一個(gè)說法:

標(biāo)簽: STM32看門狗配

相關(guān)閱讀