void WWDG_Init(void)
{
//窗口看门狗在计数值降到0x3f时产生复位,而且不能在大于窗口值时喂狗。
//否则复位
WWDG_WR = 0x60; //看门狗窗口值,窗口值必须在0x3F以上,但必须小于计数值,否则无法喂狗
WWDG_CR = 0x7F; //看门狗计数值
WWDG_CR|= 0x80; //使能窗口看门狗
// 4Mhz 主频,计数值0x7F 最大延长时间为 (64 * (12288 / 4000000)) = 196ms
//看门狗
}
/****************wwdg**************
*************窗口看门狗——喂狗程序**************
***********************************/
void Free_WWDG(void)
{
if((WWDG_CR&0X7F)<=WWDG_WR)//小于窗口值才能喂狗
WWDG_CR|=0X7F; //重新喂狗
}
春节前,我写了这个函数 实验了下,窗口看门狗能起到复位作用。 年后回来再烧写一次 就不能起到复位的作用了。 不知各位有没有用到过这个窗口看门狗的, 有的话 交流下吧,别掖着藏着了。 欢迎大家来 拍砖 |