1. 程式人生 > >STM32CubeMX學習筆記——STM32H743視窗看門狗WWDG

STM32CubeMX學習筆記——STM32H743視窗看門狗WWDG

STM32CubeMX學習筆記——STM32H743視窗看門狗WWDG

Github

https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/STM32H7/Class03_WWDG

STM32CubeMX配置

STM32CubeMX版本:4.27.0
配置流程:
Pinout介面選擇並開啟需要的LED控制與按鍵輸入引腳
Clock Configuration配置時鐘樹
Configuration介面配置System
生成工程

Pinout配置

在這裡插入圖片描述
LED輸出與KEY輸入的PIN配置

Clock Configuration配置

在這裡插入圖片描述
開啟系統時鐘

Configuration

在這裡插入圖片描述
左側主要系統功能的開啟,或中間軟體層功能的開啟(如:RTOS、JPEG解碼器,檔案系統等)
右側是系統及外設模組的具體配置

GPIO

在這裡插入圖片描述
輸入輸出配置

WWDG1

在這裡插入圖片描述


分頻:128
視窗:64
初始值:127
開啟中斷
只能在計數器在64~127之間進行復位,提前清零與超時都會導致rst
在這裡插入圖片描述

NVIC

在這裡插入圖片描述
開啟並設定優先順序
在這裡插入圖片描述
自動生成中斷程式碼

程式碼部分

main.c

  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
		if(!HAL_GPIO_ReadPin(GPIOH,GPIO_PIN_2))
			HAL_WWDG_Refresh(&hwwdg1);
		HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0); } /* USER CODE END 3 */

stm32h7xx_it.h

/* USER CODE BEGIN 1 */
void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef* hwwdg)
{
	HAL_WWDG_Refresh(hwwdg);
}
/* USER CODE END 1 */

若沒有及時喂狗將會被rst

未知問題

在視窗之外進行WWDG清零,有時會正確引發RST,但是有時會進入HardFault_Handler