一、什么是看门狗?

在单片机工作的时候经常会出现受到外界电磁场的干扰导致程序跑飞,而陷入死循环,而使整个系统陷入无法正常工作的状态。

“看门狗”是一种专门用于监测单片机程序运行状态的模块或者芯片。

二、独立看门狗iwdg

独立看门狗应用到的寄存器

键值寄存器IWDG_KR:0~15位有效

预分频寄存器IWDG_PR:0~2位有效

重装载寄存器IWDG_RLR:0~11位有效

上述两个寄存器具有写保护功能

状态寄存器IWDG_SR:0~1位有效

独立看门狗操作步骤

独立看门狗程序实践

在STM32F103系列单片机的不完全手册上面有对于独立看门狗的例程,分为初始化和喂狗两部分,这个程序是与上面的步骤相对应的。

在后续的实践和学习中,发现可以用cubeMX进行看门狗的配置(等同于在代码中的初始化),之后在代码中用HAL_IWDG_Refresh函数直接喂狗就可以了。

三、窗口看门狗wwdg

窗口看门狗(WWDG)用于发现由外部接口或者不可预期的逻辑操作导致的软件故障。这些故障会导致程序中断正常运行。当一个程序周期结束时,看门狗电路会产生一个MCU复位信号,除非在看门狗电路复位之前程序返回正常运行逻辑。当计数器减少到预设值的时候,也会产生一个复位信号。这就意味着计数器必须限制在一个指定的窗口内。

【窗口看门狗主要特性】

1、可编程向下计数器

2、复位条件:计数器值小于0x40或者计数器值超出设定的窗口。

3、早期唤醒中断(EWI)计数值等于0x40时产生中断,即等于0x40就产生中断小于0x40就复位。

产生复位条件:计数器计数到小于0x40,计数器值小于配置寄存器(CFR)中设定的窗口值时  产生复位信号。

窗口计数器的计数值在0x7F到0x40之间变化.窗口计数器一旦被使能,就不能停止,直到reset。即使没有使能窗口看门狗,其计数器也会直至不停地计数,所以为了避免刚开始计数就被复位,计数器的值必须设置为大于等于0x40即CR中的T6位必须设置为1并且小于预设值,然后启动WWDG。

窗口看门狗的特点是:不能在狗饱时喂狗,也不能在狗饿时喂狗。狗饿时喂狗,狗要咬人;狗饱的时候喂,狗也要咬人;只能在一个时间段内、当狗半饱的时候喂,狗才能乖乖地干活。一般的看门狗是在任何时间都可以喂狗,不管狗是不是已经饱了。这段时间就是计数器数字在的T[6..0]到0x40之间时,才可以喂狗。这里的窗口,可以理解为喂狗的时间窗口。

四、关于看门狗的应用和一些理解误区

窗口看门狗是挂载在APB1时钟上的一个定时器(计数器),而独立看门狗是应用独立时钟源的一个计数器,对于精准度而言窗口看门狗有更高的时间精确度,但是使用窗口看门狗时

,窗口看门狗的预分频值最高为8,会造成重装载(喂狗)的频率过高,达不到看门狗的效果。

独立看门狗并不能追踪到任务执行到哪里的时候出现了错误,只能在程序跑飞(例如进入hardfault,can error)的时候进行reset。

独立看门狗的喂狗任务可以说是与其他任务是独立的,无论是在定时器中断中,还是在RTOS的多线程系统中,独立看门狗都是独立于其他的任务而存在的,与其他的任务互不干扰。

