针对CubeMX配置的IWDG初始化修改

由于cubemx配置的IWDG出现HAL_IWDG_Init函数反复复位,写此函数替代cubemx产生IWDG的初始化函数

/*************************************************
*function:看门狗初始化函数
*param:IWDG_HandleTypeDef见HAL工程
*return:void
*note:由于cubemx配置的IWDG出现HAL_IWDG_Init函数反复复位,写此函数替代cubemx产生IWDG
*************************************************/
void HAL_IWDG_Init2(IWDG_HandleTypeDef *hiwdg)
{
	hiwdg->Instance->KR = 0x5555;//写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器
	hiwdg->Instance->PR = hiwdg->Init.Prescaler;//分频值,范围0-7
	hiwdg->Instance->RLR = hiwdg->Init.Reload;//计数器重载值,范围0-4095
	hiwdg->Instance->KR = 0xAAAA;//重载计数器
	hiwdg->Instance->KR = 0xCCCC;//启动看门狗工作
}

喂狗函数依旧沿用原函数即可:

HAL_IWDG_Refresh(&hiwdg);

或者直接对键值寄存器写入0xAAAA即可。

你可能感兴趣的:(STM32)