iwdg和wwdg
一、什么是看门狗?
在单片机工作的时候经常会出现受到外界电磁场的干扰导致程序跑飞,而陷入死循环,而使整个系统陷入无法正常工作的状态。
“看门狗”是一种专门用于监测单片机程序运行状态的模块或者芯片。
二、独立看门狗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的更多相关文章
- 第35章 WWDG—窗口看门狗—零死角玩转STM32-F429系列
第35章 WWDG—窗口看门狗 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- STM32之看门狗(独立与窗口)
广大的互联网网友们,大家早上中午晚上好,我是某某某..对于狗..看过<忠犬八公>的我.无不深深的被狗的义气与灵气所震撼..我也觉得在所有mcu中用看门狗来形容让系统复位的功能是很恰当的.也 ...
- STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示
一.介绍: STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示, IWDG和WWDG两者特点如下图所示: 独立看门狗的手册资料: 窗口看门狗的手册资料: ...
- STM32之------独立看门狗(IWDG)和窗体看门狗(WWDG)
一 前沿废语: 之前有很风靡的游戏,名字叫<看门狗>.该游戏用了很新的引擎技术,打造出了一个辽阔庞大的世界,内容是玩家Aiden·Pearce(主角)是一名精通黑客技术的高手,当时 ...
- STM8S awu及看门狗IWDG WWDG应用(转)
源:STM8S awu及看门狗IWDG WWDG应用 AWU的应用(用库函数完成的) //切记要开启中断 且在中断函数中 AWU_GetFlagStatus(); 来清除中断 void AWU_SET ...
- STM32之独立看门狗(IWDG)与窗口看门狗(WWDG)总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- watchdog(IWDG)
1.为了避免程序忙跑跑死了没反应,加上一个看门狗watchdog实时监控着程序,一旦程序没有在规定的时间喂狗,则狗叫使得单片机复位. 2.Independent watchdog(IWDG)内部有时钟 ...
- STM8S——watchdog(IWDG)
IWDG工作原理: 1.当键值寄存器(IWDG_KR)中写入数值0xCC后,独立看门狗就会被启动,计数器开始从它的复位值0xFF开始递减计数,当计数减到0x00时就会产生一个复位信号. 2.使用IWD ...
- STM32之旅5——IWDG
STM32之旅5--IWDG stm32有两个看门狗,一个独立看门狗(IWDG).一个窗口看门狗(WWDG):独立看门狗是时钟源是内部的40kHz的低速时钟,即使主频出问题了,独立看门狗也不会受到影响 ...
随机推荐
- 【译】.NET 6 网络改进
原文 | Máňa Píchová 翻译 | 郑子铭 对于 .NET 的每个新版本,我们都希望发布一篇博客文章,重点介绍网络的一些变化和改进.在这篇文章中,我很高兴谈论 .NET 6 中的变化. 这篇 ...
- RandomStringUtils 生成随机字符串
代码: System.out.println(RandomStringUtils.randomAlphanumeric(32));System.out.println(RandomStringUtil ...
- 7月2日 Django 生成验证码、
html页面里 {# 验证码 #} <div class="form-group " id="v-code-wrapper"> <label ...
- 《前端运维》五、k8s--1安装与基本配置
一.k8s基础概念与安装 k8s,即kubernetes是用于自动部署,扩展和管理容器化应用程序的开源系统.详细的描述就不多说了,官网有更详细的内容.简单来说,k8s,是一个可以操作多台机器调度部署镜 ...
- 大咖说|网易数帆论道 PolarDB 数据库开源 & 存储生态
开源技术如何商业化?将遇到什么问题?有哪些可行的解决办法?本期大咖说,阿里云数据库开源战役负责人曲山将携手网易副总裁汪源与你分享关于开源商业化的思考. 嘉宾简介 网易副总裁.杭州研究院执行院长.网易数 ...
- 数据结构 - 顺序表 C++ 实现
顺序表 此处实现的顺序表为**第一个位置为 data[0] **的顺序表 顺序表的定义为 const int MAX = 50; typedef int ElemType; typedef struc ...
- 麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12
前言 开发国产应用,使用到银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4.V7.V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境. 银河麒麟V1 ...
- 在centos7上安装iptables防火墙
规则配置: iptables -P OUTPUT ACCEPT 1.关闭原先CentOS7自带的firewall防火墙: systemctl stop firewalld 2.安装或更新iptable ...
- Schema和数据类型优化?
整数TinyInt,SmallInt,MediumInt,Int,BigInt 使用的存储8,16,24,32,64位存储空间.使用Unsigned表示不允许负数,可以使正数的上线提高一倍.实数 Fl ...
- uWSGI+django+nginx的工作原理流程与部署
二.必要的前提 2.1 准备知识 django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. uWSGI 一个基于自有的uwsgi协议.wsgi协议和http服务协议的web ...