STM32F030系列IWDG和WWDG的配置

1、(IWDG独立看门狗)

独立看门狗由内部低速时钟LSI提供计数时钟,8 位分频,12位计数,需要定期喂狗(重载数值 ReloadCounter),如果计数值减为0了,还没有重载数值,则会响应复位事件。

 

//看门狗的配置为了避免程序跑飞了,计数达到就会强制复位
void IWDG_Config(void)
{ //喂狗时间4S
#ifdef IWDG_OPEN    
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);        //打开独立看门狗的寄存器操作权限
    IWDG_SetPrescaler(IWDG_Prescaler_64);//预分频系数40KHz(LSI)/64=625HZ
    IWDG_SetReload(2500);//设置重装载值
    IWDG_ReloadCounter();//喂狗重新计数T=1/f  f=40KHZ/(2500*64)
    IWDG_Enable();      
#endif    
}

 

2、(WWDG窗口看门狗)

窗口看门狗由APB1(RCC_APB1Periph_WWDG)提供计数时钟,2 位分频,7位计数,需要定期喂狗(更新计数值),如果计数值减为0x40了,还未更新计数值,则会响应复位事件。

STM32F030系列IWDG和WWDG的配置

        当倒计数值要到设置的窗口值,产生窗口看门口中断时,马上喂狗。当倒计数值要到设置的窗口值,产生窗口看门口中断时,没有及时喂狗,将复位重启。

两者的区别:

 

1、时钟不同,IWDG使用内部低速时钟,WWDG使用系统时钟APB1;

 

2、IWDG只有下限,WWDG有上下限;

 

3、IWDG没有中断,WWDG有中断;

 

4、IWDG有12倒计数器,WWDG只有7位的计数器;