单片机中所谓“看门狗”,本质上就是一个计时器,主要作用就是用来防止代码卡死或跑飞,在单片机的应用中十分重要,但使用时却是十分简单方便的。

按字面意思理解,跟看家护院的狗狗是一个意思,就是芯片内置的一个定时器,主要作用就是来保障程序正常运行的,所以叫做看门狗。知道了他就是个单纯的定时器后,就容易理解多了,定时器的唯一一个功能,就是定时,当定时器启动后,内部变量一直累加,当累加到设定值后,自己重启。所以当你在定时器的变量累加到设定值之前,手动把他的变量清零,让他重新累加,那他就一直到不了设定值,也就不会重启。而手动将他的变量置为0的操作,就被称之为“喂狗”。“看门狗”的运行就是用到了这个原理。

在使用“看门狗”时一般需要两步,第一步初始化看门狗,其实就是给看门狗设置计数时间,也就是变量的设定值,当看门狗达到这个设定值时,就会触发重启。但在程序的正常运行下,我们是不希望单片机重启的,所以这时候就需要第二步"喂狗",也就是手动给计数器清零。所以我们一般在程序运行完的末尾加入“喂狗”操作。

当单片机初始化时,声明“看门狗”,看门狗内部计时器开始累加。然后程序开始运行,当程序第一遍运行结束后,执行喂狗操作,给看门狗计时器清零,然后程序重新运行。如果这时程序陷入一个死循环或者代码卡死,那么程序就不能正常运行完,而放在程序最末尾的“喂狗”函数就不会被执行,看门狗的定时器也就不会被重置,当看门狗累加到设定值后,则会触发重启,单片机重新运行。

对于看门狗的使用,还是非常重要的,尤其是对需要长时间工作的硬件设备,当单片机不正常工作了,看门狗则会自动重启代码,就会给后期维护节省很多麻烦。下面的代码就是看门狗在arduino里的运用,stm32的使用也一样。

/*********

*不论是arduino还是stm32,使用看门狗都需要先加载库文件

**********/

#include <avr/wdt.h> //看门狗库文件
#define TIMEOUT WDTO_8S //设定喂狗时间8s  8s后如果收不到喂狗操作,看门狗触发重启。

//初始化函数
void setup()
{
    wdt_enable(TIMEOUT);//开始看门狗 在代码初始化阶段启动看门狗
}

//主循环
void loop()
{

//需要运行的主程序

……
    wdt_reset();//喂狗 在程序运行一遍之后执行喂狗操作
}

关于单片机看门狗的浅谈理解相关推荐

  1. 嵌入式系统 - 看门狗设计浅谈

    术语介绍 嵌入式: 指嵌入式系统,编程领域下的一个特定的方向.和一般的编程不同,嵌入式编程的对象通常直接是CPU.内存.磁盘:实际产物 通常是可以单独独立运行的设备.例如:冰箱.空调.遥控器.DVD. ...

  2. 单片机看门狗c语言,单片机看门狗程序

    /*此程序实现单片机"看门狗"WDT的功能*/ #include"p18f458.h" unsignedlongi; /*系统初始化子程序*/ voidinit ...

  3. 单片机看门狗c语言,单片机看门狗程序 -解决方案-华强电子网

    *此程序实现单片机"看门狗"WDT的功能*/ #include"p18f458.h" unsignedlongi; /*系统初始化子程序*/ voidiniti ...

  4. STC单片机看门狗验证程序

    STC单片机看门狗验证程序 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sfr WDT_ ...

  5. STC89系列单片机看门狗的使用及应用程序

    转载:STC89系列单片机看门狗的使用及应用程序 "看门狗"概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程 ...

  6. 单片机看门狗工作原理

    刚学习单片机的萌新都听说过单片机看门狗,但是对于其工作原理并不是很清楚,今天这篇文章将为大家介绍单片机看门狗工作原理,一起来了解一下吧! 一.单片机看门狗是什么 在由单片机组成的微型计算机系统中,单片 ...

  7. STC15单片机-看门狗介绍

    什么是看门狗 在工业控制/ 汽车电子/航空航天等需要高可靠性的系统中,为了防止"系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作",通常是引进看门狗,如果 ...

  8. 大佬给总结的单片机看门狗详解很有用

    一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...

  9. 单片机看门狗是什么?工作原理?使用方法?

    看门狗是一个定时器电路,负责在程序跑飞或硬件停滞的情况下对单片机进行复位操作,使程序能从头执行. 工作原理:上面说过,看门狗是一个定时器电路,这个电路有一个输入和一个输出,输入就是喂狗操作(至于什么是 ...

最新文章

  1. LeetCode简单题之解码字母到整数映射
  2. .ajax get获取案例,$.ajax GET请求案例
  3. JavaScript 中 window.setTimeout() 的详细用法
  4. 亚信安全中标民生银行防病毒项目 为“互联网+金融”革新防护能力
  5. Exploring Micro-frameworks: Spring Boot--转载
  6. virtualbox和vagrant卸载脚本在macbook
  7. contiki makefile框架分析 contiki学习之一
  8. 产品经理面试,设计攻略
  9. 软件工程——软件维护总结
  10. 小管家进销存_美团入局共享充电宝,专家称或收购一两家,同行称雷声大雨点小...
  11. 支付宝获取token 报错signData is Empty
  12. 如何利用seo技术霸屏你的行业关键词排名
  13. 根据用户名字刷账户(取用户名的字母)
  14. 2023编程语言趋势
  15. oa系统服务器地址怎么查,如何查询oa服务器地址
  16. Quartz定时任务调度框架
  17. nvidia nx平台GStreamer pipeline异常问题调试记录2
  18. 一头扎进Mysql视频教程 + 源码
  19. PS小技巧之完美抠图
  20. HDU 6112 今夕何夕(模拟)

热门文章

  1. 详解动态规划算法(Python实现动态规划算法典型例题)
  2. 【战国策】之《齐策·张仪为秦连横说齐王曰》
  3. 聊聊Windows的销售渠道和授权版本
  4. [原]Wap push over sms 实践
  5. android 应用置顶到最前端_Android 将后台应用切换到前台
  6. ROS工业机器人和工业自动化竞赛ARIAC 2021即将启动
  7. Centos7 双网卡配置
  8. jQuery事件 笔记
  9. 严重性 代码 说明 项目 文件 行 禁止显示状态 警告 CS8032 无法从...创建分析器...的实例: 未能加载文件或程序集...或它的某一个依赖项。系统找不到指定的文件
  10. socket:10038错误