野火论坛

 找回密码
 注册

扫一扫,访问微社区

查看: 2067|回复: 68

[STM32F1] 【F1-IWDG】STM32 IWDG 独立看门狗功能框图剖析+程序+教程

  [复制链接]
发表于 2015-10-12 19:41:00 | 显示全部楼层 |阅读模式
IWDG:独立看门狗
独立看门狗简介

STM32有两个看门狗,一个是独立看门狗另外一个窗口看门狗,这里我们主要分析下独立看门狗的功能框图。
独立看门狗用通俗一点的话来解释就是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统
就会产生一个复位信号,即IWDG_RESET。如果在计数没减到0之前,刷新了计数器的值的话,那么就不会产生
复位信号,这个动作就是我们经常说的喂狗。


独立看门狗功能框图剖析
1.jpg
①独立看门狗时钟
独立看门狗的时钟由独立的RC振荡器LSI提供,及时主时钟发生故障它仍然有效,非常独立。LSI的频率一般在30~60KHZ之间,
根据温度和工作场合会有一定的漂移,我们一般取40KHZ,所以独立看门狗的定时时间并一定非常精确,只实用于对时间精度
要求比较低的场合。

②计数器时钟CK_CNT
递减计数器的时钟由LSI经过一个8位的预分频器得到,我们可以操作预分频器寄存器IWDG_PR来设置分频因子,
分频因子可以是:[4,8,16,32,64,128,256,256],计数器时钟CK_CNT= 40/ PRV,一个计数器时钟计数器就减一。

③计数器
独立看门狗的计数器是一个12位的递减计数器,最大值为0XFFF,当计数器减到0时,会产生一个复位信号:IWDG_RESET,
让程序重新启动运行,如果在计数器减到0之前刷新了计数器的值的话,就不会产生复位信号,重新刷新计数器值的这个
动作我们俗称喂狗。

④重装载寄存器
重装载寄存器是一个12位的寄存器,里面装着要刷新到计数器的值,这个值的大小决定着独立看门狗的溢出时间。超时时间
Tout = (4*2^prv) / 40 * rlv (s) ,prv是预分频器寄存器的值,rlv是重装载寄存器的值。



⑤键寄存器
键寄存器IWDG_KR可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器写入下面三个不同的值有不同的效果。
0XAAAA:把RLR的值重装载到CNT
0X5555:PR和RLR这两个寄存器可写
0XCCCC:启动IWDG
通过写往键寄存器写0XCCC来启动看门狗是属于软件启动的方式,一旦独立看门狗启动,它就关不掉了,只有复位才能关掉。


⑥状态寄存器
状态寄存器SR只有位0:PVU和位1:RVU有效,这两位只能由硬件操作,软件操作不了。RVU:看门狗计数器重装载值更新,硬件置1
表示重装载值的更新正在进行中,当在VDD域中的重装载更新结束后,此位由硬件清’0’(最多需5个40kHz的RC周期)。
重装载值只有在RVU位被清’0’后才可更新。PVU: 看门狗预分频值更新,硬件置’1’指示预分频值的更新正在进行中。当在VDD域中的
预分频值更新结束后,此位由硬件清’0’(最多需5个40kHz的RC周期)。预分频值只有在PVU位被清’0’后才可更新。

独立看门狗怎么使用
独立看门狗一般用来检测和解决由程序引起的故障,比如一个程序正常运行的时间是50ms,在运行完这个段程序之后紧接着进行喂狗,
我们设置独立看门狗的定时溢出时间为60ms,比我们需要监控的程序50ms多一点,如果超过60ms还没有喂狗,那就说明我们监控的
程序出故障了,跑飞了,那么就会产生系统复位,让程序重新运行。


独立看门狗使用例程:
IWDG—独立看门狗.rar (301.74 KB, 下载次数: 145)
回复

使用道具 举报

发表于 2015-10-13 08:31:23 | 显示全部楼层
支持火哥的STM32每日一题,学过后回头看依然有收获
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 08:51:07 | 显示全部楼层
BDG 发表于 2015-10-13 08:31
支持火哥的STM32每日一题,学过后回头看依然有收获

谢谢支持,先简介,再详细讲解功能框图,然后讲编程要点,最后讲程序,这样的步骤是不是比较好
回复 支持 反对

使用道具 举报

发表于 2015-10-31 11:49:05 | 显示全部楼层
支持野火!!!支持每日一题!!!
回复 支持 反对

使用道具 举报

发表于 2015-11-5 14:48:06 | 显示全部楼层
支持野火!!!支持每日一题!!!
回复 支持 反对

使用道具 举报

发表于 2015-11-10 12:56:49 | 显示全部楼层
好东西,值得学习
回复 支持 反对

使用道具 举报

发表于 2015-11-10 14:58:16 | 显示全部楼层

支持野火!!!支持每日一题!!!
回复 支持 反对

使用道具 举报

发表于 2015-11-16 15:55:09 来自手机 | 显示全部楼层
值得学习,好东西。
回复 支持 反对

使用道具 举报

发表于 2015-11-19 16:39:51 | 显示全部楼层
看门狗       学习    啊
回复 支持 反对

使用道具 举报

发表于 2015-11-19 16:53:59 | 显示全部楼层
每天要来看一看
回复 支持 反对

