independent watchdog 独立看门狗 window watchdog 窗口看门狗

news2025/1/15 19:58:41

看门狗(watchdog)

防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗

看门狗工作过程

启动看门狗后,有一个计数器从最大值递减,计数器减到0就会导致系统复位。为了不让每次复位会在某个时间内喂狗,也就是修改相应的寄存器在计数器没减到0的时候把计数器值再次调大。

IWDG和WDOG(window)

独立看门狗和窗口看门狗的区别:
IWDG使用的是LSI低速时钟,即使主时钟故障,独立看门狗仍然可以正常工作,只有上限,下限是0
WDOG是从APB1时钟分频的时钟,**时间较精确,**适合精确计时的程序检测,有上限,下限计数器时间0x40

独立看门狗寄存器启动运行

1,键值寄存器(IWDG_KR)写入0xcccc,开启独立看门狗。计时器从0xfff开始递减,若减到1则复位
2,在键值寄存器中写入0xAAAA,计数器会自动装载(重装载寄存器)IWDG_RLR的值,也就是俗称的**喂狗**
3,如果程序异常,无法喂狗,进而系统复位

在这里插入图片描述
在这里插入图片描述
IWDG_KR寄存器中写入0x5555,也就是取消写保护

独立看门狗时间计算

在这里插入图片描述
分频系数=4*2^PR,所以每次一个时钟减一次,所以所有溢出时间是计时器的值RLR有关,
在这里插入图片描述

Tout=((4×2^PR) ×RLR) /40 

常用函数

 取消寄存器写保护:
      IWDG_WriteAccessCmd();
②  设置独立看门狗的预分频系数,确定时钟:
     IWDG_SetPrescaler();
③  设置看门狗重装载值,确定溢出时间:
    IWDG_SetReload();
④  使能看门狗
    IWDG_Enable();
⑤  应用程序喂狗:
   IWDG_ReloadCounter();

溢出时间计算:
   Tout=((4×2^prer) ×rlr) /40 (M3)



void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);//取消写保护:0x5555使能
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);//设置预分频系数:写PR
void IWDG_SetReload(uint16_t Reload);//设置重装载值:写RLR
void IWDG_ReloadCounter(void);//喂狗:写0xAAAA到KR
void IWDG_Enable(void);//使能看门狗:写0xCCCC到KR
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);//状态:重装载/预分频 更新

窗口看门狗

喂狗时间

其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定0x3F)。独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。窗口看门狗的T6位就是在变为0就会复位,也就是下线值0x3f
在这里插入图片描述

窗口看门狗框图工作流程

首先,WWDG_CR看门狗启动位必须作用
第一种,WWDG_CR的后7位数据(计数器)大于WWDG_CFR时,通过比较器输出1,这时候喂狗(写入WWDG_CR)就会复位。可以看出WWDG_CFR记录的是上限值。
第二种:当WWDG_CR的T6位为0时,直接经过或门导致复位,所以不能减到0X40之下的0x3F.否则也触发复位
注意下图中的分频是在WWDG_CFR的第7,8位的值设置控制的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看门狗时间

在这里插入图片描述

常用寄存器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

程序设置和常用函数

 使能看门狗时钟:
     RCC_APB1PeriphClockCmd();
②  设置分频系数:
     WWDG_SetPrescaler();
③ 设置上窗口值:
     WWDG_SetWindowValue();
④ 开启提前唤醒中断并分组(可选)WWDG_EnableIT();   
     NVIC_Init();
⑤ 使能看门狗:
     WWDG_Enable();
⑥ 喂狗:
    WWDG_SetCounter();
⑦编写中断服务函数
   WWDG_IRQHandler();   //一般将唤醒中断过程中喂狗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双层pdf-不用手动添加目录超链接教程

双层pdf最大的特点是文件既可以是文本型的(比如由word生成的文件),也可以是图像型的,既可以100%保留原始版面效果,又便于建立索引数据库,进行科学的管理。在标书中应用广泛。 使用软件:wordAdo…

Linux文件操作(基础IO)

在C、C、Python等语言中存在对文件操作的接口,通过这些接口我们可以创建文件,并实现文件内容的写入和读取,本文将介绍Linux下我们是如何进行文件操作的,并且深入底层的解析文件操作的原理。 文章目录一、C语言中的文件接口1.1 fop…

【pandas】教程:1-处理什么样的数据

