STM32之独立看门狗原理
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之独立看门狗原理相关推荐
- STM32之独立看门狗与窗口看门狗总结
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- 【嵌入式系统】独立看门狗原理+看门狗实验分析
[嵌入式系统]独立看门狗原理+看门狗实验分析 1.看门狗模块概述 在由单片机构成的微机系统中,由于单片机工作常常会受到来自外界电磁场干扰导致程序跑飞,陷入死循环--即程序正常运行被打断,系统无法继续工 ...
- proteus里面没有stm32怎么办_学习STM32日志——独立看门狗实验(20.06.23)
继续更新学习STM32的历程,今天学习看门狗. 在单片机构成的微型计算机系统中,单片机的工作时常收到外界电磁场的干扰,导致程序跑飞,陷入死循环.为了解决这个问题,产生了一种用于监测单片机程序运行状态的 ...
- [STM32 ]内部独立看门狗IWDG
看门狗大家应该都不陌生,STM32内部带有独立看门狗和窗口看门狗两种:其中独立看门狗依赖于内部的晶振LSI进行工作,窗口看门狗依赖于系统时钟工作: 看门狗的作用,防止程序跑飞无法实现自复位而存在:如果 ...
- STM32之窗口看门狗原理
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同. 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定.喂狗的时间不能过晚. 窗口看门狗 ...
- 【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) ...
- STM32: IWDG独立看门狗
IWDG STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,IWDG号称宠物狗,WWDG号称警犬,独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减 ...
- 基于STM32的独立看门狗详细用法(IWDG)
文章目录 前言 一.IWDG 1.简介 2.主要特性 3.独立看门狗框图 二.使用步骤 1.独立看门狗初始化 2.完整代码 三.功能演示 前言 今天要学习的是独立看门狗,看门狗电路的应用,使单片机可以 ...
最新文章
- 使用slice和concat对数组的深拷贝和浅拷贝
- HighNewTech:LL / GCP BOOTH at CES 2019 - January 8-11, 2019 - Westgate Convention Center Las Vegas
- 数据结构与算法—一文多图搞懂双链表
- JavaSE(九)——正则表达式、Date类、集合、泛型
- java 点允许没有反应 程序有main_我的java程序点击相应的button键没有反应?我想要实现的功能是点击“左齐”键,按钮左对齐,依此类推;...
- windows 2008 server NTP Server
- c语言不循环链表,无头单向不循环链表相关接口实现(C语言)
- Elasticsearch概念介绍文档路由与存储
- 大数据点点滴滴积少成多---进阶之路
- 如何查询芯片 IC 元器件 的datasheet数据手册
- 苹果自带的清理软件_系统自带垃圾清理软件屁用没有,但这款9.4评分的真心好用...
- 【华为云技术分享】漫谈LIteOS-物联网操作系统介绍
- [MSSQL2005]再看CTE
- 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of ...
- 国开大学 C语言程序 形考任务4,[国家开放大学] 国开电大人体生理学形考任务4...
- 【小程序实现五星好评功能】
- Q平台Audio集成开发 高通Audio术语缩写
- 移动MAS短信平台发送短信
- 南京师范大学计算机录取人数,南京师范大学2018年自主招生计划及招生人数,录取统计情况分析!...
- 上海期货交易所数据备份软件项目前景与范围文档
热门文章
- C++工作笔记-对全局变量的进一步认识(何时适合用,何时不适合用)
- 最小生成树(克鲁斯卡尔算法)
- linux mysql使用
- 计算机专业师资描述,计算机专业师资队伍建设6主持建设优质核心课或教科研课题相关材料.doc...
- Widows核心编程第一章:错误处理
- 面试被问进线程的区别
- c1和c2语言水平,为什么驾校不建议考C2,驾驶证C1和C2的区别
- 编译3.0的linux内核,Ubuntu 编译 Linux 3.0-rc4 内核
- 小哥送一单外卖应该拿多少钱?
- mysql-connector-java 6.x配置问题解决方案