[STM32F103C8T6]看门狗

news2025/2/23 23:31:30

看门狗:

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造 成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测 的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”

1.独立看门狗:

1·独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟( LSI ),由
VDD 电压供电, 在停止模式和待机模式下仍能工作。

 2·本质是一个 12 位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复 位信号,即 IWDG_RESET

3·如果在计数没减到0之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们 经常说的喂狗。

4·独立看门狗的时钟由独立的RC振荡器LSI提供,即使主时钟发生故障它仍然有效,非常独立。启用 IWDG后,LSI时钟会自动开启。LSI时钟频率并不精确,F140kHz

LSI 经过一个 8 位的预分频器得到计数器时钟。

 

 

 

 

独立看门狗的实验:

开启独立看门狗,溢出时间为1s,用按键喂狗

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_IWDG_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */
	HAL_UART_Transmit(&huart1,"程序启动。。。\r\n",strlen("程序启动。。。\r\n"),100);//如果不喂狗,会复位,串口一直发送程序启动。。。。
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == GPIO_PIN_RESET)//如果按键按下
		{
			HAL_IWDG_Refresh(&hiwdg);//喂狗函数
		}
		HAL_Delay (50);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

 2.窗口看门狗

窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测 程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号 提前唤醒中断 6位计数器。        
产生复位条件:
1.当递减计数器值从 0x40 减到 0x3F 时复位(即 T6 位跳变到 0
2.计数器的值大于 W[6:0] 值时喂狗会复位。
产生中断条件:
1.当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)
2.在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。

 

 

 

 

 

 

窗口看门狗实验

开启窗口看门狗,计数器值设置为 0X7F ,窗口值设置为 0X5F ,预分频系数为 8 。程序启动时点 亮 LED1 300ms 后熄灭。在提前唤醒中断服务函数进行喂狗,同时翻转 LED2 状态

 

 

 

void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
{
HAL_WWDG_Refresh(hwwdg);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);
}
main函数
MX_GPIO_Init();
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_Delay(300);
MX_WWDG_Init();
while (1)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);
HAL_Delay(40);
}

 

 

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

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

相关文章

LeetCode 1206. 设计跳表

LeetCode 1206. 设计跳表 难度:hard\color{red}{hard}hard 题目描述 不使用任何库函数,设计一个 跳表 。 跳表 是在 O(log(n))O(log(n))O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树,其功能与性能相当&am…

【区块链】【FISCO】WeIdentity

什么是 WeIdentity? 官方的说法:去中心化身份标识解决方案。其实说白了就是互联网上每个人都拥有自己数字身份,并且这个身份是唯一且不可篡改的。 WeIdentity要解决的问题就是用来解决数字身份验证的问题。传统互联网身份验证的方式通常用账…

将ip地址中的每一个字符串按照分隔符提取

