OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3621|回复: 3

窗口看门狗学习笔记

[复制链接]

6

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2015-7-15
在线时间
36 小时
发表于 2016-3-10 21:47:40 | 显示全部楼层 |阅读模式
本帖最后由 bruceSTM32 于 2016-3-10 22:54 编辑

窗口看门狗是STM32的一大创新,弥补了独立看门狗不能检测到的故障的情况。

什么情况下窗口看门狗会复位?
(1)T[6:0]从0x40递减到0x3F,看门狗复位;
(2)在计数器值大于窗口寄存器的数值的时候,重新装载计数器值,看门狗复位。


什么时候喂狗?
必须在窗口值与0x40之间进行刷新,在窗口值之前或者0x40之后刷新都会引起窗口看门狗复位(窗口寄存器值肯定是大于0x40)。
因此0x40是喂狗的下限值,窗口值是喂狗的上限值,必须在上限与下限之间喂狗,否则看门狗复位。


怎么喂狗?
当递减计数器的值递减到窗口值与0x40之间时,就需要重新加载递减计数器的值,这就是喂狗。


QQ截图20160310215656.jpg


喂狗时间间隔是怎么计算出来的?

喂狗的最长时间间隔计算:
当计数器的值=0x7f,窗口值=0x40,就是喂狗的最长时间间隔。
取预分频器时基WDGTB=0,TWWDG=4096*1*(0x7f-0x40+1)/36=7.28ms
喂狗的最长时间间隔计算:
当计数器的值=0x40,窗口值=0x40,就是喂狗的最短时间间隔。
取预分频器时基WDGTB=0,TWWDG=4096*1*(0x40-0x40+1)/36=113us

窗口看门狗操作步骤:
1、开启窗口看门狗时钟
WWDG是由APB1总线时钟驱动,而IWDG是由独立的低速内部时钟驱动
2、配置窗口看门狗各个寄存器
启用看门狗,设置计数寄存器和窗口寄存器的初值,设置预分频器的值,开启唤醒中断
3、配置窗口看门狗中断
中断分组,以及使能中断
4、编写中断服务函数
在中断服务函数里一定要记得清除提前唤醒中断标志位。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

10

帖子

0

精华

高级会员

Rank: 4

积分
700
金钱
700
注册时间
2015-12-31
在线时间
85 小时
发表于 2016-3-10 23:40:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2015-7-15
在线时间
36 小时
 楼主| 发表于 2016-3-11 00:01:01 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2016-2-27
在线时间
6 小时
发表于 2016-4-5 13:37:26 | 显示全部楼层
顶一下!!!!!!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 12:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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