当我调试WWDG时发现出现异常复位现象,对比官方例程中其他配置也都相同,相邻两次喂狗时间间隔比官方例程中的要短理应不会发生复位,但调试过程中发生了异常复位的现象,那么这是为什么呢?查阅了网上资料才发现属于是WWDG概念理解不清晰,不说别的直接上图吧。。。
这张时序图内W[6:0]表示窗口值,当看门狗的减计数器不断递减,只有计数值到达窗口值与0x3F之间的时候“喂狗”,才不会发生复位,如果是在其他区间重装载时都会发生复位。这样只有在一定范围内“喂狗”才不会复位,就好像窗口一样限定了范围,所以才叫做窗口看门狗。当喂狗时间过快时(由于例程中窗口值为80,减计数器重装载值为127),就会出现喂狗时减计数器的值大于窗口值的情况,也就是喂狗时间落到了允许刷新窗口的左侧。。。然后就出现了熟悉的异常复位的现象。。
|