1.概念

单片机平台的嵌入式产品,运行环境各种各样,所处环境可能有比较恶劣的情形(强电磁场,极端温湿度......)。

由于外接干扰,可能导致单片机内部数据混乱,程序运行出错,导致程序跑飞或者死循环,程序无法正常运行,这种情况需要纠正。

看门狗的作用是周期性地查看芯片的运行情况,一旦芯片发生错误,看门狗就会发送复位信号,让系统复位,从而恢复程序正常运行。

2.原理

看萌狗本质上是一个定时器,当看门狗超时,可以选择向芯片发送复位信号,正常运行时要避免看门狗超时,可以通过周期性地重置看门狗定时器的计数器来防止看门狗超时,这种操作叫做喂狗。如果程序跑飞或者进入死循环,不执行喂狗的代码,看门狗定时器就会超时,导致系统复位。

3.看门狗的分类

看门狗分为内部看门狗和独立看门狗

内部看门狗使用芯片本身的时钟和电源,如果芯片异常导致了看门狗异常,造成监控的作用弱化。

独立看门狗使用独立的时钟和电源,不会受到芯片本身异常的影响,监控效果更好。

4.stm32的独立看门狗

原始时钟使用的是低速内部振荡时钟 ------- LSI RC -------- 32KHz

stm32的看门狗寄存器具有写保护的功能,操作这些寄存器之前必须关闭写保护

解除写保护:IWDG_KR =====> 0x5555 启动看门狗:IWDG_KR =====> 0xcccc 喂狗::IWDG_KR =====> 0xaaaa

5.stm32f407看门狗的编程实现

工程中加入看门狗库函数源码:

(1)关闭看门狗寄存器写保护

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

(2)设置看门狗的预分频系数和看门狗的初始计数值

void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);

参数: * @arg IWDG_Prescaler_4: IWDG prescaler set to 4

* @arg IWDG_Prescaler_8: IWDG prescaler set to 8

* @arg IWDG_Prescaler_16: IWDG prescaler set to 16

* @arg IWDG_Prescaler_32: IWDG prescaler set to 32

* @arg IWDG_Prescaler_64: IWDG prescaler set to 64

* @arg IWDG_Prescaler_128: IWDG prescaler set to 128

* @arg IWDG_Prescaler_256: IWDG prescaler set to 256

void IWDG_SetReload(uint16_t Reload);

//参数就是初始值

//比如设置为1s

IWDG_SetPrescaler(IWDG_Prescaler_32);

//1KHz

IWDG_SetReload(1000);

(3)将重装载值装入计数器(喂狗)

void IWDG_ReloadCounter(void);

(4)启动看门狗

void IWDG_Enable(void);

6.窗口看门狗

窗口看门狗常用来保证某个操作必须在指定的时间范围内完成,基本原理和独立看门狗类似,区别是对喂狗时间进行了限制。

//看门狗编程实现

include <stm32f4xx.h>
#include <iwdg.h>void iwdg_init(void)
{//1.关闭寄存器写保护IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//2.设置周期 1sIWDG_SetPrescaler(IWDG_Prescaler_32);//1KHzIWDG_SetReload(1000);//3.喂狗IWDG_ReloadCounter();//4.启动看门狗IWDG_Enable();
}

