GD32F07VCT6看门狗调试方法
根据您提供的代码和参数。
·
根据您提供的代码和参数 IWDG_TIMEOUT = 2500,看门狗的超时时间为 2.5 秒。
详细计算过程:
1. 时钟配置
-
LSI 时钟频率:40 KHz
-
预分频因子:32 (FWDGT_PSC_DIV32)
-
分频后时钟频率:40KHz ÷ 32 = 1.25 KHz
-
计数周期:1 ÷ 1.25KHz = 0.8 ms
2. 重装载值计算
tmp = (2500 × 10) >> 3
= 25000 ÷ 8
= 3125
3. 超时时间计算
超时时间 = 3125 × 0.8 ms
= 2500 ms
= 2.5 秒
代码逻辑说明:
void WDGT_Init(void)
{
uint16_t timeout = 2500; // 2.5秒
uint16_t tmp;
fwdgt_write_enable(); // 解除写保护
// 计算重装载值
tmp = (uint16_t)(2500 * 10) >> 3; // 3125
// 配置看门狗
fwdgt_config(3125, FWDGT_PSC_DIV32); // 分频32,周期0.8ms
fwdgt_counter_reload(); // 重装载计数器
fwdgt_enable(); // 启动看门狗
}
喂狗要求:
-
必须在 2.5 秒内调用
fwdgt_counter_reload()函数重置看门狗 -
否则系统将自动复位
验证公式:
您可以通过以下方法验证任意 IWDG_TIMEOUT 值对应的超时时间:
超时时间(ms) = IWDG_TIMEOUT
重装载值 = IWDG_TIMEOUT × 10 ÷ 8
实际超时时间 = 重装载值 × 0.8 ms
= (IWDG_TIMEOUT × 10 ÷ 8) × 0.8
= IWDG_TIMEOUT
结论:代码计算正确,当 IWDG_TIMEOUT = 2500 时,看门狗超时时间为 2.5 秒。
调试过程

更多推荐



所有评论(0)