使用道具 举报

发表于 2015-11-29 11:13:25 | 显示全部楼层
看门狗不知道是干啥用的。
回复 支持 反对

使用道具 举报

发表于 2015-11-29 11:13:46 | 显示全部楼层
看门DOG不知道是干啥用的。
回复 支持 反对

使用道具 举报

发表于 2015-11-29 11:34:03 | 显示全部楼层
看状态寄存器这段话,有点不明白啊。既然硬件置1时表示更新正在进行,那为什么清0后,重装载值和预分频值才更新?这不是自相矛盾吗?我糊涂了。
回复 支持 反对

使用道具 举报

发表于 2015-11-29 20:51:10 | 显示全部楼层
謝謝火哥分享!!
回复 支持 反对

使用道具 举报

发表于 2015-12-7 18:02:07 | 显示全部楼层
支持野火社区越办越好
回复 支持 反对

使用道具 举报

发表于 2015-12-9 11:18:58 | 显示全部楼层
哇哇哇,新手顶一个
回复 支持 反对

使用道具 举报

发表于 2015-12-15 20:46:39 | 显示全部楼层
打算一口气看完,学习+巩固!!
回复 支持 反对

使用道具 举报

发表于 2015-12-16 16:17:37 | 显示全部楼层
正好要用到,学习下
回复 支持 反对

使用道具 举报

发表于 2015-12-27 11:57:28 | 显示全部楼层
学习学习,正好库开发实战指南上没有。
回复 支持 反对

使用道具 举报

发表于 2016-1-6 21:38:36 | 显示全部楼层
你见过如这般此标准的十五个字吗
回复 支持 反对

使用道具 举报

发表于 2016-1-25 01:27:51 | 显示全部楼层
支持野火,好好。
回复 支持 反对

使用道具 举报

发表于 2016-1-25 08:55:30 | 显示全部楼层
学习了解中。。。。。
回复 支持 反对

使用道具 举报

发表于 2016-2-8 22:15:56 | 显示全部楼层
非常不错,感谢分享
回复 支持 反对

使用道具 举报

发表于 2016-3-2 10:52:29 | 显示全部楼层
这是好东西啊 什么时候能像火哥这样成为大神,,,
回复 支持 反对

使用道具 举报

发表于 2016-3-3 09:42:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2016-3-4 18:28:59 | 显示全部楼层
现在很是需要这个
回复 支持 反对

使用道具 举报

发表于 2016-3-15 14:04:31 | 显示全部楼层


支持野火!!!支持每日一题!!!
回复 支持 反对

使用道具 举报

发表于 2016-3-17 22:46:18 | 显示全部楼层
STM32 IWDG 独立看门狗功能框图剖析+程序+教程 [修改]  
学习,谢谢!
回复 支持 反对

使用道具 举报

发表于 2016-3-18 15:32:09 | 显示全部楼层
看看哈哈,写的不错
回复 支持 反对

使用道具 举报

发表于 2016-3-18 15:56:21 | 显示全部楼层
非常棒,看完代码懂了
回复 支持 反对

使用道具 举报

发表于 2016-3-18 17:09:30 | 显示全部楼层
来看看这俩狗
回复 支持 反对

使用道具 举报

发表于 2016-3-18 23:39:09 | 显示全部楼层
独立看门狗
回复 支持 反对

使用道具 举报

发表于 2016-3-20 00:52:57 | 显示全部楼层
谢谢火哥,学习了
回复 支持 反对

使用道具 举报

发表于 2016-3-24 13:56:06 | 显示全部楼层
好好学习天天向上
回复 支持 反对

使用道具 举报

发表于 2016-3-26 19:55:02 | 显示全部楼层
个人各反复跟法国高铁热风太热
回复 支持 反对

使用道具 举报

发表于 2016-3-30 11:11:36 | 显示全部楼层
谢谢分享,非常感谢
回复 支持 反对

使用道具 举报

发表于 2016-4-1 08:10:03 | 显示全部楼层
学习                             
回复 支持 反对

使用道具 举报

发表于 2016-4-1 08:13:59 来自手机 | 显示全部楼层
kj@gj$khfhshshshdhgjsjjs
回复 支持 反对

使用道具 举报

发表于 2016-4-11 09:07:26 | 显示全部楼层
正在学习中。。。。
回复 支持 反对

使用道具 举报

发表于 2016-4-11 09:19:23 | 显示全部楼层
怎么编译错误?
QQ图片20160411091750.png
回复 支持 反对

使用道具 举报

发表于 2016-4-12 21:48:39 | 显示全部楼层
支持火哥的STM32每日一题
回复 支持 反对

使用道具 举报

发表于 2016-4-14 14:19:23 | 显示全部楼层
stm32看门狗需要手动喂狗吗
回复 支持 反对

使用道具 举报

发表于 2016-4-16 16:45:22 来自手机 | 显示全部楼层
感谢火哥分享,学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|野火论坛 ( 粤ICP备14069197号-2

GMT+8, 2018-4-25 13:01 , Processed in 0.077997 second(s), 31 queries , Gzip On.

野火电子论坛

© 2014-2016 www.firebbs.cn

快速回复 返回顶部 返回列表