STM32: IWDG独立看门狗
IWDG
STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,IWDG号称宠物狗,WWDG号称警犬,独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器
,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号
,即 IWDG_RESET
。
如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。
看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作.
1. 独立看门狗时钟
独立看门狗的时钟由独立的 RC 振荡器 LSI 提供,即使主时钟发生故障它仍然有效,非常独立。
LSI 的频率一般在 30~60KHZ 之间,根据温度和工作场合会有一定的漂移,我们一般取 40KHZ,所以独立看门狗的定时时间并不一定非常精确,只适用于对时间精度要求比较低的场合。
2. 计数器时钟
递减计数器的时钟由 LSI 经过一个 8 位的预分频器得到,我们可以操作预分频器寄存器
IWDG_PR 来设置分频因子,分频因子可以是:[4,8,16,32,64,128,256,256],计数器时钟 CK_CNT=40/ 4*2^PRV,一个计数器时钟计数器就减一。
3. 12位 递减计数器
独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0 时,会产生
一个复位信号:IWDG_RESET,让程序重新启动运行,如果在计数器减到 0 之前刷新了计数器的
值的话,就不会产生复位信号,重新刷新计数器值的这个动作我们俗称喂狗
。
4. 重装载寄存器
重装载寄存器是一个 12 位的寄存器,里面装着要刷新到计数器的值,这个值的大小决定着独立
看门狗的溢出时间。超时时间 Tout = (4*2^prv) / 40 * rlv (s) ,prv 是预分频器寄存器的值,rlv 是
重装载寄存器的值。
5. 键寄存器
键寄存器 IWDG_KR 可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存
器写入下面三个不同的值有不同的效果。
6. 状态寄存器
状态寄存器 SR 只有位 0:PVU
和位 1:RVU
有效,这两位只能由硬件操作,软件操作不了。
RVU:
看门狗计数器重装载值更新,硬件置 1 表示重装载值的更新正在进行中,更新完毕之后由硬件清
0。
PVU:
看门狗预分频值更新,硬件置’1’指示预分频值的更新正在进行中,当更新完成后,由
硬件清 0。所以只有当 RVU/PVU 等于 0 的时候才可以更新重装载寄存器/预分频寄存器。
IWDG配置函数
void IWDG_Config(uint8_t prv ,uint16_t rlv)
{ // 使能 预分频寄存器 PR 和重装载寄存器 RLR 可写IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );// 设置预分频器值IWDG_SetPrescaler( prv );// 设置重装载寄存器值IWDG_SetReload( rlv );// 把重装载寄存器的值放到计数器中IWDG_ReloadCounter();// 使能 IWDGIWDG_Enable();
}
STM32: IWDG独立看门狗相关推荐
- STM32F103V IWDG 独立看门狗操作
最近编写一个程序,因为需要考虑到可靠性,所以需要在程序了添加看门狗功能.查了下STM32的相关资料,于是利用下库文件来实现IWDG独立看门狗操作.首先需要调用库文件 #include "st ...
- STM32之独立看门狗与窗口看门狗总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- STM32之独立看门狗原理
STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需要注意独立看门狗的时钟不是准确的40Khz,二是在30~60Khz之间变化的一个时钟,只是我们估算以 ...
- [STM32 ]内部独立看门狗IWDG
看门狗大家应该都不陌生,STM32内部带有独立看门狗和窗口看门狗两种:其中独立看门狗依赖于内部的晶振LSI进行工作,窗口看门狗依赖于系统时钟工作: 看门狗的作用,防止程序跑飞无法实现自复位而存在:如果 ...
- 7、【STM32】独立看门狗和窗口看门狗(IWDG、WWDG)实验
前言 使用的是正点原子的探索者开发板进行学习,芯片:STM32F407ZGTx 学习说明此文档为本人的学习笔记,注重实践,关于理论部分会给出相应的学习链接. 注:本文档添加了对代码的在线调试功能,有助 ...
- 基于STM32的独立看门狗详细用法(IWDG)
文章目录 前言 一.IWDG 1.简介 2.主要特性 3.独立看门狗框图 二.使用步骤 1.独立看门狗初始化 2.完整代码 三.功能演示 前言 今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以 ...
- 【STM32】IWDG独立看门狗【原理】
前注:本文章主要讲解[原理] 内容为 '_Snake_'编写,日常学习总结,内容如有不足.不妥之处请私信告知,谢谢! 实验 独立看门狗实验 简介 MCU可能工作在一些复杂环境,可能受到 ...
- 【STM32】独立看门狗程序
00. 目录 文章目录 00. 目录 01. 独立看门狗简介 02. 程序功能示例 03. 硬件设计 04. 编程步骤 05. 程序示例 06. 附录 07. 声明 01. 独立看门狗简介 STM32 ...
- 【STM32】独立看门狗
00. 目录 文章目录 00. 目录 01. IWDG简介 02. IWDG主要特性 03. IWDG功能说明 04. IWDG框图 05. IWDG寄存器 5.1 关键字寄存器 (IWDG_KR) ...
最新文章
- Spring5源码解析-Spring中的异步事件
- 剑灵总显示服务器断开连接,求解一分钟“与服务器断开连接”问题
- 利用栈将中缀表达式转化成后缀表达式
- 中的stop_谈谈stop容器
- Python 的 Magic Methods 指南(转)
- 【转】面试:一个单例模式,足以把你秒成渣
- C++(STL):34--- multiset容器详解
- 为什么每次有人大声通电话时,我就很烦躁...
- DevOps(过程、方法与系统的统称)是什么
- 在新窗口中打开链接 javascript
- idea maven sync Cannot resolve xxx 的解决方案
- keras 的dot、multiply区别
- 初中计算机 课题研究,初中信息技术课题怎么做
- cisco sla 简单配置
- [家里蹲大学数学杂志]第409期与正弦对数有关的一个积分不等式
- SOA和Web Service
- TestBird《2021中国手游测试白皮书》---国内手游
- M2M技术,主要包含哪几个重要的技术部分
- Panda 用法( 基础 )
- 表格(table)属性cellspacing、cellpadding
热门文章
- 基于深度强化学习的进化多目标优化自适应算子选择
- 最详细LInux运维面试题目
- springboot日志可视化_使用 SpringBoot Admin 监控你的 SpringBoot 程序
- 关于信息系统工程中的验收问题探讨
- Python机器学习:数据科学,机器学习和人工智能的主要发展技术趋势概述
- 剑指 Offer 22. 链表中倒数第k个节点
- _blank 和 _self的区别以及display:none和visibility:hidden的区别
- 先储值再消费表计DTSY1352-NK导轨式内控预付费电能表
- 数据结构——“图”的相关知识总结
- 5.linux 下的 xshell、jdk、tomcat、mysql、mycat、ngnix 、memcache软件安装