【STM32CubeMX】F103窗口看门狗

news2024/11/25 4:34:59

前言

  本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了窗口看门狗的使用配置。要学习的话,注意流程一说,省略的内容。

基础

  • 窗口看门狗(WWDG)属于APB1上外设。
  • 窗口看门狗(WWDG)的时钟源为PCLK1在经过窗口看门狗的分频器。

流程

窗口看门狗  实验目的:检测窗口看门狗超时后,复位有没有被触发。

  1. 以下省略LED引脚(PC13)的配置。工程文件输出keil工程配置省略。在引脚界面先开启外部高速时钟,在这里才能SYSCLK才能调到72MHz,这个就不讲了,其它文章讲过了。如图注意标志的地方。

    窗口看门狗(WWDG)的时钟源为PCLK1,后面计算看门狗超时时间用到。

    在这里插入图片描述

  2. 窗口看门狗的配置

    • 分频器的作用,对时钟源为PCLK1进行分频给窗口看门狗的计数值自减提供周期。
    • 窗口值的作用,窗口看门狗的喂狗时间只能是,窗口值>喂狗时间>0x3F,因为到达0x3F就复位重启了。超前喂狗可能会造成复位。
    • 计数值的作用,因为是七位计数器,所以说计数值最大为128-1。
    • 运作,计数值在窗口看门狗时钟下自减,达到0x3F就复位重启。

    以下为官方手册的介绍:

    在这里插入图片描述

    超时公式在里面都有了。虽然我暂时也没想明白除4096是为啥,但是除就完了。

    在这里插入图片描述

    根据上述配置,超时时间为58.25ms。配置完成后,直接生成Keil工程文件。

  3. keil中打开,生成的工程。

    喂狗超时时间为58.25ms,两个测试:

    测试1:不加喂狗程序。主程序,延时30ms后点灯,58.25ms后被复位。现象,小灯不断闪烁。

    测试2:加喂狗程序。主程序,延时30ms后点灯,并加喂狗程序。现象,小灯一直亮。

    上述两个测试我都以实验过,代码和现象是对的,下述是介绍代码。

    • 测试1:

      //关键代码,主函数中加上
      //现象,小灯不断闪烁。
      HAL_Delay(30);	//延时30ms
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);	//点灯
      

      在这里插入图片描述

    • 测试2:

      //关键代码,主函数中加上
      //现象,小灯一直亮
      //窗口看门狗的数据结构,在窗口看门狗初始化中复制过来也行
      WWDG_HandleTypeDef hwwdg;
      hwwdg.Instance = WWDG;
      hwwdg.Init.Prescaler = WWDG_PRESCALER_8;
      hwwdg.Init.Window = 100;
      hwwdg.Init.Counter = 128-1;
      hwwdg.Init.EWIMode = WWDG_EWI_DISABLE;
      //主函数循环中加上
      HAL_Delay(30);	//延时30ms
      HAL_WWDG_Refresh(&hwwdg);	//喂狗
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);	//点灯
      

      在这里插入图片描述

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

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

相关文章

【小结】git合并分支总结

首先理清以下几个关系: 1、git有本地库和远程库。 ①本地仓库:也就是电脑上存储的代码,本地代码,一般在某个盘中。 ②远程仓库:是云上的库,比如gitee,github等等。 2、分支:分为本地分支和远…

手机摄影(三)

第七章 构图,用光与色彩 构图的原则: 画面简洁 突出主体 陪体和主体:如果没有枯叶做前景,画面的空间感和深秋氛围会大打折扣。 看到一张你认为很美的照片时,要问自己几个问题: • 这张照片的主体是什么…

jvm之启动参数

写在前面 本文一起看下jvm启动参数相关内容,通过本文希望我自己也希望大家能够真正的应用到实际的工作中。 1:基本内容介绍 一般我们启动java程序有两种方式,一种是直接运行一个有main函数的class,第二种是运行一个在MANIFEST文…

安装mysql

1、环境(虚拟机新安装的Redhat): 链接:https://pan.baidu.com/s/1jjdimuq-TrS8RASqGiU5Xg 提取码:2hef 2、检查系统是否已经安装了 MySQL rpm -aq | grep mysql 如果有旧版本就需要像下面卸载mariadb一样卸载掉。M…

希尔密码,云影密码 及例题

希尔密码 云影密码 题一 [HDCTF2023]–爬过小山去看云 题目描述: 密文:ymyvzjtxswwktetpyvpfmvcdgywktetpyvpfuedfnzdjsiujvpwktetpyvnzdjpfkjssvacdgywktetpyvnzdjqtincduedfpfkjssne 在山的那头,有3个人,4只鸟,19只…

Keepalived概念与安装部署过程

前言 目前互联网上主流高可用方案软件有keepalived、heartbeat,其中heartbeat是比较早期用来实现高可用软件的,而keepalived是目前轻量级,并且管理方便、易使用的高可用解决方案。 1.1 Keeplived高可用的功能 Keepalived是一个类似于工作在…

半监督学习经典工作:边缘生成对抗网络(MarginGAN)

