STM32 - DOG看门狗笔记

news2025/4/20 14:20:40

WDG(Watchdog)看门狗

作用:

       看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性。

       看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号。

STM32内置两个看门狗     

  • 独立看门狗(IWDG):独立工作,对时间精度要求较低     
  • 窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用

独立看门狗 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精 度要求较低的场合。 窗口看门狗 最适合那些要求看门狗在精确计时窗口起作用的应用程序。

独立看门狗(IWDG)   

主要性能

  • 自由运行的递减计数器
  • 时钟由独立的RC振荡器提供 (可在停止和待机模式下工作)
  • 看门狗被激活后,则在计数器计数至0x000时产生复位

功能框图

 

看门狗功能处于VDD供电区,即在停机和待机模式时仍能正常工作。 

键寄存器 
  1. 键寄存器本质上是控制寄存器,用于控制硬件电路的工作
  2. 在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率

写入键寄存器的值

作用

0xCCCC

启用独立看门狗

0xAAAA

IWDG_RLR中的值重新加载到计数器(喂狗)

0x5555

解除IWDG_PRIWDG_RLR的写保护

0x5555之外的其他值

启用IWDG_PRIWDG_RLR的写保护

超时时间

  • 超时时间:TIWDG = TLSI × PR预分频系数 × ( RL + 1)
  • 其中:TLSI = 1 / FLSI 
  • TIWDG =1/ 40 *1000 × PR预分频系数  ×  ( RL + 1)   ----RL =(11位,最大4095)

 初始化代码

/*IWDG初始化*/
	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);	//独立看门狗写使能
	IWDG_SetPrescaler(IWDG_Prescaler_16);			//设置预分频为16
	IWDG_SetReload(2499);				//设置重装值为2499,独立看门狗的超时时间为1000ms
	IWDG_ReloadCounter();							//重装计数器,喂狗
	IWDG_Enable();									//独立看门狗使能

窗口看门狗(WWDG)

      窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运
行序列而产生的软件故障。

主要特性

  • 递减计数器T[6:0]的值小于 0x40 时,WWDG产生复位
  • 递减计数器T[6:0]在窗口W[6:0]外被重新装载时,WWDG产生复位
  • 递减计数器T[6:0]等于0x40时可以产生早期唤醒中断(EWI),用于重装载计数器以避免WWDG复位
  • 定期写入WWDG_CR寄存器(喂狗)以避免WWDG复位

框图

 

       如果看门狗被启动 (WWDG_CR 寄存器中的 WDGA 位被置 ’1’) , 并且当 7 (T[6:0]) 递减计数器从0x40翻转到 0x3F(T6 位清零 ) 时,则产生一个复位。如果软件在计数器值大于窗口寄存器中的数
值时重新装载计数器,将产生一个复位。
       应用程序在正常运行过程中必须定期地写入 WWDG_CR 寄存器以防止 MCU 发生复位。只有当计数器值小于窗口寄存器的值时,才能进行写操作。

 

超时时间

  • 超时时间:     TWWDG = TPCLK1 × 4096 × WDGTB预分频系数 × ( T[5:0] + 1 ) 
  • 窗口时间:     TWIN = TPCLK1 × 4096 × WDGTB预分频系数 × ( T[5:0] - W[5:0] )

其中:TPCLK1 = 1 / FPCLK1

初始化代码

/*开启时钟*/
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);//开启WWDG的时钟
	
/*WWDG初始化*/
	WWDG_SetPrescaler(WWDG_Prescaler_8);			    //设置预分频为8
	WWDG_SetWindowValue(0x40 | 21);					    //设置窗口值,窗口时间为30ms
	WWDG_Enable(0x40 | 54);							    //使能并第一次喂狗,超时时间为50ms
	

 

IWDG和WWDG对比

 

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

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

相关文章

蓝队必备技能--yara-让自己编写AVVT

🎼个人主页:金灰 😎作者简介:一名简单的大一学生;易编橙终身成长社群的嘉宾.✨ 专注网络空间安全服务,期待与您的交流分享~ 感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️ 🍊易编橙终身成长社群&#…

STM32G4 DMA的使用(寄存器开发)

下面以STM32G474为例,使用DMA来存储USART1的接收数据。 1. 查看硬件支持 首先查看要使用的DMA支持的通道数,在手册中有如下说明。 根据上图可以看到,对于不同的设备类型有不同的DMA通道数量。设备类型分类如下图所示。 我使用的是STM32G474…

springboot乡镇医院管理系统-计算机毕业设计源码51697

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2研究现状 1.3论文结构与章节安排 2 SpringBoot乡镇医院管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3…

spark基于Spark的对招聘信息的分析与设计-计算机毕业设计源码50716

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.2.1 数据新增流程 2.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体设计 3.1 系统架构设…

大模型之战进入新赛季,开始卷应用

最近一段时间,国产大模型Kimi彻底火了,而这波爆火,某种意义上也展示了一个问题,即大模型的落地场景可能比技术比拼,更重要。 国产大模型Kimi突然爆火,与Kimi相关的产业链甚至被冠上“Kimi概念股”之名&…

MES系统助力塑料制品行业数字化转型

注塑MES系统助力工厂生产力提升具体体现在:覆盖生产全流程;数据自动收集、科学规划排产;优化配送模型、平衡物流运转;严格把控品质、异常自动分析;实时监控设备,保证正常运转;产品快速追溯&…

