独立看门狗是用的内部的40KHZ(大约30K-60K之间) RC振荡器,窗口看门狗是用的系统时钟APB1ENR
iwdg=(分频数 / 内部LSI(40KHz) )*IWDG_SetReload(t),t<0xFFF.最大设定的复位时间为 (1/40K)*256*0xFFF = 26.2 S
wwdg= (1/PCLK1)* 4096) * 分频系数(最大为8)*(0x7F – 0x3F)= 58ms
iwdg使用独立的内部RC时钟,所以没有系统中断,wwdg使用系统时钟,故能产生系统中断
iwdg只有下限,wwdg有下限和上限,通常情况下设置窗口上限值为0x7F,下限值默认为0x40
iwdg是12位递减的。wwdg是7位递减的
IWDG_Init(IWDG_PRESCALER_64,500); //64分频,500计数初始值,溢出时间1S
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG_Handler.Instance=IWDG;
IWDG_Handler.Init.Prescaler=prer;
IWDG_Handler.Init.Reload=rlr;
IWDG_Handler.Init.Window=IWDG_WINDOW_DISABLE;
HAL_IWDG_Init(&IWDG_Handler);
}
void IWDG_Feed(void)
{
HAL_IWDG_Refresh(&IWDG_Handler);
}