嵌入式——窗口看门狗(WWDG)补充

目录

一、独立看门狗与窗口看门狗

1.功能描述

2.两者区别

二、WWDG功能描述

1.窗口看门狗时钟

2.计数器时钟

3. 计数器

4.窗口值

三、WWDG超时时间


一、独立看门狗与窗口看门狗

1.功能描述

        STM32有两个看门狗:一个是独立看门狗(IWDG),一个是窗口看门狗(WWDG)

        独立看门狗的工作原理是一个递减计数器不断地递减计数,当减到0之前如果没有喂狗的话,产生复位。窗口看门狗跟独立看门狗一样,也是一个递减计数器不断地递减计数,当减到一个固定值0x40 时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这点与独立看门狗类似。

        不同的地方是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,由用户自主设置。窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗,这就是窗口看门狗中窗口两个字的含义。

2.两者区别

二、WWDG功能描述

1.窗口看门狗时钟

        时钟来自 PCLK1, PCLK1最大是36MHz,由RCC时钟控制器开启。

2.计数器时钟

        由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器CFR的位8:7 WDGTB[1:0]配置,可以是 [ 0, 1, 2, 3 ],其中CK计时器时钟=PCLK1 / 4096 ( 除以4096是手册规定的 )。

所以计数器的时钟 CNT_CK = PCLK1 / 4096 / (2^WDGTB)

所以计数器减一个数的时间  T = 1 / CNT_CK = Tpclk1 x 4096 x(2^WDGTB)

3. 计数器

        为递减计数器,共7位,其值存在控制寄存器CR的位6:0,即T[6:0],当7位全部为1时是0x7F,这是最大值。当递减到T6 位变成0时,即从0x40 变为0x3F时候,会产生看门狗复位,这个值0x40是看门狗能够递减到的最小值。所以计数器的值只能是 0x40~0x7F,实际上真正用来计数的是T[5:0]

        当递减计数器递减到0x40的时候,还不会马上产生复位,如果使能了提前唤醒中断( CFR位 9 EWI 置 1 ),则产生提前唤醒中断。如果真进入了这个中断的话,就说明程序肯定是出问题了,那么在中断服务程序里面我们就需要做一些重要工作。这个中断也叫“死前中断”

4.窗口值

        下窗口的值是固定的0x40,上窗口的值可以改变,具体的由配置寄存器 CFR的位6:0 W[6:0]设置。其值必须大于0x40,如果小于或者等于0x40就失去了窗口的价值,而且也不能大于计数器的值,所以必须得小于 0x7F。 

        窗口值具体要设置成多大,要根据我们需要监控的程序的运行时间来决定。如果在窗口时间内没有喂狗的话,那程序肯定是出问题了。一般计数器的值TR设置成最大0x7F窗口值为WR,计数器减一个数的时间为T,那么时间(TR-WR) x T稍微大于程序运行时间即可,这样就能做到刚执行完程序段之后喂狗,也就可以算出WR的值。

三、WWDG超时时间

        看门狗超时时间:Twwdg=Tpclk1 x 4096 × 2^wdgtb ×(T[5:0] + 1) ms。当PCLK1 = 36MHz时,WDGTB 取不同的值时有最小和最大的超时时间以WDGTB = 0为例:

        递减计数器有 7位 T[6:0], 当位 6 变为 0 的时候就会产生复位,实际上有效的计数位是T[5:0],而且 T6 必须先设置为 1

        如果 T[5:0]=0 时,递减计数器再减一次,就产生复位了,那这 减1的时间 = 计数器的周期 = 1 / CNT_CK=Tpclk1 × 4096 x(2^WDGTB) = 1/36x4096×2^0=113.7us,这个就是最短的超时时间

        如果 T[5:0]全部为1,即 63,当由 0x40 变成 0x3F 时,所需的时间就是 最大的超时时间 = 113.7×2^5=113.7×64=7.2768ms

        同理,当WDGTB等于1、2、3时,代入公式即可算出最长最短超时值。


可结合这边文章:

嵌入式——窗口看门狗(WWDG)

http://t.csdnimg.cn/60FCjicon-default.png?t=N7T8http://t.csdnimg.cn/60FCj

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【GPU】GPU 硬件与 CUDA 程序开发工具

GPU 硬件与 CUDA 程序开发工具 笔记内容来自:《CUDA 编程:基础与实践》—樊哲勇 著 本文目录 GPU 硬件简介CUDA 程序开发工具CUDA 开发环境搭建用 nvidia-smi 检查与设置设备CUDA 的官方手册 GPU 硬件简介 GPU 是英文 graphics processing unit 的首字母…

【GitHub项目推荐--基于 AI 的口语训练平台】【转载】

Polyglot Polyglot 是一个开源的基于 AI 的口语训练平台客户端,可以在 Windows、Mac 上使用。 比如你想练习英语口语,只需在该平台配置一个虚拟的 AI 国外好友,你可以通过发语音的方式和 AI 好友交流,通过聊天的方式提升你的口…

黑马程序员——html css基础——day05——盒子模型

