独立看门狗---STM32----HAL

基本概念

看门狗解决的问题是什么?

在系统跑飞(程序异常执行)的情况,是系统复位,程序重新执行。

独立看门狗适应用于需要看门狗作为一个在主程序之外能够完全独立工作,并且对时间精度要求低的场合。

工作原理

在键值寄存器中写入0xCCCC,开始启用独立看门狗,此时计数器开始从其复位值递减,当计数器值计数到0时会产生一个复位信号。
无论何时,只要在键值寄存器中写入0xAAAA,重装载寄存器的值就会重新加载到计数器,从而避免计数器到0,产生复位信号。如果程序异常,就无法往键值寄存器中写入0xAAAA,重装载寄存器的值无法加载到计数器中,计数器会减到0,从而产生一个系统复位信号。

独立看门狗寄存器
  • IWDG_KR:键值寄存器,0~15位有效
  • IWDG_PR:预分频寄存器,0-2位有效
    在这里插入图片描述
  • IWDG_RLR:重装载寄存器,0~11位有效
  • IWDG_SR:状态寄存器,0~1位有效
独立看门狗超时时间

Tout = ((4*2prer)rlr)/32

Tout:看门狗溢出时间,单位为ms
prer:预分频值IWDG_PR
rlr:重装载值(IWDG_RLR)

独立看门狗操作步骤

  1. 初始化看门狗:预分频系数,重装载值
HAL_IWDG_Init();
  1. 启用看门狗
HAL_IWDG_Start();
  1. 喂狗
HAL_IWDG_Refresh();

具体代码

  1. 初始化看门狗:预分频系数,重装载值
IWDG_HandleTypeDef iwdg_handler;
void iwdg_init(void)
{iwdg_handler.Instance = IWDG;iwdg_handler.Init.Prescaler = IWDG_PRESCALER_64; //设置预分频寄存器 IWDG_PRiwdg_handler.Init.Reload = 500;						//设置重装载寄存器IWDG_RLRHAL_IWDG_Init(&iwdg_handler);HAL_IWDG_Start(&iwdg_handler);						//启用看门狗
}

Prescaler = IWDG_PRESCALER_64;设置的是4*2^prer=64,Reload = 500设置的是rlr,注意IWDG_RLR重装载寄存器,只有0~11位有效,不能超过寄存器存储范围。

  1. 启用看门狗,在第一步实现了
  2. 喂狗,在main函数实现了
int main(void)
{// u8 key;HAL_Init();                     //初始化HAL库   Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhzdelay_init(180);                //初始化延时函数uart_init(115200);              //初始化USARTLED_Init();                     //初始化LED KEY_Init();                     //初始化按键delay_ms(100);iwdg_init();//HAL_IWDG_Start(&iwdg_handler);						//启用看门狗LED0 = 0;while(1){if(KEY_Scan(0)==KEY0_PRES){HAL_IWDG_Refresh(&iwdg_handler);//LED1 = !LED1;delay_ms(10);}}
}

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

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

相关文章

实训09.09:简单的彩票系统(注册信息)

package wsq; import java.util.Scanner;//本文件负责注册用户信息 /*用户注册信息:1.要求设置账号和密码,使用字符串数组2.账号名不能重复3.密码需要输入两次,两次密码输入一致4.满足账号名不重复.且两次密码一致,即为注册成功!!将信息添加到字符串数组中String[][] users ne…

【转】JAVA生成缩略图

方法1:[第一种方法比后一种生成的缩略图要清晰] import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.WritableRaster;import java.awt.*;import java.awt.geom.AffineTransform;import jav…

javascript写入_如何在JavaScript中写入HTML元素?

javascript写入写入HTML元素 (Writing into an HTML element) To write string/text into an HTML element, we use the following things: 要将字符串/文本写入HTML元素,我们使用以下内容: There must be an HTML element like paragraph, span, div e…

大话设计模式之设计模式遵循的七大原则

最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性。设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特征有很…

IIC通信---EEPROM24C02---STMF4

IIC通信协议 IIC是同步半双工通信,一个数据线SDA和一个时钟SCL线,可以接受和发送数据。在CPU与被控IC之间、IC与IC之间进行双向传送。 空闲状态 IIC总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。 起始信号 当SCL为高…

实训09.08:简单的算法练习

/*final 关键字 修饰的变量值 后期不可更改 相当于定义常量常量 :不可更改*/final int a 10;//a 20; 报错的值不可更改!/*输入函数* */System.out.println("请输入数字:");Scanner scanner new Scanner(System.in);int b…

让自己闪亮

