大家好,又见面了,我是你们的朋友全栈君。
系统时钟:
The WWDG clock is prescaled from the APB clock and has a configurable time-window that
can be programmed to detect abnormally late or early application behavior.
/** @defgroup WWDG_Prescaler WWDG Prescaler * @{ */
#define WWDG_PRESCALER_1 0x00000000u /*!< WWDG counter clock = (PCLK1/4096)/1 */
#define WWDG_PRESCALER_2 WWDG_CFR_WDGTB_0 /*!< WWDG counter clock = (PCLK1/4096)/2 */
#define WWDG_PRESCALER_4 WWDG_CFR_WDGTB_1 /*!< WWDG counter clock = (PCLK1/4096)/4 */
#define WWDG_PRESCALER_8 (WWDG_CFR_WDGTB_1 | WWDG_CFR_WDGTB_0) /*!< WWDG counter clock = (PCLK1/4096)/8 */
寄存器配置
hwwdg.Instance = WWDG;
hwwdg.Init.Prescaler = WWDG_PRESCALER_1;
hwwdg.Init.Window = 240;
hwwdg.Init.Counter = 240;
hwwdg.Init.EWIMode = WWDG_EWI_DISABLE;
if (HAL_WWDG_Init(&hwwdg) != HAL_OK)
{
Error_Handler();
}
理论计算时间(1分频)
T = 240 ∗ 4096 8000000 ∗ 1000 = 122.88 m s T = \frac{240*4096}{8000000} *1000= 122.88ms T=8000000240∗4096∗1000=122.88ms
2分频时间为: 2*122.88 = 245.76ms
喂狗:
/** * @brief Refresh the WWDG. * @param hwwdg pointer to a WWDG_HandleTypeDef structure that contains * the configuration information for the specified WWDG module. * @retval HAL status */
HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg)
{
/* Write to WWDG CR the WWDG Counter value to refresh with */
WRITE_REG(hwwdg->Instance->CR, (hwwdg->Init.Counter));
/* Return function status */
return HAL_OK;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135639.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...