STM32 HAL库之看门狗

1.STM32CubeMX配置
在这里插入图片描述
keil5文件输出如下:
在这里插入图片描述
点击右上角GENERATE CODE
在这里插入图片描述
2.代码解析

IWDG_HandleTypeDef hiwdg;
void MX_IWDG_Init(void)
{
  hiwdg.Instance = IWDG;
  hiwdg.Init.Prescaler = IWDG_PRESCALER_4;//4分频,频率为10KHz
  hiwdg.Init.Window = 4095;//看门狗窗口值,0~4095
  hiwdg.Init.Reload = 4095;//看门狗重置值,0~4095,重置后会自减,减到0时MCU会复位。
  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
  {
    Error_Handler();
  }
}
//main.c
MX_IWDG_Init(); //初始化独立看门狗
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); //开机/重启闪2次灯
HAL_Delay(100);
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(100);
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
HAL_Delay(100);
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
while (1)
{
	while(HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == 1) //检测按键是否按下
	{
		HAL_Delay(500); //延时500ms,足够让看门狗触发重启。
	}
	HAL_IWDG_Refresh(&hiwdg); //喂狗:重装看门狗数据为4095.
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章