当前位置: 首页 > news >正文

STM32复习笔记(四):独立看门狗IWDG

目录

(一)简介

(二)CUBEMX工程配置

(三)相关函数

总结:


(一)简介

独立看门狗本质是一种定时器,其作用是监视系统的运行,当系统发生错误(如程序卡死,程序跑飞)时,能自动让系统复位;观察cubemx中的时钟树可以发现,IWDG是由LSI提供32KHz的时钟,而IWDG内部可以对LSI时钟进行分频,预分频系数从4~256(须为2的次幂);并且系统复位时,IWDG的12位递减计数器初值为4095,在启动IWDG后,计数器递减计数,当计数值为0时,系统复位;所以如果程序正常运行的话,必须在规定时间里刷新IWDG内递减计数器的值(这就是大家说的“喂狗”),以防止系统复位;另外,根据预分频系数可以算出IWDG的最长超时,如下表所示;计算方法为:T = 1 / (32KHz / 预分频系数)* 4096(注意K表示10e3,k才是2e10);

重载值为4095时IWDG的超时
预分频系数超时/ms
/4512
/81024
/162048
/324096
/648192
/12816384
/25632768


(二)CUBEMX工程配置

在cubemx中,只需要开启IWDG,并配置预分频系数和递减计数值即可:


(三)相关函数

IWDG相关函数(非常少,所以直接贴上来):

1、初始化:HAL_StatusTypeDef    HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);初始化之后自动启动;

2、喂狗:HAL_StatusTypeDef    HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);

3、宏:__HAL_IWDG_START(__HANDLE__) ;启动iwdg,启动后不可关闭;

4、宏:__HAL_IWDG_RELOAD_COUNTER(__HANDLE__);重置计数值,也就是喂狗;

5、宏:IWDG_ENABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg可写入;

6、宏:IWDG_DISABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg不可写入;

IWDG使用方法非常简单,只需要在计数值减为0之前,按时喂狗即可,否则就会重启系统(常称为“狗叫”);


总结:

其实相关内容有许多,比如说定时器(基本、通用、高级)、RTC时钟、ADC、DAC、SPI、I2C、CAN等等等等,但是感觉没有必要全部再来一遍,当需要用到的时候,再重新捡起来(因为具体内容确实有点忘了,,,),毕竟时间、精力有限;其实自我感觉学习这些知识最重要的是去学会了如何发现问题->找相关资料->学习->解决问题,一条龙服务     :D

Fighting!~~~

完~


以上均为个人学习心得,如有错误,请不吝赐教~

THE END

http://www.lryc.cn/news/181744.html

相关文章:

  • SpringBoot中常用注解的含义
  • 学位论文的写作方法,较好的参考文章
  • 基于SpringBoot的科研工作量获奖项目管理平台设计与实现(源码+lw+部署文档+讲解等)
  • 嵌入式Linux应用开发-驱动大全-第一章同步与互斥④
  • 算法-数学-斜率-直线上最多的点数
  • 项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285
  • (三) Markdown插入互联网或本地视频解决方案
  • HPA (Horizontal Pod Autoscaler) In K8s
  • Ubuntu安装samba服务器
  • [SpringBoot] 8. aop 获取 request response
  • 同学苹果ios的ipa文件应用企业代签选择签名商看看这篇文章你再去吧
  • 【PyCharm Community Edition】:excel操作
  • 证书显示未受信任,生成的证书过期
  • VS+Qt+C++ GDAL读取tif图像数据显示
  • CSS 选择器-认识并应用选择器
  • 【教程】Autojs使用OpenCV进行SIFT/BRISK等算法进行图像匹配
  • [庆国庆 迎国庆 发文]云计算的概念
  • 计算机网络-计算机网络体系结构-概述,模型
  • 对示例程序spinner_asyncio.py进行修改使其能运行
  • Linux命令(93)之head
  • 使用Visual Studio调试排查Windows系统程序audiodg.exe频繁弹出报错
  • WebSocket实战之六心跳重连机制
  • Webpack 基础入门以及接入 CSS、Typescript、Babel
  • postgresql-自增字段
  • SpringBoot中使用Servlet和Filter
  • Monkey命令
  • 力扣 -- 279. 完全平方数(完全背包问题)
  • 在将对象 => JSON格式时,无法序列化部分属性
  • 用python表格初级尝试
  • 【单片机】16-LCD1602和12864显示器