pandas 处理什么样的数据? pandas 数据表格的表示 想存储一些 Titanic 乘客数据,知道姓名,年龄,性别等; df pd.DataFrame({"Name": ["Braund, Mr. Owen Harris","Allen, Mr. William Henry…

仪表板工具Stimulsoft Dashboards仪表板中的数据筛选元素介绍

Stimulsoft Ultimate是用于创建报告和仪表盘的通用工具集,包含九种产品,可以为任何受支持的平台创建报告和仪表板,适用于WinForms,ASP.NET,.NET Core,JavaScript,WPF,PHP&#xff0c…

Java EE 期末复习提纲【太原理工大学】

目录 一、题型 二、考点 1. MyBatis 2. Spring 3. Spring MVC 一、题型 1. 选择题 20 个,每个 1 分,共 20 分。 2. 填空题 20 个,每个 1 分,共 20 分。 3. 判断题 10 个,每个 1 分,共 10 分。 4. 程…

SSM1---MyBatis

MyBatis MyBatis环境搭建 我这个是使用IDEA&#xff0c;基于Maven搭建的 首先建立一个空的Maven项目或者模块在pom.xml中引入所需依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…

技术分享| 复盘一起看球场景

卡塔尔世界杯已经落幕&#xff0c;作为“后新冠时代”的首个大型全球体育赛事&#xff0c;也同时被多个“史上首次”与“历史之最”所装点&#xff0c;但同时也是国内疫情的高峰期&#xff0c;相信大多数人都是顶着高烧咳嗽跟好友线上看完了总决赛&#xff0c;对于线上互动一起…

民锋国际期货:期货交易 | 博弈之道,遵守法则

期货交易 | 博弈之道&#xff0c;遵守法则 对于一些好的书籍我会阶段性复读&#xff0c;因为每一次阅读都会有新的收获和更深的理解。这么做的目的是经过反复的咀嚼消化将其运用到交易实践中&#xff0c;为己所用。 最近重温了《海龟交易法则》&#xff0c;而第一次读这本书应…

C++TensorRT | TensorRT模型编译流程

tensorrt的工作流程如下图: 首先定义网络 优化builder参数 通过builder生成engine,用于模型保存、推理等 engine可以通过序列化和逆序列化转化模型数据类型(转化为二进制byte文件,加快传输速率) 再进一步推动模型由输入张量到输出张量的推理 代码结构: 定义 builder, con…

由手机号正则引发的思考,正则属性 lastIndex

问题&#xff1a; let reg /^1[3456789]\d{9}$/g 正则是验证手机号的证&#xff0c;为何突然不能验证正确的手机号了呢&#xff1f;其中有何蹊跷&#xff1f; 解决方案&#xff1a;底部有3种解决方案&#xff0c;方案3解决最稳妥 先来看一段正则&#xff1a; let reg /^1[3…

物联网架构实例—部标过检工具使用(物联网套件压测)

1.安装包 下载 2.安装MySQL数据库 如果安装时提示缺少C 2015的组件&#xff0c;需要执行vc_redist.x64.exe进行修改&#xff0c;直接双击执行vc_redist.x64.exe即可。 安装到这里&#xff0c;除了root账户外&#xff0c;另外需要增加一个gps账户&#xff0c;这个是过检工具连…

【电商】电商后台---价税管理

文章对电商后台系统中的价税管理进行了系统的介绍&#xff0c;希望通过此文能够加深你对电商系统的认识。 前面介绍了商品管理部分&#xff0c;从商品的属性、分类到商品资质、商品图片都做了说明&#xff0c;在梳理的过程中越发的感觉到每部分细节才是关键。但实话实说通过前几…

2023年全国NPDP产品经理国际认证火热招生啦

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年…

3节点Fate集群实战记录 -- 纵向联邦学习

前一篇博客记录了3节点fate集群实现横向联邦学习的实践过程link&#xff0c;本篇接着记录纵向联邦学习的实践过程&#xff0c;其中有些简单步骤未详细列出&#xff0c;具体执行方法可以参考上篇博客。 纵向联邦的场景简单说就是A和B两数据方&#xff0c;A知道B有A没有的特征bx&…

自监督学习UNSUPERVISED REPRESENTATION LEARNING BY PREDICTING IMAGE ROTATIONS论文笔记

文章目录一、自监督简介1.监督和无监督学习2.无监督学习3.自监督学习二、论文内容0.辅助任务1.出发点2.符号假设3.网络模型4.优点三、实验结果1.CIFAR实验a.评估学习到的特征层次结构b.探讨学习到的特征质量和辅助任务旋转角度之间的关系c.对比实验2.在IMageNet上不同任务的实验…

使用固定TCP端口地址远程MySQL数据库【内网穿透】

系列文章 公网远程连接内网MySQL数据库【内网穿透】使用固定TCP端口地址远程MySQL数据库【内网穿透】 在上篇文章中&#xff0c; 我们成功实现了在公网环境下远程连接内网MySQL数据库。但由于使用的免费的cpolar内网穿透&#xff0c;其所生成的公网地址为随机临时地址&#xf…

Java swing实现的一款餐厅点餐系统

一、项目简介 本项目是一套Java swing实现的一款餐厅点餐系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0c;确…

Python 面向对象编程 (二) —— 类函数的定义和构造

【无限嚣张&#xff08;菜菜&#xff09;】&#xff1a;hello您好&#xff0c;我是菜菜&#xff0c;很高兴您能来访我的博客&#xff0c;我是一名爱好编程学习研究的菜菜&#xff0c;每天分享自己的学习&#xff0c;想法&#xff0c;博客来源与自己的学习项目以及编程中遇到问题…

日本知名汽车零部件公司巡礼系列之株式会社137

株式会社137 业务内容&#xff1a; 汽车功能部件制造(离合器系统、制动系统) 代理供货业务(汽车相关制造商) 运输业务(汽车相关制造商) 公司简介&#xff1a; 资本金&#xff1a;5000万日元 员工数&#xff1a;山形工厂44名&#xff08;男31名&#xff0c;女13名&#xf…

折腾Transmission实现固定IP服务器BT做种教程

title: 折腾Transmission实现固定IP服务器BT做种完美 通过网络分享资源&#xff0c;是为了让人下载&#xff0c;但由于种种原因&#xff0c;放到商业网盘的资源经常会被删除&#xff0c;于是我只好自建简易的http文件下载服务&#xff0c;比如frp.v2fy.com [外链图片转存中……