STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需要注意独立看门狗的时钟不是准确的40Khz,二是在30~60Khz之间变化的一个时钟,只是我们估算以40Khz来计算,看门狗对时间要求不是很青雀,时钟有点偏差还是可以接受的。

独立看门狗相关的几个寄存器

1.1. 键值寄存器(IWDG_KR)

寄存器各位描述如下:

独立看门狗工作原理:在键值寄存器(IWDG_KR)中写入0XCCCC,开始启用独立看门狗,此时计数器开始从其复位值OXFFF递减计数,当计数器计数到末尾0X000的时候,会产生一个复位信号(IWDG_RESET),无论何时,只要寄存器IWDG_KR中被写入0XAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。

预分频寄存器(IWDG_PR)和重载寄存器(IWDG_RLR)的写保护  :IWDG_PR和IWDG_RLR寄存器具有写保护功能,要想修改这两个寄存器的值,首先要向IWDG_KR中写入0X5555。以不同的值写入这个寄存器或者重装载(写入0XAAAA)都会重新启动写保护。

1.2. 预分频寄存器(IWDG_PR)

该寄存器是用来设置看门狗的时钟分频系数,最低为4,最高位256,虽然是32位寄存器,我们只使用了最低3位,其他保留,预分频寄存器各位定义如下:

1.3. 计数重装载寄存器(IWDG_RLR)

该寄存器保存重装载计数器中的值,32位寄存器,我们只使用了低12位有效,寄存器描述如下:

2. 独立看门狗启动过程

这样,只要我们对以上三个寄存器进行相应设置,我们就可以启动STM32独立看门狗了,启动过程如下:

2.1. 1、向IWDG_KR中吸入0X5555

通过这一步我们取消了IWDG_PR和IWDG_RLR的写保护,下一步我们设置他们初值。

设置IWDG_PR和IWDG_RLR的初值。

我们计算一下看门狗的喂狗时间(看门狗溢出时间)计算公式

Tout=((4*2^prer)*rlr)/40

其中Tout就是看门狗溢出时间(单位ms),prer是看门狗时钟预分频值(IWDG_PR值),范围为0~7,rlr位看门狗重载值(IWDG_RLR)。比如我们设置prer为4,rlr的值为625,我们就可以计算得到Tout=64*625/40=1000ms,这样,看门狗的溢出时间就是1S,只要在这一秒钟内,有一次吸入0XAAAA到IWDG_KR,就不会导致看门狗复位(写入多次也是可以的)(由于看门狗的时钟不是准确40Khz,所以喂狗不要太晚,以免发生看门狗复位)。

2.2. 2、向IWDG_KR中写入0XAAAA

通过这句可以将重载寄存器(IWDG_RLR)中的计数初值载入到看门狗计数器中(也可以时钟该命令喂狗)。

2.3. 3、向IWDG_KR中写入0XCCCC

通过这句我们就启动了STM32的看门狗了,使能了看门狗,在程序里面我们就必须间隔一定的时间就喂狗,否则导致程序复位,利用这一点,我们通过一个LED来指示是否复位,验证独立看门狗。

STM32中看门狗核心在芯片内部,不需要外部电路,这里我们使用到了外部电路中的2个IO口,一个用来输入喂狗信号,一个用来指示程序是否复位,喂狗使用WK_UP按键,程序重启指示使用DS0。

STM32之独立看门狗原理相关推荐

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

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

  2. 【嵌入式系统】独立看门狗原理+看门狗实验分析

    [嵌入式系统]独立看门狗原理+看门狗实验分析 1.看门狗模块概述 在由单片机构成的微机系统中,由于单片机工作常常会受到来自外界电磁场干扰导致程序跑飞,陷入死循环--即程序正常运行被打断,系统无法继续工 ...

  3. proteus里面没有stm32怎么办_学习STM32日志——独立看门狗实验(20.06.23)

    继续更新学习STM32的历程,今天学习看门狗. 在单片机构成的微型计算机系统中,单片机的工作时常收到外界电磁场的干扰,导致程序跑飞,陷入死循环.为了解决这个问题,产生了一种用于监测单片机程序运行状态的 ...

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

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

  5. STM32之窗口看门狗原理

     stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同.   独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定.喂狗的时间不能过晚. 窗口看门狗 ...

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

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

  7. 【STM32】独立看门狗

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

  8. STM32: IWDG独立看门狗

    IWDG STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,IWDG号称宠物狗,WWDG号称警犬,独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减 ...

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

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

最新文章

  1. 使用slice和concat对数组的深拷贝和浅拷贝
  2. HighNewTech:LL / GCP BOOTH at CES 2019 - January 8-11, 2019 - Westgate Convention Center Las Vegas
  3. 数据结构与算法—一文多图搞懂双链表
  4. JavaSE(九)——正则表达式、Date类、集合、泛型
  5. java 点允许没有反应 程序有main_我的java程序点击相应的button键没有反应?我想要实现的功能是点击“左齐”键,按钮左对齐,依此类推;...
  6. windows 2008 server NTP Server
  7. c语言不循环链表,无头单向不循环链表相关接口实现(C语言)
  8. Elasticsearch概念介绍文档路由与存储
  9. 大数据点点滴滴积少成多---进阶之路
  10. 如何查询芯片 IC 元器件 的datasheet数据手册
  11. 苹果自带的清理软件_系统自带垃圾清理软件屁用没有,但这款9.4评分的真心好用...
  12. 【华为云技术分享】漫谈LIteOS-物联网操作系统介绍
  13. [MSSQL2005]再看CTE
  14. 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of ...
  15. 国开大学 C语言程序 形考任务4,[国家开放大学] 国开电大人体生理学形考任务4...
  16. 【小程序实现五星好评功能】
  17. Q平台Audio集成开发 高通Audio术语缩写
  18. 移动MAS短信平台发送短信
  19. 南京师范大学计算机录取人数,南京师范大学2018年自主招生计划及招生人数,录取统计情况分析!...
  20. 上海期货交易所数据备份软件项目前景与范围文档

热门文章

  1. C++工作笔记-对全局变量的进一步认识(何时适合用,何时不适合用)
  2. 最小生成树(克鲁斯卡尔算法)
  3. linux mysql使用
  4. 计算机专业师资描述,计算机专业师资队伍建设6主持建设优质核心课或教科研课题相关材料.doc...
  5. Widows核心编程第一章:错误处理
  6. 面试被问进线程的区别
  7. c1和c2语言水平,为什么驾校不建议考C2,驾驶证C1和C2的区别
  8. 编译3.0的linux内核,Ubuntu 编译 Linux 3.0-rc4 内核
  9. 小哥送一单外卖应该拿多少钱?
  10. mysql-connector-java 6.x配置问题解决方案