【嵌入式学习笔记】嵌入式入门5——窗口看门狗WWDG

news2024/9/30 11:32:18

1.WWDG简介

  • WWDG的全称:Window watchdog,即窗口看门狗
  • WWDG的本质:能产生系统复位信号和提前唤醒中断的计数器
  • WWDG的特性:递减的计数器,当递减计数器值从 0x40减到0x3F时复位(即T6位跳变到0),计数器的值大于W[6:0]值时喂狗会复位,提前唤醒中断 (EWI):当递减计数器等于 0x40 时可产生
  • 喂狗:在窗口期内重装载计数器的值,防止复位

IWDG的所用

  1. 作用:用于监测单片机程序运行时效是否精准,主要检测软件异常
  2. 应用:需要精准检测程序运行时间的场合

2.WWDG工作原理

注意:W[6:0] 必须大于 窗口下限值0x3F,否则无窗口期
在这里插入图片描述

3.WWDG框图

  • 上半部分描述:非窗口期喂狗,产生复位
  • 下半部分描述:T[0:6],虽然有7位,但是6位递减计数器,T6的作用是判断T[6:0]的值是否从0x40到0x3f
  • W[6:0] 必须大于 窗口下限值0x3F,否则无窗口期
    在这里插入图片描述

4.WWDG寄存器

  • 控制寄存器 (WWDG_CR)——用于使能窗口看门狗工作,以及重装载计数器值(即喂狗)
    在这里插入图片描述
  • 配置寄存器 (WWDG_CFR)——用于使能窗口看门狗提前唤醒中断,设置预分频系数,设置窗口上限值
    在这里插入图片描述
  • 状态寄存器 (WWDG_SR)——用于判断是否发生了WWDG提前唤醒中断
    在这里插入图片描述

5.WWDG超时时间计算

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

6.WWDG配置步骤

  • WWDG工作参数初始化:HAL_WWDG_Init()
  • WWDG Msp初始化:HAL_WWDG_MspInit() 配置NVIC、CLOCK等
  • 设置优先级,使能中断:HAL_NVIC_SetPriority()、 HAL_NVIC_EnableIRQ()
  • 编写中断服务函数:WWDG_IRQHandler() ->HAL_WWDG_IRQHandler
  • 重定义提前唤醒回调函数:HAL_WWDG_EarlyWakeupCallback()
  • 在窗口期内喂狗:HAL_WWDG_Refresh()

关键结构体

typedef struct 
{
  WWDG_TypeDef *Instance; /* WWDG 寄存器基地址 */ 
  WWDG_InitTypeDef Init;      /* WWDG 初始化参数 */
}WWDG_HandleTypeDef;
typedef struct 
{
  uint32_t Prescaler; /* 预分频系数 */
  uint32_t Window;    /* 窗口值 */
  uint32_t Counter;    /* 计数器值 */
  uint32_t EWIMode;  /* 提前唤醒中断使能 */ 
}WWDG_InitTypeDef;

在这里插入图片描述

7.编程实战:验证窗口看门狗功能

在这里插入图片描述

8.IWDG和WWDG的主要区别

在这里插入图片描述

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

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

相关文章

代码随想录—力扣算法题:27移除元素.Java版(示例代码与导图详解)

版本说明 当前版本号[20230804]。 版本修改说明20230804初版 目录 文章目录 版本说明目录27. 移除元素思路暴力解法双指针法两个方法的区别总结双指针法要点 27. 移除元素 力扣题目链接 更多内容可点击此处跳转到代码随想录,看原版文件 给你一个数组 nums 和一…

VBA技术资料MF39:VBA_计算单元格中的字符数

【分享成果,随喜正能量】依赖也好,不依赖也罢,人的心灵都是需要安放的,有人安放在另一个人身上,有人安放在喜欢的事业之上,有人安放在宗教信仰之上,过程不同,终点都一样,…

C/C++实现librosa音频处理库melspectrogram和mfcc

C/C实现librosa音频处理库melspectrogram和mfcc 目录 C/C实现librosa音频处理库melspectrogram和mfcc 1.项目结构 2.依赖环境 3.C librosa音频处理库实现 (1) 对齐读取音频文件 (2) 对齐melspectrogram (3) 对齐MFCC 4.Demo运行 5.librosa库C源码下载 深度学习语音处…

人工智能学习1——特征提取和距离

强人工智能和弱人工智能: 强人工智能:和人脑一样 弱人工智能:不一定和人脑思考方式一样,但是可以达到相同的效果,弱人工智能并不弱 —————————————————————————————————— 机器学习能…

嘉楠勘智k230开发板上手记录(二)

上次成功在k230上烧录sdk,这次准备实现hello world和ssh scp远程k230 一、PC连接k230 1. 初步准备 首先下载串口工具PuTTY,这个我个人感觉比较方便。 准备两根USB type-C数据线,一根连电源,一根连串口调试。还有Type C公头转网…

