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.
}