本帖最后由 caicaptain2 于 2023-6-26 15:17 编辑
标题很绕口,但是就是这么个意思。 而且csdn上很难找到G4系列的案例分享。
G4系列的独立看门狗除了事项常规的看门狗功能,还可以同时配置为窗口看门狗。
比如常规使用cubemx生成一个看门狗初始化函数:
[C] 纯文本查看 复制代码 void MX_IWDG_Init(void)
{
hiwdg.Instance = IWDG;
hiwdg.Init.Prescaler = IWDG_PRESCALER_64;
hiwdg.Init.Window = 2048;
hiwdg.Init.Reload = 4095;
if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
{
Error_Handler();
}
}
这个看门狗的常规用法是,分频64,计数4095,大概是8秒钟后,看门狗计数减为0,然后系统复位。
窗口看门狗的意思是,喂狗(refresh idwg)的这个时刻,如果看门狗计数值为3000,而窗口设定为2048,这就喂早了,然后系统复位。
通俗的讲,如果设定了窗口看门狗的数值,喂早了,喂频繁了,狗撑死了,系统复位。
所以,hiwdg.Init.Window这个数值不能设置太小。如果不使用窗口功能,那么就设置最大值4095. 避免频繁喂狗,反而造成系统复位。
|