IWDG\_WriteAccessCmd(IWDG_WriteAccess_Enable); /\* 使能对寄存器IWDG\_PR和IWDG\_RLR的写操作\*/
IWDG\_SetPrescaler(prer); /\*设置IWDG预分频值:设置IWDG预分频值\*/
IWDG\_SetReload(rlr); /\*设置IWDG重装载值\*/
IWDG\_ReloadCounter(); /\*按照IWDG重装载寄存器的值重装载IWDG计数器\*/
IWDG\_Enable(); /\*使能IWDG\*/
}
/**
* 喂独立看门狗
*/
void IWDG_Feed(void)
{
IWDG_ReloadCounter(); /*reload*/
}
/**
*main函数
*/
void main(void)
{
NVIC_Configuration();//优先级配置
IWDG_Init(4,625);//初始化独立看门狗,分频数为64,重装载值为625,溢出时间计算为:64*625/40=1000ms=1s
while(1)
{
delay_ms(500);//0.5秒喂一次狗
IWDG_Feed();//喂狗
}
}
对于溢出时间的计算大家可以按照下面的公式计算:`Tout=((4×2^prer) ×rlr) /40 (M3)`
独立看门狗所用到的库函数:
void WWDG_DeInit(void);
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
void WWDG_S