uniapp 九宫格抽奖

<template><view class"container"><view class"navleft" click"navback"><image src"/static/cj/left.png" mode""></image></view><view class"navtitle">抽奖</…

鸿蒙应用开发之Counter容器

前面学习了纵向容器,现在来学习一个计数器的容器,就是说这个容器显示增加或减少,但数值会显示一个文本组件内,如下图所示: 上面组件中间显示5的组件是一个文本组件,边上提供了增减的按钮。 它有两个事件组件,用来响应边上两个按钮: 要在文本组件里显示出来,需要定义一…

批量提取Word文档中表格内容

1 背景 有一个word文件&#xff0c;其中包含多个格式一致的表格&#xff08;如下图&#xff09;&#xff0c;需要将其内容进行提取&#xff0c;填写到excel中 2 实现代码 ## 导入工具包 from docx import Document import pandas as pd## 读取 Word 文件 document Document(…

如何有效去除论文中的AI痕迹?AI工具让降AI率变得简单

在学术写作的征途上&#xff0c;每个字都需独一无二。但AI写作的普及带来了AI痕迹的难题&#xff0c;增加了论文被标记的风险。笔灵AI工具的问世&#xff0c;为这一问题提供了完美的解决方案&#xff0c;让原创性不再是奢望。 传送门&#xff1a;https://ibiling.cn/paper-pas…

电脑硬盘分区及合并指南

电脑硬盘分区是指将一个硬盘划分成多个独立的区域&#xff0c;每个区域可以被操作系统单独管理和使用&#xff0c;我们可以根据需要将数据分类存储&#xff0c;例如将系统文件、个人文件和多媒体内容分别存放在不同的分区中。合理的分区不仅可以提升系统性能&#xff0c;还能提…

AI大模型技术的四大核心架构演进之路

随着人工智能技术的飞速发展&#xff0c;大模型技术已经成为AI领域的重要分支。 本文将深入探讨四种关键的大模型技术架构&#xff1a;纯粹Prompt提示词法、Agent Function Calling机制、RAG&#xff08;检索增强生成&#xff09;以及Fine-tuning微调技术&#xff0c;揭示它们…

git-工作场景

1. 远程分支为准 强制切换到远程分支并忽略本地未提交的修改 git fetch origin # 获取最新的远程分支信息 git reset --hard origin/feature_server_env_debug_20240604 # 强制切换到远程分支&#xff0c;并忽略本地修改 2. 切换分支 1. **查看所有分支&#xff1a;**…

如何避免因AI代写导致的学位撤销风险?降AI率是关键

现在的论文审查都比较严格&#xff0c;随着AI的发展&#xff0c;很多学生都会选择用AI工具进行论文的写作&#xff0c;所以现在的论文审查&#xff0c;除了查重率&#xff0c;还有一个AIGC率也是需要关注的&#xff0c;因为在最新的学位法中已经明确规定“已经获得学位者&#…

springboot零食盒子-计算机毕业设计源码50658

目 录 1 绪论 1.1 研究背景 1.2研究意义 1.3论文结构与章节安排 2 微信小程序的零食盒子系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 微信…

electron + express 实现 vue 项目客户端部署

写在前面 作为一个前端程序员&#xff0c;如何实现从前端到客户端的跨越&#xff0c;可能是一个很难实现的事。但客户需求千奇百怪&#xff0c;偶尔遇到一个非要客户端的&#xff0c;如何应对&#xff1f; 那Electron可能真是你福音。具体它有哪些功能&#xff0c;可自行官网…

Spring系列二:基于XML配置bean 中

基于XML配置bean &#x1f496;使用utillist进行配置&#x1f496;属性级联赋值配置&#x1f496;通过静态工厂获取bean&#x1f496;bean配置信息重用&#x1f496;bean创建顺序&#x1f496;bean的单例和多实例&#x1f496;bean的生命周期 &#x1f496;使用utillist进行配置…

C#中的MD5摘要算法与哈希算法

文章目录 一、哈希算法基础二、MD5 算法原理三、MD5摘要算法四、哈希算法五、C#实现示例MD5算法示例哈希算法示例字符串MD5值对比 六、总结 一、哈希算法基础 哈希算法是一种单向密码体制&#xff0c;它将任意长度的数据转换成固定长度的字符串。这种转换是不可逆的&#xff0…

uniapp x — 跨平台应用开发的强大助力

摘要&#xff1a; 随着前端技术的不断演进&#xff0c;跨平台应用开发框架成为了提升开发效率、降低开发成本的重要工具。uni-app以其跨平台兼容性和丰富的功能受到了开发者的广泛青睐。然而&#xff0c;随着应用需求的日益增长&#xff0c;对框架的功能和性能要求也在不断提高…

景联文科技打造高质量图文推理问答数据集,赋能大语言模型提升推理能力

大语言模型在处理推理任务时&#xff0c;不同于人类能够反思错误并修正思维路径&#xff0c;当它遇到自身知识盲区时&#xff0c;缺乏自我校正机制&#xff0c;往往导致输出结果不仅无法改善&#xff0c;反而可能变得更不准确。 需要依赖外部的知识库和推理能力来克服其在理解和…