“独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即便主时钟产生毛病它也依然有用。IWDG最适合应用于那些需求看门狗作为一个在主程序之外,可以彻底独立作业,而且对时刻精度要求较低的场合。WWDG最适合那些要求看门狗在准确计时窗口起作用的应用程序。”
/*
* 选用独立看门狗作为看门狗守时器
* 独立看门狗由内部专门的 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的看门狗
}
}