各位好 我用gd32l23mcu,这个看门狗我算出来超时时间是300ms,可是我实际测4s复位一次。计算值和实际结果不一样。


各位好 我用gd32l23mcu,这个看门狗我算出来超时时间是300ms,可是我实际测4s复位一次。计算值和实际结果不一样。


关注引自免费微信小程序:皆我百晓生
1. 确认代码实现是否正确
根据您提供的代码,有几个地方需要注意。首先,在 fwdg init() 函数中,大括号 {} 后多了一个“日”字。这对代码的编译和逻辑可能会产生影响,因此请确保代码中没有任何语法错误。
其次,您在 fwdgt_config 函数中的第一个参数为 2500,这可能导致了超时时间计算错误。根据图2的内容,X2500 应该表示超时时间为 312.5ms,而不是 2500ms。确保该参数正确设置,并重新编译运行代码。
最后,请确保您正确初始化了相关的时钟和计数器等硬件设置。如果这些设置不正确,可能会导致看门狗计算值与实际值不同。
2. 确认看门狗时钟源和分频器配置
在您的代码中,您使用的是 RC32K 作为看门狗的时钟源,并将分频系数设置为除以 4(FWDGT_PSC_DIV4)。请确保这些配置与您的需求相符。
如果您的系统时钟和看门狗时钟源之间存在差异,就会导致计算值和实际结果不同。因此,请检查系统时钟配置和时钟源选择是否正确,并尝试更改分频器配置进行实验。
3. 考虑看门狗定时器精度和溢出
gd32l23 独立看门狗的定时器精度可能会影响看门狗的实际超时时间。请确保您对定时器溢出情况做了正确的处理,以免影响计算和实际超时时间的匹配性。
如果经过上述操作仍然无法解决问题,建议您查阅相关的官方文档、datasheet 或参考手册,以获取更多关于 gd32l23 独立看门狗的详细信息。