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独立看门狗相关推荐

  1. STM32F103V IWDG 独立看门狗操作

    最近编写一个程序,因为需要考虑到可靠性,所以需要在程序了添加看门狗功能.查了下STM32的相关资料,于是利用下库文件来实现IWDG独立看门狗操作.首先需要调用库文件 #include "st ...

  2. STM32之独立看门狗与窗口看门狗总结

    一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...

  3. STM32之独立看门狗原理

    STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需要注意独立看门狗的时钟不是准确的40Khz,二是在30~60Khz之间变化的一个时钟,只是我们估算以 ...

  4. [STM32 ]内部独立看门狗IWDG

    看门狗大家应该都不陌生,STM32内部带有独立看门狗和窗口看门狗两种:其中独立看门狗依赖于内部的晶振LSI进行工作,窗口看门狗依赖于系统时钟工作: 看门狗的作用,防止程序跑飞无法实现自复位而存在:如果 ...

  5. 7、【STM32】独立看门狗和窗口看门狗(IWDG、WWDG)实验

    前言 使用的是正点原子的探索者开发板进行学习,芯片:STM32F407ZGTx 学习说明此文档为本人的学习笔记,注重实践,关于理论部分会给出相应的学习链接. 注:本文档添加了对代码的在线调试功能,有助 ...

  6. 基于STM32的独立看门狗详细用法(IWDG)

    文章目录 前言 一.IWDG 1.简介 2.主要特性 3.独立看门狗框图 二.使用步骤 1.独立看门狗初始化 2.完整代码 三.功能演示 前言 今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以 ...

  7. 【STM32】IWDG独立看门狗【原理】

    前注:本文章主要讲解[原理] 内容为 '_Snake_'编写,日常学习总结,内容如有不足.不妥之处请私信告知,谢谢! 实验 独立看门狗实验 简介         MCU可能工作在一些复杂环境,可能受到 ...

  8. 【STM32】独立看门狗程序

    00. 目录 文章目录 00. 目录 01. 独立看门狗简介 02. 程序功能示例 03. 硬件设计 04. 编程步骤 05. 程序示例 06. 附录 07. 声明 01. 独立看门狗简介 STM32 ...

  9. 【STM32】独立看门狗

    00. 目录 文章目录 00. 目录 01. IWDG简介 02. IWDG主要特性 03. IWDG功能说明 04. IWDG框图 05. IWDG寄存器 5.1 关键字寄存器 (IWDG_KR) ...

最新文章

  1. Spring5源码解析-Spring中的异步事件
  2. 剑灵总显示服务器断开连接,求解一分钟“与服务器断开连接”问题
  3. 利用栈将中缀表达式转化成后缀表达式
  4. 中的stop_谈谈stop容器
  5. Python 的 Magic Methods 指南(转)
  6. 【转】面试:一个单例模式,足以把你秒成渣
  7. C++(STL):34--- multiset容器详解
  8. 为什么每次有人大声通电话时,我就很烦躁...
  9. DevOps(过程、方法与系统的统称)是什么
  10. 在新窗口中打开链接 javascript
  11. idea maven sync Cannot resolve xxx 的解决方案
  12. keras 的dot、multiply区别
  13. 初中计算机 课题研究,初中信息技术课题怎么做
  14. cisco sla 简单配置
  15. [家里蹲大学数学杂志]第409期与正弦对数有关的一个积分不等式
  16. SOA和Web Service
  17. TestBird《2021中国手游测试白皮书》---国内手游
  18. M2M技术,主要包含哪几个重要的技术部分
  19. Panda 用法( 基础 )
  20. 表格(table)属性cellspacing、cellpadding

热门文章

  1. 基于深度强化学习的进化多目标优化自适应算子选择
  2. 最详细LInux运维面试题目
  3. springboot日志可视化_使用 SpringBoot Admin 监控你的 SpringBoot 程序
  4. 关于信息系统工程中的验收问题探讨
  5. Python机器学习:数据科学,机器学习和人工智能的主要发展技术趋势概述
  6. 剑指 Offer 22. 链表中倒数第k个节点
  7. _blank 和 _self的区别以及display:none和visibility:hidden的区别
  8. 先储值再消费表计DTSY1352-NK导轨式内控预付费电能表
  9. 数据结构——“图”的相关知识总结
  10. 5.linux 下的 xshell、jdk、tomcat、mysql、mycat、ngnix 、memcache软件安装