目录: 选择器 结构伪类选择器:nth-child(公式)伪元素选择器PxCook盒子模型 盒子模型-组成边框线 四个方向单方向边框线内边距尺寸计算外边距版心居中清除默认样式元素溢出外边距问题 合并现象外边距塌陷行内元素–内外边距问题圆角盒子阴影(拓展&#x…

【Java】Spring的APO及事务

今日目标 能够理解AOP的作用 能够完成AOP的入门案例 能够理解AOP的工作流程 能够说出AOP的五种通知类型 能够完成"测量业务层接口万次执行效率"案例 能够掌握Spring事务配置 一、AOP 1 AOP简介 问题导入 问题1:AOP的作用是什么? 问题2&am…

java设计模式:工厂模式

1:在平常的开发工作中,我们可能会用到不同的设计模式,合理的使用设计模式,可以提高开发效率,提高代码质量,提高系统的可拓展性,今天来简单聊聊工厂模式。 2:工厂模式是一种创建对象的…

HCIP-交换机实验

实验拓扑 实验需求 实验思路 配置IP地址 配置vlan 实验步骤 配置IP地址 以pc1为例&#xff1a; 配置vlan 以sw1为例&#xff1a; <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sys sw1 [sw1]vlan 3 Jan 28 2024 15:39:45-08:00 sw1 DS/…

HPE ProLiant MicroServer Gen8安装windows server 2019

按照《HP MicroServer Gen8使用官方工具安装Windows Sverver 2016教程》安装时&#xff0c;安装系统选项并没有server 2019可选&#xff0c;依然只是server 2012&#xff0c;我还以为是从单位拿回来的镜像有误&#xff0c;从官方下载了server 2019评估版&#xff0c;但依然只有…

【算法专题】二分查找(进阶)

&#x1f4d1;前言 本文主要是二分查找&#xff08;进阶&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…

【UEFI实战】Redfish的BIOS实现——生成EDK数据

生成Redfish文件 Redfish数据的表示形式&#xff0c;最常用的是JSON。将JSON表示的数据转换成C语言可以操作的结构体&#xff0c;是必不可少的步骤。当然如果手动转换的话&#xff0c;需要浪费大量的时间&#xff0c;因此DMTF组织开发了一个工具&#xff0c;用于将JSON数据快速…

实验6:循环与子程序设计

1、实验目的&#xff1a; 通过完成将字节内存单元存储的8个数依次显示在屏幕上的程序设计&#xff0c;掌握循环与子程序设计的方法。 2、实验内容&#xff1a; 将内存单元存储的8个两位16进制数&#xff1a;01H, 25H, 38H, 62H, 8DH, 9AH, BAH, CEH依次显示在屏幕上。 3、实…

CSS设置单行文字水平垂直居中的方法

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>单行文字水平垂直居中</title><style>div {/* 给div设置宽高 */width: 400px;height: 200px;margin: 100px auto;background-color: red;/…

4.列表选择弹窗(CenterListPopup)

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 在屏幕中间弹窗的列表选择弹窗。 1.布局 <?xml version"1.0" encoding"utf-8" ?> <toolkit:Popup xmlns"http://schemas.microsoft.com/dotnet/2021/maui"x…

【学网攻】 第(12)节 -- 动态路由(RIP)

系列文章目录 目录 系列文章目录 文章目录 文章目录 前言 一、动态路由是什么&#xff1f; 二、实验 1.引入 总结 文章目录 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4…

【GitHub项目推荐--推荐一个开源的任务管理工具(仿X书/X钉)】【转载】

推荐一个开源的任务管理工具&#xff0c;该工具会提供各类文档协作功能、在线思维导图、在线流程图、项目管理、任务分发、即时 IM&#xff0c;文件管理等等。该开源项目使用到 Vue、Element-UI、ECharts 等技术栈。 开源地址&#xff1a;www.github.com/kuaifan/dootask 预览地…

linux基础学习(8):grep命令、通配符、管道符

1.grep命令 1.1命令格式 grep 选项 "搜索内容" 文件名 选项&#xff1a; -i&#xff1a;忽略大小写 -n&#xff1a;输出行号 -v&#xff1a;查找文件内不含搜索内容的部分 --colorauto&#xff1a;把搜索内容用不同颜色标注出来 1.2grep命令与find命令的区…

class_19:抽象类(纯虚函数不能被实例化)

#include <iostream>using namespace std;class Teacher{ public:string name;string school;virtual void goinclass() 0;//纯虚函数不能被实例化 抽象类virtual void startclass() 0;//纯虚函数不能被实例化virtual void afterclass() 0;//纯虚函数不能被实例化 };…

分段函数线性化方法matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

如何搭建自动化测试框架

关于测试框架的好处&#xff0c;比如快速回归提高测试效率&#xff0c;提高测试覆盖率等这里就不讨论了。这里主要讨论自动化框架包含哪些内容&#xff0c;以及如何去设计一个测试框架。 1. 什么是自动化测试框架&#xff1f; 它是由一个或多个自动化测试基础模块、自动化测试…

Keil软件某些汉字输出乱码,0xFD问题,51单片机

1. 问题 keil软件输入某些汉字的时候会输出乱码&#xff0c;例如&#xff1a;升、 数 2. 原因 keil软件会忽略0xFD。 升的GB2312编码为 0xc9fd&#xff0c;keil解析为0xc9数的GB2312编码为 0xcafd&#xff0c;keil解析为0xca 关于Keil软件中0xFD问题的说明 3. 解决方案1 …

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机&#xff08;攻击机&#xff09;对本机&#xff08;靶机&#xff09;进行入侵并监控屏幕 声明&#xff1a;本篇仅仅是将本机作为靶机的一次简易渗透测试&#xff0c;实际情况中基本不可能出现如此简单的木马骇入&#xff08;往往在上传木马时就被防…