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

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的主要区别

在这里插入图片描述

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

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

相关文章

性能优化-react路由懒加载和组件懒加载

背景 随着项目越来越大,打包后的包体积也越来越大,严重影响了首屏加载速度,需要对路由和组件做懒加载处理 主要用到了react中的lazy和Suspense。 废话不多说,直接上干货 路由懒加载 核心代码 import React, { lazy, Suspens…

三款AI写作宝介绍,教你玩转AI写作

AI写作宝是一款利用人工智能技术自动生成文章的工具。它采用先进的自然语言处理算法,可以在短时间内生成高质量的文章。与传统的写作方式相比,AI写作宝有着更快的速度、更高的准确性和更低的成本,成为了许多人工智能爱好者和写作从业者的首选…

写字楼门禁如何管理?最最新方法来了!

在现代社会,随着城市化和商务发展的蓬勃推进,大厦写字楼作为繁忙的商业中心和办公场所,其安全管理和员工考勤变得尤为重要。为了应对这一挑战,人脸门禁考勤机应运而生,成为大厦写字楼的安全保障和工时管理的关键工具。…

【数模】聚类模型

分类和聚类 分类:最终类别是确认的,把各样本分到已有的类别中聚类:最终类别是未知的,把所有样本划分出最终类别 一、K-means聚类算法 1.1 K-means算法了解 算法流程(推荐使用流程图:更简洁,且…

Mybatis引出的一系列问题-JDBC 的探究

1 引入对JDBC的理解-1 一般来说,Java应用程序访问数据库的过程是: 装载数据库驱动程序;通过jdbc建立数据库连接;访问数据库,执行sql语句;断开数据库连接。 Public void FindAllUsers(){//1、装载sqlserve…

synchronized总结

目录 一、synchronized的特性 1.1 原子性 1.2 可见性 1.3 有序性 1.4 可重入性 二、synchronized的使用 2.1 修饰普通方法 2.2 修饰静态方法 2.3 修饰代码块 三、synchronized的锁机制 3.1 偏向锁 3.2 轻量级锁 3.3 重量级锁 一、synchronized的特性 1.1 原子性 原子性是指一…

Eclipse进行debug

目录 基本步骤三种执行方式 -- 键盘快捷键variables面板移除debug过的项目通过eclipse调用具有软件界面的项目进行debug各个variable颜色具有的意义 基本步骤 点击eclipse右上角debug按钮 调出debug面板 点击小蜘蛛图标(不是点绿色三角的Run) 此时会进…

华为流程体系:流程架构「OES方法」

目录 内容简介 OES方法 端到端的流程 专栏列表 CSDN学院 作者简介 内容简介 今天继续来谈谈华为流程体系中的流程架构。 在前期的内容已经介绍过 POS 流程架构的方法。 这里就先回顾一下 POS 方法的相关内容: 关于 POS,大家可以参看上面的这张图…

实现天气预报走势图

实现效果: 这里我用的天气接口是网上开源的,可以自己找一下。 稍微简单封装了一下axiso以及接口 封装的axios: // import { useUserStore } from /stores/user import axios from axios import router from /router import { ElMessage } f…

Nginx 高性能内存池 ----【学习笔记】

跟着这篇文章学习: c代码实现一个高性能内存池(超详细版本)_c 内存池库_linux大本营的博客-CSDN博客https://blog.csdn.net/qq_40989769/article/details/130874660以及这个视频学习: nginx的内存池_哔哩哔哩_bilibilihttps://w…

go逆向符号恢复

前言 之前一直没怎么重视,结果发现每次遇到go的题都是一筹莫展,刷几道题练习一下吧 准备 go语言写的程序一般都被strip去掉符号了,而且ida没有相关的签名文件,没办法完成函数名的识别与字符串的定位,所以第一步通常…

C语言经典小游戏之三子棋(超详解释+源码)

“纵有疾风来,人生不言弃,风乍起,合当奋意向此生。” 今天我们一起来学习一下三子棋小游戏用C语言怎么写出来? 三子棋小游戏 1.游戏规则介绍2.游戏准备3.游戏的实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2.2打印棋盘3.2…

TypeScript【enum 枚举】

导语 在 TypeScript 中,新增了很多具有特性的一些数据类型处理方法,enum 【枚举】就是其中,很具有代表性的一种,所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】。 枚举的概念: 枚举(Enum&am…

机器学习基础08-模型选择02-分类算法矩阵(基于Pima 数据集)

算法评估矩阵(Algorithm Evaluation Metrics)用于评估机器学习算法在特定任务上的性能。不同的任务可能会使用不同的评估矩阵,因为每个任务的优劣衡量标准都不同。 分类算法矩阵 分类问题或许是最常见的机器学习问题,并且有多种评…

【算法心得】C++map用不着map.find(arr[j])!=map.end();js的map是map不是哈希;编译器选GNU

https://leetcode.com/problems/count-of-range-sum/ https://vjudge.csgrandeur.cn/problem/CodeForces-459D 这两题都是线段树,很明显的单点修改区间查询 leetcode那题我觉得map用hashmap就行,但是好像js里没有hashmap,那就 Map() 也行吧…

vue、uniapp直传阿里云文档

前端实现文件上传到oss(阿里云)适用于vue、react、uni-app,获取视频第一帧图片 用户获取oss配置信息将文件上传到阿里云,保证了安全性和减轻服务器负担。一般文件资源很多直接上传到服务器会加重服务器负担此时可以选择上传到oss&…

SpringCloudAlibaba之Sentinel(一)流控篇

前言: 为什么使用Sentinel,这是一个高可用组件,为了使我们的微服务高可用而生 我们的服务会因为什么被打垮? 一,流量激增 缓存未预热,线程池被占满 ,无法响应 二,被其他服务拖…

阿里云容器服务助力极氪荣获 FinOps 先锋实践者

作者:海迩 可信云评估是中国信息通信研究院下属的云计算服务和软件的专业评估体系,自 2013 年起历经十年发展,可信云服务评估体系已日臻成熟,成为政府支撑、行业规范、用户选型的重要参考。 2022 年 5 月国务院国资委制定印发《…

Linux 快速创建桌面图标

在安装 tar.gz 这类型压缩文件时,通常启动文件是.sh文件。文章主要记录快速添加到桌面图标。 1、解压 tar -zxvf XXX.tar.gz 2、创建桌面图标文件 touch XXX.desktop 3、文件中配置 [Desktop Entry] NameXXX CommentZZZ Exec/软件可执行文件所在目录/可执行文…

SpringBoot核心内容梳理

1.SpringBoot是什么? Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它简化了Spring应用程序的创建和开发过程,使开发人员能够更快速地创建独立的、生产就绪的Spring应用程序。它采用了“约定优于配置”的原则,尽可能地减少开发人员需要进…