iwdg.c里面的代码如下:
#include "iwdg.h"
//初始化独立看门狗
//prer:分频数:0~7(只有低 3位有效!) rlr:自动重装载值,0~0XFFF.
//分频因子=4*2^prer.但最大值只能是256!
//rlr:重装载寄存器值:低11位有效.
//时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器写保护
IWDG_SetPrescaler(prer); //设置 IWDG分频系数
IWDG_SetReload(rlr); //设置IWDG装载值
IWDG_ReloadCounter(); //reload
IWDG_Enable(); //使能看门狗
}
//喂独立看门狗
void IWDG_Feed(void)
{
IWDG_ReloadCounter();//reload
}
该代码就 2个函数,void IWDG_Init(u8 prer,u16 rlr)是独立看门狗初始化函数,就是按照上面介绍的步骤来初始化独立看门狗的。该函数有2 个参数,分别用来设置预分频数与重装载寄存器的值的。通过这两个参数,就可以大概知道看门狗复位的时间周期为多少了。其计算方式上面有详细的介绍,这里不再多说了。
void IWDG_Feed(void)函数,该函数用来喂狗,因为STM32的喂狗只需要向