转载于:https://www.cnblogs.com/Gigabyte/archive/2009/01/03/you_can_shine.html

Java中的wait()和sleep()方法之间的区别

Java中的wait()和sleep()方法 (wait() and sleep() methods in Java) First, we will see how wait() method differs from sleep() method in Java? 首先,我们将看到wait()方法与Java中的sleep()方法有何不同? wait()方法 (wait() Method) This metho…

离线使用iPhone SDK文档的方法

在使用Xcode进行iPhone编程时,有时需要参考iPhone SDK的文档,不过每次ControlClick后,Xcode都会试图连接Internet,进行在线读取。有什么方法能够把资料下载到硬盘上进行离线阅读吗? 答案是肯定的。首先去Xcode的Prefer…

远程连接sql server 2000服务器的解决方案

远程连接sql server 2000服务器的解决方案2007-04-07 11:29远程连接sql server 2000服务器的解决方案   一 看ping 服务器IP能否ping通。   这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置&#xff0c…

实训09.10:HTML简单表格设计

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>燕雨简历</title></head><body><table border"" cellspacing"" cellpadding"" width"400px" height"6…

LCD显示实验----STM32f4--HAL

步骤 LCD初始化 LCD_Init(); //LCD初始化此函数在lcd.c文件里面 2. 设置LCD背景颜色 LCD_Clear(WHITE);此函数在lcd.c文件里面 3. 设置字体颜色 POINT_COLORRED; 写入要显示的字体 LCD_ShowString(10,80,240,24,24,"LTDC TEST");LCD_ShowSt…

JavaScript | 使用提示从用户输入值

Example 1) Input name and print 示例1)输入名称和打印 Code (JS & HTML): 代码(JS和HTML)&#xff1a; <!DOCTYPE html><HTML><HEAD><SCRIPT>var name prompt("Enter Your name:");var msg "Welcome "name;//alert(msg)…

一个游戏程序员的学习资料 (zz)

一个游戏程序员的学习资料//z 2012-4-19 14:39:51 PM IS2120CSDN想起写这篇文章是在看侯杰先生的《深入浅出MFC》时, 突然觉得自己在大学这几年关于游戏编程方面还算是有些心得&#xff0c;因此写出这篇小文,介绍我眼中的游戏程序 员的书单与源代码参考。一则是作为自己今后两年…

项目管理中工作分解结构模型(WBSM)的应用

摘要 本文根据工作分解结构(WBS)的工作特点&#xff0c;运用系统工程的思想理论方法&#xff0c;构建了工作分解结构模型&#xff0c;并提出了模型算法;该模型方法的建立使得WBS工作更加简单可靠、思路清晰、基于更加可靠的科学基础之上。 1、工作分解结构模型(WBSM)方法工作程…

实训09.11:java重点内容介绍

package test;/** * OP:面向对象的简称* 类&#xff1a;同一特征的属性* * 类的定义&#xff1a;具有相同特征和行为的事物的抽象。&#xff08;不具体化&#xff09;* 对象&#xff08;实例对象&#xff09;&#xff1a;具体真实存在的实例。* 类是对象的实例&#xff1a;* *…

SPI通信原理---STM32F4--HAL

SPI接口原理 SPI是一种高速全双工同步通信&#xff0c;在芯片管脚上占用四根线&#xff0c;主要应用在EEPROM、FLASH、实时时钟、AD转换器&#xff0c;还有数字信号处理器和数字信号解码器之间。 SPI接口使用4根线通信。 MISO&#xff1a;主设备数据输入&#xff0c;从设备数…

Linux 引导管理器 grub2 使用简介

转自&#xff1a;杜昌彬的空间 首先向其致敬&#xff01;有改动。 grub是Linux系统即其他类unix系统的主流bootloder&#xff0c;由于grub原来版本的设计存在很大缺陷&#xff0c;与以前的grub很不相同&#xff0c;其使用和配置也发生很大变化。现在很多Linux发行版本都使用了…

pata1015_ATA / PATA的完整形式是什么?

pata1015ATA / PATA&#xff1a;高级技术附件/并行高级技术附件 (ATA/PATA: Advanced Technology Attachment/Parallel Advanced Technology Attachment) ATA is an abbreviation of Advanced Technology Attachment. ATA has existed for a long time with the name PATA. Whe…

产品

总结一下&#xff1a;  1、核心功能要做透&#xff0c;做的人家追不上&#xff0c;自己的优势要尽量的发挥&#xff1b;  2、产品口碑要建立&#xff0c;要关注高端用户&#xff0c;要调整自己心态&#xff1b;  3、敏捷、快&#xff0c;产品迭代要快&#xff0c;快速实现…