1. 程式人生 > >[HAL庫學習之路]5.IWDG-獨立看門狗

[HAL庫學習之路]5.IWDG-獨立看門狗

記錄自己的STM32的HAL庫的學習之路,不定期更新…

一、Pinout

這裡寫圖片描述

二、Clock Configuration

這裡寫圖片描述

三、Configuration

配置GPIO
這裡寫圖片描述

配置IWDG
這裡寫圖片描述

四、Generate Code

這裡寫圖片描述

程式碼
主函式首先點亮兩個LED 1S後熄滅,在主迴圈裡檢測按鍵輸入進行喂狗,如果在4s內進行喂狗,則1個LED閃爍,否則程式復位。

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */
MX_GPIO_Init(); MX_IWDG_Init(); /* USER CODE BEGIN 2 */ HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET); /* USER CODE END 2 */
/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8) == GPIO_PIN_RESET) { HAL_IWDG_Refresh(&hiwdg); } HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); HAL_Delay(500); } /* USER CODE END 3 */ }