[STM32F1] 怎么控制喂狗?

[复制链接]
 楼主| zwll 发表于 2022-4-11 23:15 | 显示全部楼层 |阅读模式
窗口看门狗,要求不能喂早了,也不能喂晚了。
  这个不能喂早了,不知怎么控制?
zhanghqi 发表于 2022-4-11 23:17 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| zwll 发表于 2022-4-11 23:19 | 显示全部楼层
以前用其它mcu喂狗,感觉比较长的延时,随便扔几个喂狗指令就可以了,现在不行了,不能早喂,这样计算起来会比较复杂,如果程序再复杂点,去精确记录这个不能喂早的时间,会非常困难。不知同志们是怎么处理这个窗口看门狗的,有好的建议说说啊
heweibig 发表于 2022-4-11 23:21 | 显示全部楼层
你以前是独立看门狗,只要在这个时间范围内喂就行了;
tian111 发表于 2022-4-11 23:23 | 显示全部楼层

比如你设定的窗口范围是1到2ms;
那你就在1.5ms的时候喂,通过定时器中断或其它方式都可以啊
liliang9554 发表于 2022-4-11 23:26 | 显示全部楼层
看代码结构吧。。最好在代码段喂狗,实在难实现就定时器
stly 发表于 2022-4-11 23:29 | 显示全部楼层
库函数中用中断的方式来喂狗的方法,窗口看门狗库函数相关源码和定义分布在文件stm32f10x_wwdg.c 文件和头文件 stm32f10x_wwdg.h 中
xxrs 发表于 2022-4-11 23:31 | 显示全部楼层
看门狗是不能用定时器中断做的,但是可以用定时器来计时。。就是在主函数对定时器变量观察。。
zhenykun 发表于 2022-4-11 23:33 | 显示全部楼层
用独立看门狗就可以了,
 楼主| zwll 发表于 2022-4-11 23:35 | 显示全部楼层
我正在想另一种喂狗方式,就是每次喂狗,不用通用的哪条喂狗指令,而是去复位一下寄存器值,这样就没有窗口的概念了,就和原来的51单片机看门狗一样了。只是那么想,还在研究中
pengf 发表于 2022-4-11 23:38 | 显示全部楼层
定时器喂狗当然可以,如何操作完全看你的程序设计;
jiajs 发表于 2022-4-11 23:40 | 显示全部楼层
只要保证任何一个部分出了问题可以有效复位就好了;
yszong 发表于 2022-4-11 23:44 | 显示全部楼层
只要别再定时器中断程序里喂狗就行了。
 楼主| zwll 发表于 2022-4-11 23:46 | 显示全部楼层
经过进一步研究,实现了窗口看门狗,可以任意清看门狗的程序,不用再精确计算窗口时间,经过试验,在0-258ms之间,清看门狗都是可以的。设置方法就是
WWDG_SetWindowValue(0X7f);
        WWDG_Enable(0x7f);                     
让窗口数值和计数值一样。
renyaq 发表于 2022-4-11 23:49 | 显示全部楼层
确实,我也是后来才知道,刚开始还打算在wwdg的中断里喂狗呢。你是8M主频,没用PLL,所以是258ms
jiajs 发表于 2022-4-11 23:51 | 显示全部楼层
如何喂狗是大学问啊
 楼主| zwll 发表于 2022-4-11 23:53 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部