【C#学习笔记】内存管理

文章目录 分配内存释放内存GC标记清除算法分代算法 .NET的GC机制有这样两个问题: 官方文档 自动内存管理 自动内存管理是CLR在托管执行过程中提供的服务之一。 公共语言运行时的垃圾回收器为应用程序管理内存的分配和释放。 对开发人员而言,这就意味着…

Ubuntu 虚拟机和主机无法互相复制文字和文件

1.在虚拟机列表中,右键查看是否有安装VMware Tools,如果没有安装点击安装,如果已经安装了,上面显示重现安装VMware Tools,并且为灰色,如图: 2.如果没有安装点击安装,如果已经安装&am…

【数据结构】堆的原理实现

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ 数据结构与算法       🛰️社区 :✈️ 进步学堂       &am…

C语言的浮点类型:float,double,long double

文章目录 浮点型概述浮点型常量浮点型常量的后缀 溢出上溢 overflow下溢 underflow 一个特殊的浮点值:NaN初始化 浮点型概述 float 称为单精度浮点型。 double 称为双精度浮点型。 long double 称为长双精度浮点型。 C 标准规定,float 必须至少精确到…

MySQL存储过程(二十四)

你相信吗, 相信那一天的夕阳吗? 上一章简单介绍了 MySQL的索引(二十三),如果没有看过,请观看上一章 一. 存储过程 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起, 应用程序无须关注存储过程和函数内部复杂的S…

【DBeaver】CLIENT_PLUGIN_AUTH is required

1、右键打开编辑连接弹窗,进入编辑驱动设置 2、选择“库” 3、全部删掉,然后点击“重置为默认状态” 4、选中然后点击“下载更新” 5、点击版本号,选择与mysql相同的版本 6、最后一步

使用可视化docker浏览器,轻松实现分布式web自动化

01、前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以实现可视化,同时可以对浏览器进行相关的操作。 02、开篇 首先…

leetcode 33.搜索旋转排序数组

⭐️ 题目描述 🌟 leetcode链接:搜索旋转排序数组 ps: 本题是二分查找的变形,旋转排序数组之后其实会形成两个有序的区间。算出平均下标先判断是否与 target 相等,因为这样可以减少代码的冗余。如果前者不成立则使用平…

组合总和 II——力扣40

文章目录 题目描述法一 回溯 题目描述 法一 回溯 class Solution{ public:vector<pair<int, int>>freq;vector<vector<int>> res;vector<int> seq;void dfs(int pos, int rest){//如果目标值为0&#xff0c;说明可能有一个组合或者rest本身为0 …

(7.28-8.3)【大数据新闻速递】《数字孪生工业软件白皮书》、《中国绿色算力发展研究报告》发布;华为ChatGPT要来了

【数字孪生工业软件白皮书&#xff08;2023&#xff09;】 近日&#xff0c;第七届数字孪生与智能制造服务学术会议成功举行&#xff0c;2023《数字孪生工业软件白皮书》在会上正式发布。《白皮书》在《Digital Twin》国际期刊专家顾问委员会指导下&#xff0c;由国家重点研发计…

万字长文之 Serverless 实战详细指南

目录 前言 简易博客系统功能概要 云函数的初始化与基础配置 Tencent Serverless Toolkit for VS Code 数据库选择和设计 数据库选择 数据库设计 云函数自定义域名与 API 网关映射 域名解析 API 网关映射 云函数中的路由设计 云函数中的代码组织 Controller Servi…

搭建Django+pyhon+vue自动化测试平台

Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…

欧拉函数与筛法求欧拉函数

目录 欧拉函数欧拉函数的定义欧拉函数的公式欧拉函数的公式推导欧拉定理典型例题代码实现 筛法求欧拉函数思路分析经典例题代码实现 欧拉函数 欧拉函数的定义 对于任意正整数 n n n,欧拉函数 φ ( n ) φ(n) φ(n) 表示小于或等于 n n n 的正整数中&#xff0c;与 n n n …

企业网盘解析:高效的企业文件共享工具

伴随着信息技术的发展&#xff0c;越来越多的企业选择了基于云存储的企业网盘来进行企业数据存储。那么企业网盘是什么意思呢&#xff1f; 企业网盘是什么意思&#xff1f; 企业网盘&#xff0c;又称企业云盘&#xff0c;顾名思义是为企业提供的网盘服务。除了服务对象不同外&…

【maven】构建项目前clean和不clean的区别

其实很简单&#xff0c;但是百度搜了一下&#xff0c;还是没人能简单说明白。 搬用之前做C项目时总结结论&#xff1a; 所以自己在IDE里一遍遍测试程序能否跑通的时候&#xff0c;不需要clean&#xff0c;因为反正还要改嘛。 但是这个项目测试好了&#xff0c;你要打成jar包给…