stm32 独立看门狗
/*
* 采用独立看门狗作为看门狗定时器
* 独立看门狗由内部专门的 40Khz 低速时钟驱动,
* 即使主时钟发生故障,它也仍然有效
*000:预分频因子=4 // 最短时间 0.1 ms
*001:预分频因子=8 // 最短时间 0.2 ms
*010:预分频因子=16 // 最短时间 0.4 ms
*011:预分频因子=32 // 最短时间 0.8 ms
*100:预分频因子=64 // 最短时间 1.6 ms
*101:预分频因子=128 // 最短时间 3.2 ms
*110:预分频因子=256 // 最短时间 6.4 ms
*111:预分频因子=256 //
*/
初始化,并且启动看门狗
void IWDG_Initial(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //①使能对寄存器 I 写操作
IWDG_SetPrescaler(IWDG_Prescaler_16); //②设置 IWDG 预分频值:设置 IWDG 预分频值
IWDG_SetReload(0xFFF); //②设置 IWDG 重装载值 定时时间1638.4ms
IWDG_ReloadCounter(); //③按照 IWDG 重装载寄存器的值重装载 IWDG 计数器
IWDG_Enable(); //④使能 IWDG
}
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能写入PR和RLR
主程序中喂狗
void main void
{
while(1)
{
IWDG_ReloadCounter();// 喂狗 1.6 s的看门狗
}
}
评论