嵌入式开发交流网论坛

标题: STC单片机中的WatchDog使用心得 [打印本页]

作者: 萌萌男神丶Lin    时间: 2018-6-26 22:53
标题: STC单片机中的WatchDog使用心得
WatchDog看门狗程序是一个我们经常会用到的程序。这里基于自己的理解和查阅相关的资料来对其进行一下说明。


1、为什么要使用看门狗?
由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果。



2、看门狗的大体原理(自己理解的)
经过使用看门狗后,我说一下我对对看门狗的理解。看门狗其实就类似一个计数器,启动看门狗后,它就开始自己计数,如果计数到了一个值或时间(这个可以自己设定)它就会溢出,溢出同时它就会给系统一个复位信号,这时系统程序就会从头开始运行。


为了不让看门狗的值溢出,我们需要在程序运行中喂狗(也就是手动把看门狗的计数值清零)确保它不会溢出。如果你的程序中用了延时函数那请注意一下延时时间的设置不要和看门狗的溢出时间冲突了,这个我就不细说了需要大家动手练习才更容易理解。


最后在补充一句。其实溢出的同时看门狗的溢出标志位也会置一,如果你设置了看门狗相关的中断,它就会进入中断程序。(进入中断程序后别忘了手动清除看门狗的溢出标志位)


3、看门狗的使用(基于STC15W204S单片机、Keil 5环境、C语言)
在这里只给出整个程序的一部分,为了讲解使用。

void main(void)
{
牋牋牋 UART1_Init();




欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2