独立看门 狗
看门狗实验网上有很多实验教程,比较典型的有正点原子的实验教程,野火的实验教程,当然B站上也有很多,我这里就简单的附上我自己的代码,仅供参考,又不到位的地方,也希望大家可以多多指教。
.C文件:
#include "stm32f10x.h"
#include "iwdg.h"
//初始化独立看门狗
//prer:分频数:0~7(只有低3位有效!)
//分频因子=4*2^prer.但最大值只能是256!
//rlr:重装载寄存器值:低11位有效.
//时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能对寄存器IWDG_PR和IWDG_RLR的写操作
IWDG_SetPrescaler(prer); //设置IWDG预分频值:设置IWDG预分频值为64
IWDG_SetReload(rlr); //设置IWDG重装载值
IWDG_ReloadCounter(); //按照IWDG重装载寄存器的值重装载IWDG计数器
IWDG_Enable(); //使能IWDG
}
//喂独立看门狗
void IWDG_Feed(void)
{
IWDG_ReloadCounter();//reload
}
main.C 文件
#include "iwdg.h"
int main(void)
{
/*init_code*/
IWDG_Init(4,1935);
while(1)
{
IWDG_Feed();//喂狗
}
}