[HAL库学习之路]5.IWDG-独立看门狗

来源:互联网 发布:出售淘宝买家信息 编辑:程序博客网 时间:2024/05/22 15:52

记录自己的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 */}