stm32 獨(dú)立看門狗
/*
* 采用獨(dú)立看門狗作為看門狗定時(shí)器
* 獨(dú)立看門狗由內(nèi)部專門的 40Khz 低速時(shí)鐘驅(qū)動(dòng),
* 即使主時(shí)鐘發(fā)生故障,它也仍然有效
*000:預(yù)分頻因子=4 // 最短時(shí)間 0.1 ms
*001:預(yù)分頻因子=8 // 最短時(shí)間 0.2 ms
*010:預(yù)分頻因子=16 // 最短時(shí)間 0.4 ms
*011:預(yù)分頻因子=32 // 最短時(shí)間 0.8 ms
*100:預(yù)分頻因子=64 // 最短時(shí)間 1.6 ms
*101:預(yù)分頻因子=128 // 最短時(shí)間 3.2 ms
*110:預(yù)分頻因子=256 // 最短時(shí)間 6.4 ms
*111:預(yù)分頻因子=256 //
*/
初始化,并且啟動(dòng)看門狗
void IWDG_Initial(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //①使能對(duì)寄存器 I 寫操作
IWDG_SetPrescaler(IWDG_Prescaler_16); //②設(shè)置 IWDG 預(yù)分頻值:設(shè)置 IWDG 預(yù)分頻值
IWDG_SetReload(0xFFF); //②設(shè)置 IWDG 重裝載值 定時(shí)時(shí)間1638.4ms
IWDG_ReloadCounter(); //③按照 IWDG 重裝載寄存器的值重裝載 IWDG 計(jì)數(shù)器
IWDG_Enable(); //④使能 IWDG
}
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能寫入PR和RLR
主程序中喂狗
void main void
{
while(1)
{
IWDG_ReloadCounter();// 喂狗 1.6 s的看門狗
}
}
評(píng)論