1、看门狗的寄存器模块如下图所示,要进行相应的寄存器配置,使得程序重启时触发WDRST;
2、看门狗触发时进行程序重启,而不是程序中断,代码如下图中蓝色所表示;另外,为了便于观察,在main主程序中,将GPIO0设置为孕驷巴墟高电平,在for循环中设置为低电平,并且,在for循环中,设置一个全局变量进行累加;代码如下图所示:
3、要进行看门狗的重启程序调试,需要将代艨位雅剖码下载到Flash中运行,因此,要进行相关的配置(比如:采用F708375pxd文件,程序中要加入Memcopy函数和InitFlash函数等);
4、下面是Watchdog进行“喂狗”时的代码,在main重启处设置了断点;
5、程序“喂狗”时的运行状态如下,可见程序并不返回到断点处,同时,LoopCount在不断累加;用示波器检查GPIO0的电平,此时为持续低电平;
6、下面是Watchdog取消“喂狗”时的代码,在main重启处设置了断点;
7、程序取消“喂狗”时的运行状态如下,程序总是返回到断点处;
8、若取消断点,可发现LoopCount并没有持续累加,总是在达到一定值后,又从零开始;另外,用示波器检查GPIO0的电平,也不再持续低电平,表明程序在取消“喂狗”后,进行了重启。