STM32
直播中

费加罗

9年用户 898经验值
私信 关注
[问答]

STM32 WWDG为什么要递减计数器值小于0x40时产生复位,而不是减到0?

有个疑问,为什么要递减计数器值小于 0x40时产生复位,而不是减到0?

回帖(2)

冷静

2024-4-2 11:14:45
在官方的参考手册上有写到,T6 位由1到0 就会引起复位,也就是电路这样检测状态变化 的。
举报

洪茗苞

2024-4-2 16:50:04
这是因为STM32 WWDG(独立看门狗)的计数器是一个7位的递减计数器,范围是0-127。当WWDG被启动后,每次CPU执行完一次写操作时,WWDG计数器就会减1。如果计数器的值变为0,那么WWDG会立即产生复位,并重置为最大值127。

为了确保WWDG始终能够保持有效,通常会将WWDG计数器的初始值设置为较大值(例如0x7F),以便在运行过程中及时更新计数器的值,以防止计数器达到0并触发复位。因此,WWDG的配置中设置了一个窗口值(WWDG_CR的bits[6:0]),窗口值必须小于或等于计数器的初始值。

当WWDG计数器减到0x40时,它的值仍然远离0,如果在这个时候CPU没有成功更新WWDG计数器的值,那么WWDG就会在下一个时钟周期中产生复位信号,以保证系统的稳定性。这是设计时的一种保护机制,避免计数器异常导致系统未能及时更新WWDG计数器的值而导致复位。
举报

更多回帖

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