第十一篇,看门狗定时器编程相关推荐

  1. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十一) 看门狗 开看门狗(默认开):WDTCTL=WDTPW; 清看门狗:WDTCTL=WDTPW+WDTCNTCL; 关看门狗:WDTCTL ...

  2. MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)

    目录 硬知识 看门狗定时计数器 (WDTCNT) 看门狗模式 定时计数模式 看门狗定时器中断 时钟故障保护功能 低功耗模式下的看门狗操作 看门狗定时器控制寄存器 WDT_A API (机翻) 参数 上 ...

  3. (18)Zynq FPGA 看门狗定时器介绍

    1.1 Zynq FPGA 看门狗定时器介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Zynq FPGA 看门狗定时器介绍: 5)结束语. 1.1.2 本节引言 ...

  4. 【转载】外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用

    外设使用Tips之MPC574xP系列汽车级MCU的SWT看门狗定时器配置与使用 原创 2017-09-13 胡恩伟 汽车电子expert成长之路 内容提要 引言 1. SWT的功能概述 2. SWT ...

  5. Linux系统看门狗应用编程

    目录 看门狗应用编程介绍 打开设备 获取设备支持哪些功能:WDIOC_GETSUPPORT 获取/设置超时时间:WDIOC_GETTIMEOUT.WDIOC_SETTIMEOUT 开启/关闭看门狗:W ...

  6. RTOS 系统篇-看门狗 WatchDog 2

    RTOS 系统篇-看门狗 WatchDog 2 概述 上一节在 RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 讲解了 看门狗的基本原理,以及任务.中断中触发看门狗的原因.解决方法. 本小 ...

  7. RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你]

    RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 概述 程序设计完成后,要开始考虑系统整体的稳定性了. 在设备上线后,可能因为程序设计不合理.硬件设计有 bug,电气干扰.静电噪声.电源故障 ...

  8. LabVIEW CompactRIO 开发指南10 确保可靠性与看门狗定时器

    LabVIEWCompactRIO 开发指南10 确保可靠性与看门狗定时器 在设计将要部署的嵌入式系统时,考虑纳入看门狗定时器以确保可靠性.看门狗定时器是一个硬件计数器,它与嵌入式软件应用程序接口,用 ...

  9. ARM 看门狗定时器

    一.什么是看门狗.有什么用 (1) 看门狗定时器和普通的定时器并无本质区别.定时器可以设定一个时间,在这个时间完成之前定时器不断计时,时间到的时候,定时器会复位 CPU(重启系统). (2 )系统正常 ...

  10. 用看门狗定时器做计时器,计算程序耗时,超声波测距,FL2440

    开发板:FL2440 核心芯片:S3C2440(ARM9) 超声波模块:HC-SR04 超声波模块工作原理:共四个脚,VCC接5V,GND接地,Trig脚接芯片通过IO传出的高电平(持续时间不低于10 ...

最新文章

  1. sqlite--代码操作
  2. 没想到这家聪明的公司,正在用AIoT让机器对话
  3. SpringBoot 发送邮件功能实现
  4. HttpClien GetPost
  5. java enum 返回list_java – 组合枚举并使用getter返回指定的枚举
  6. 解决Java Web项目无法读取配置文件问题
  7. C机顶盒开发实战常用初始化类型:数组、结构、指针
  8. pythonopencv显示图像_OpenCV-Python 读取显示图像 | 五
  9. UOJ #150 【NOIP2015】 运输计划
  10. 【RK3399Pro学习笔记】十六、ROS中的常用可视化工具
  11. Apache Cassandra 1.1.0 稳定版发布
  12. adb avd install 失败_Android 模拟器(emulator-5554...)出现错误解决办法
  13. mac下缺乏make wget怎么办?
  14. python IDE 集合
  15. 拓端tecdat|R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
  16. 洛谷 题解 UVA1395 【苗条的生成树 Slim Span】
  17. 采集51job职位数量画图后发邮件
  18. 世界ol的服务器在哪个文件夹,世界OL7月新区永恒之约官方服务器开启
  19. mysql 相同分数排名
  20. springboot+党员信息管理系统 毕业设计-附源码161528

热门文章

  1. 软考:嵌入式系统设计师
  2. jsp简介lamitry_[提拉米苏] 找人一起玩,今晚刚开的号
  3. 程序员职业生涯系列:关于技术能力的思考与总结
  4. VS2010应用程序的打包与图标设置
  5. 【Python】10行代码获取海贼王最新目录
  6. PSM+DID 效果评估python demo 、线性分类模型+双重差分法
  7. win8计算机无法安装打印机驱动程序,win8系统安装打印机驱动失败怎么办|win8系统安装打印机驱动失败的解决方法...
  8. centos7安装noIP-动态域名解析最佳实践
  9. echars折线图y轴自定义数值会被转换为整数的问题
  10. 【科普】当手机遭遇短信验证码轰炸,这几点尤其要注意