来源:投稿 作者:小灰灰 编辑:学姐 论文标题:MarginGAN: Adversarial Training in Semi-Supervised Learning 论文链接: https://papers.nips.cc/paper/2019/file/517f24c02e620d5a4dac1db388664a63-Paper.pdf 代码链接&#xf…

ShardingCore安装笔记

由于本人采用Visual Studio的nuget管理器安装ShardingCore经常出现网络错误的问题,所以采用离线包的方式安装插件。 nueget包下载地址:NuGet Gallery | ShardingCore 7.7.1.8 ShardingCore使用版本7.7.1.7 1、下载各种依赖文件,并存放到系…

openTCS分析

一、openTCS概览 1. openTCS操作流程 打开ModelEditor设置点、路线、装货卸货等信息并保存模型打开Kernel和KernelControlCenter在ModelEditor上传模型打开KernelControlCenter设置车辆信息打开OperationsDesk打开OperationsDesk设置小车模式为可利用,并创建订单 …

USB 断开检测

文章目录 USB 断开检测带 Vbus 检测功能的 USB 设备断开不带 Vbus 检测功能的 USB 设备断开USB 设备端断开的检测USB 主机端断开的检测低速/全速设备高速设备 USB 断开检测 USB 主机和 USB 设备同样需要具有检测断开的能力。 USB 主机如果不能检测到 USB 设备的移除将会导致其…

测试虚拟驱动vivi

测试虚拟驱动vivi 文章目录 测试虚拟驱动vivi安装xawtv方法1方法2测试USB摄像头 测试虚拟摄像头vivi1.确定ubuntu的内核版本2. 去www.kernel.org下载同版本的内核修改Makefile测试体验 安装xawtv 方法1 sudo apt-get install xawtv方法2 源码xawtv-3.95.tar.gz: http://www.…

「2023最新」「阿米洛 VARMILO」双模机械键盘使用指南(快捷键组合)

前言 在说明书找不到的时候却需要使用键盘的某些特性时查一下 以阿米洛 minilo 尤加利为例 主要快捷键组合 开机 2 秒内连续敲击空格键三下,数字 1 或 2 或 3 键灯闪烁,键盘开机重新配对 长按 5 秒 Fn Q / W / E 键 (分别对应数字 1 / 2…

《vector的一些OJ》

本文主利用我们的vector来解决一些OJ题 前三个题目很类似,分别为 一个数字只出现一次,其他数字都出现两次两个数字只出现一次,其他数字都出现两次一个数字只出现一次,其他数字都出现三次 文章目录 1、[一个只出现一次的数字&#…

vue3:自定义指令

一、理解vue指令 1.1、指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平…

Makefile基础教程(伪目标)

文章目录 前言一、伪目标概念二、进一步了解伪目标三、不使用.PHONY来定义伪目标总结 前言 本篇文章将讲解Makefile中的伪目标&#xff0c;Makefile的目标在前面的文章中我们已经讲解了那么这篇文章我们就来讲讲伪目标。 一、伪目标概念 Makefile 伪目标是一类特殊的目标&am…

手机摄影(四)

第8章 人物拍摄 平拍显亲切 如果侧拍好看&#xff0c;可以选择 局部自拍表现神秘&#xff08;比如嘴唇&#xff0c;眼睛&#xff0c;锁骨&#xff0c;要足够惊艳&#xff09; 技巧&#xff1a; 简单背景适合人像和镜子回头&#xff08;幅度不能太大&#xff09;小清新&…

《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》论文精读

Abstract 我们提出了一种方法&#xff0c;通过使用稀疏的输入视图集优化底层连续体场景函数&#xff0c;实现了合成复杂场景新视图的最先进结果。我们的算法使用全连接(非卷积)深度网络表示场景&#xff0c;其输入是单个连续的5D坐标(空间位置(x, y, z)和观看方向(θ&#xff…

C++系列五:输入/输出

C输入输出 1. 输入2. 输出3. 格式化输出4. 总结 1. 输入 输入是指从外部源获得数据的过程&#xff0c; C中可通过键盘或文件等外部源来获取输入数据。 &#xff08;1&#xff09;cin cin是C标准库中的一个输入流对象&#xff0c;用于从标准输入设备&#xff08;通常是键盘&a…

如何评价滤波器的去噪效果?

假如使用两种滤波器&#xff0c;那么滤波效果如何去评价1&#xff1f; 为了能够得到高质量的去噪后信号&#xff0c;需要对滤波器的滤波效果进行评价&#xff0c;选取去噪效果最好的滤波器对原始信号进行去噪处理。 一般使用信噪比和峰值信噪比对滤波器进行量化评价&#xff0c…

Docker 基础实战:环境搭建、容器、仓库、镜像

文章目录 Docker 基础实战环境搭建容器启动容器新建并启动容器终止容器启动已终止容器创建守护态容器 容器日志查看日志日志驱动 进入容器docker attachdocker exec 容器信息docker psdocker inspectdocker topdocker stats 删除容器容器快照导出快照导入快照 仓库Docker Hub本…