1、算法思想 该题采用 c 中的 string 完成比较方便 对于字符串 string str1“hehehe:hahaha:xixixi:lalala” 定义 int pos 0,记录子串的初始位置 在循环语句中重复执行以下操作: (1)、定义 int ret str1.find(":",…

OpenAI-ChatGPT最新官方接口《聊天交互多轮对话》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(二)(附源码)

目录Chat completions Beta 聊天交互前言Introduction 导言Response format 提示格式Managing tokensCounting tokens for chat API calls 为聊天API调用标记计数Instructing chat models 指导聊天模型Chat vs Completions 聊天与完成FAQ 问与答其它资料下载Chat completions B…

27.Linux网络编程socket变成 tcp 高并发 线程池 udp

好,咱们开始上课了,从今天开始咱们连续讲 8 天的,网络编程这个还是在linux环境下去讲,咱们先看一下咱们这 8 天都讲什么东西,跟大家一块来梳理一下,你先有个大概的印象,这些你也不要记&#xff…

什么是以太坊

以太网是“世界的计算机”,这是以太坊平台的一种常见描述。这是什么意思呢?让我们首先从关注计算机科学的描述开始,然后对以太坊的功能和特性进行更实际的解读,并将其与比特币和其他分布式账本技术(简单起见&#xff0…

【学习笔记】unity脚本学习(三)(向量 Vector3)

目录向量复习高中向量基础【数学】向量的四则运算、点积、叉积、正交基叉乘公式叉乘运算定理向量、坐标系点积叉积Vector3 三维向量静态变量变量变量normalized 与 Normalize() 方法静态方法ClampMagnitudeCrossDistanceDotMoveTowards其他变换类似Lerp 在两个点之间进行线性插…

走出至暗时刻,手机“冲高”仍有新故事

随着数十年的发展变迁,智能手机行业已进入平稳发展期,在格局重塑的同时,也引来外界的质疑:出货量下滑,是否意味着行业开始进入至暗时刻? 事实上,这种质疑只看到表层的数据变化,没有…

[Java]Cookie机制

1.Session机制: Session机制https://blog.csdn.net/m0_71229255/article/details/130138826?spm1001.2014.3001.5501 2. 什么是cookie HTTP协议本身是无状态的。什么是无状态呢,即服务器无法判断用户身份。Cookie实际上是一小段的文本信息&#xff0…

优维可观测轴心产品大观:HyperInsight超融合持续可观测解决方案

随着Kubernetes得到越来越广泛的采用,企业软件系统正在向复杂的云原生架构进行革命性转变。应用形式呈现有Web、APP、小程序等多种形式,访问的网络有4G、5G、Wi-Fi等。企业用云也从单一云时代,逐渐来到混合多云时代。在这些庞大复杂的多云环境…

【接口测试】从0不到1的心路历程

我是一名做了三年测试的tester,2020年以功能测试工程师的身份入职北京一家医疗培训公司,入职后为了提高测试效率,接触到接口测试,以下是从零到现在 (还有很大完善的空间,所以不能算是1) 的一些心路历程。 做接口测试的…

李宏毅教程系列——增强学习

目录 0. 强化学习wiki 1. 介绍 2. Exploration vs Exploitation 探索与开发 3. 各类最优化方法 3.1 Brute force猛兽蛮力法(暴力搜索) 3.2 Value function estimation(价值函数估计) 3.2.1 Monte Carlo methods 蒙特卡洛方…

linux安装南大通用数据库

linux安装南大通用数据库1、操作系统、数据库2、下载链接3、安装文档4、安装前准备4.1、以root用户创建 gbasedbt 组和用户4.2、创建 GBase 8s 数据库安装目录4.3、上传并解压安装包5、安装5.1、执行安装程序5.2、回车继续 直到接受许可条款5.3、输入安装目录绝对路径5.4、选择…

腾讯音乐笔试0414

介绍一 Triplet Loss的原理, 其中的样本分为哪几类?可以用于哪些场景? Triplet Loss是一种用于训练神经网络的损失函数,主要用于学习映射函数,将样本映射到低维空间中,使得同一类别的样本距离尽可能近,不同类别的样…

开发钉钉和企业微信微应用

钉钉应用开发流程: 1、登录钉钉后台管理 -- 应用管理 -- 工作台 -- 自建应用 2、上传内部应用logo和名字。注意需要添加可访问域名的配置。 3、配置首页可访问地址:打包到线上的路径(注意配置正式环境和本地环境) 4、在所在公司…

早有尔闻 | 低碳赋能,创新发展

01 2023中国管理科学大会 发布创新奖榜单 海尔位列第一 4月15日,2023中国管理科学大会暨第八届“管理科学奖”颁奖典礼在北京举行。大会发布了第八届中国管理科学学会“管理科学奖”获奖名单,海尔集团“基于用户端低碳升级的智慧能源管理体系建设”项…

[CVE漏洞复现系列]CVE2017_0147:永恒之蓝

Hi~ o( ̄▽ ̄)ブ 文章目录前言一、永恒之蓝是什么?1.SMB协议介绍。二、准备工作1.Windows7 and kali linux2.テストを開始总结前言 这是新的系列,我能力有限有的漏洞实现不了,我尽力吧 🥨🥨&…

Deep Glow(AE辉光特效插件)中文版安装教程

deepglow比AE自带的辉光效果好很多,基于GPU运算,同时控制调节发光效果,有了这款插件,我们就可以非常轻松的模拟出非常真实非常漂亮的物理发光特效,支持各种参数的自定义,喜欢的欢迎下载使用。 安装教程 1…

营收、净利创新高,股价却“跌跌不休”,紫光国微怎么了?

‍数据智能产业创新服务媒体——聚焦数智 改变商业要问当前科技圈处于“风口浪尖”的,除了ChatGPT就应该是半导体了。近日,紫光国微发布2022年年报,实现营收和净利双创新高。作为一家在集成电路设计领域深耕二十余年的企业,紫光国…

快速精简软件,如何让软件缩小到原来的5%大小,从删除文件入手,到修改C++引用库,合规解决存储问题

Hi~大家好,今天制作一个简单的精简软件的教学~ 事先说明下,精简软件并不违反任何规定,尤其是开源软件,这里也仅讨论开源软件的修改,根据几乎所有开源软件的开源规则,精简软件,本质也就是修改软件…