STM32
直播中

申换换

7年用户 1501经验值
私信 关注
[问答]

如何去设置stm32窗口看门狗的喂狗时间

如何去设置STM32窗口看门狗的喂狗时间?
STM32窗口看门狗是如何工作的?

STM32窗口看门狗有何意义?

回帖(1)

林明

2021-9-2 17:12:42
1.窗口看门狗
窗口看门狗喂狗时间是是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。
2.窗口看门狗框图

3.窗口看门狗工作过程
STM32的窗口看门狗中有一个7位的递减计数器T[6:0],它会出现下述2种情况之一时产生看门狗复位:
(1)当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFR寄存器定义。
(2)当计数器的数值从0x40减到0x3f时【T6位跳变到0】。
如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以用于喂狗以避免WWDG复位。
4.窗口看门狗的意义
对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来;
如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行非正常地跳过了某些程序段的情况。
5.代码
wwdg.c


wwdg.h


main.c

举报

更多回帖

发帖
×
20
完善资料,
赚取积分