iwdg和wwdg的更多相关文章

  1. 第35章 WWDG—窗口看门狗—零死角玩转STM32-F429系列

    第35章     WWDG—窗口看门狗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  2. STM32之看门狗(独立与窗口)

    广大的互联网网友们,大家早上中午晚上好,我是某某某..对于狗..看过<忠犬八公>的我.无不深深的被狗的义气与灵气所震撼..我也觉得在所有mcu中用看门狗来形容让系统复位的功能是很恰当的.也 ...

  3. STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示

    一.介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料:             ...

  4. STM32之------独立看门狗(IWDG)和窗体看门狗(WWDG)

    一     前沿废语: 之前有很风靡的游戏,名字叫<看门狗>.该游戏用了很新的引擎技术,打造出了一个辽阔庞大的世界,内容是玩家Aiden·Pearce(主角)是一名精通黑客技术的高手,当时 ...

  5. STM8S awu及看门狗IWDG WWDG应用(转)

    源:STM8S awu及看门狗IWDG WWDG应用 AWU的应用(用库函数完成的) //切记要开启中断 且在中断函数中 AWU_GetFlagStatus(); 来清除中断 void AWU_SET ...

  6. STM32之独立看门狗(IWDG)与窗口看门狗(WWDG)总结

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

  7. watchdog(IWDG)

    1.为了避免程序忙跑跑死了没反应,加上一个看门狗watchdog实时监控着程序,一旦程序没有在规定的时间喂狗,则狗叫使得单片机复位. 2.Independent watchdog(IWDG)内部有时钟 ...

  8. STM8S——watchdog(IWDG)

    IWDG工作原理: 1.当键值寄存器(IWDG_KR)中写入数值0xCC后,独立看门狗就会被启动,计数器开始从它的复位值0xFF开始递减计数,当计数减到0x00时就会产生一个复位信号. 2.使用IWD ...

  9. STM32之旅5——IWDG

    STM32之旅5--IWDG stm32有两个看门狗,一个独立看门狗(IWDG).一个窗口看门狗(WWDG):独立看门狗是时钟源是内部的40kHz的低速时钟,即使主频出问题了,独立看门狗也不会受到影响 ...

随机推荐

  1. JSP 表单提交 数据库乱码解决方法

    问题:有时候在做jsp逻辑处理时,比如提交表单,从前台注册的页面提交了一部分的数据,但是后面处理的JSP页面通过 request.getParameter 调用时,获取到的是一堆乱码. 乱码分析:因为 ...

  2. Fiddler抓包常用功能

    通过上一篇文章Fiddler移动端抓包,我们知道了Fiddler抓包原理以及怎样进行移动端抓包,接下来介绍Fiddler中常用的功能. Fiddler中常用的功能如下: 停止抓包 清空会话窗内容 过滤 ...

  3. ArcMap操作随记(4)

    1.统计各省份公路长度 [标识]→[汇总]→[视图][创建] 2.用户登录分配 [创建渔网]→[连接] 3.城市超市影响范围 [创建泰森多边形]→[标识]→[汇总] 4.三维可视化分析 [构造视线]→ ...

  4. 前端知识之JavaScript知识

    前端之javaScript JavaScript html :展示文档内容的 css:控制文档的显示效果 js:控制文档的交互效果 是脚本语言 一种轻量级的编程语言 可插入html页面的编程代码 js ...

  5. 领域驱动模型DDD(一)——服务拆分策略

    前言 领域驱动模型设计在业界也喊了几年口号了,但是对于很多"务实"的程序员来说,纸上谈"术"远比敲代码难得太多太多.本人能力有限,在拜读相关作品时既要隐忍书中晦 ...

  6. ctf之Flask_fileUpload

    启动环境,显示如图: 直接f12产看源码信息: 大致意思是:使用python编写文件然后以图片格式上传系统会以ipython格式解析,就可获取flag. 编写python代码: import os o ...

  7. Notion-douan:搭建自己的阅读清单

    前言 交完论文盲审稿,终于从接近一年的实习.秋招和论文的忙碌中闲下来. 在复盘秋招的时候发现自己虽然看过不少书,但缺少整理和思考,所以想趁这个机会梳理一下自己的阅读习惯,希望以后再读新的东西可以更系统 ...

  8. Ajax的核心的对象是什么?

    Ajax的核心对象是XMLXMLHttpRequest 对象. XMLHttpRequest提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在 ...

  9. Spring 框架中都用到了哪些设计模式?

    (1)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例: (2)单例模式:Bean默认为单例模式. (3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB ...

  10. 简述 Mybatis 的插件运行原理,以及如何编写一个插件。

    Mybatis 仅可以编写针对 ParameterHandler.ResultSetHandler. StatementHandler.Executor 这 4 种接口的插件,Mybatis 使用 J ...