其他分享
首页 > 其他分享> > STM32使用HAL库操作实例(6)-(IWDG)独立看门狗实验

STM32使用HAL库操作实例(6)-(IWDG)独立看门狗实验

作者:互联网

一、看门狗介绍

二、STM32CubeMX配置(本文使用的STM32CubeMX版本为5.6.0)
思路:每进入喂狗一次,串口打印输出一次喂狗成功
1.MCU选型
本例程使用的为STM32L051C8T6型号
2.使能时钟

3.设置GPIO口

4.开启独立看门狗
①配置状态

由图可知LSI频率为37KHZ,看门狗定义周期时间的方式和基本、通用类型可编程定时器完全一致,假设定义1秒周期的看门狗定时器,超过1秒不喂狗就进行系统复位,计算方式如下:这里


提示:由于LSI振荡器精度有限,在运行过程中会存在一定的误差。

②串口打印部分的配置可参看前面的文章(4)串口实验配置

5.配置STM32CubeMX生成工程文件


6.点击GENERATE CODE生成工程文件

二、KEIL程序
1.相关函数:

独立看门狗初始化函数,此函数初始化了在STM32CubeMX内设置的参数,系统已经处理好了,并已经添加在了main函数内;

MX_IWDG_Init();  //独立看门狗初始化

喂狗调用函数,这个需要我们自行添加到main函数的while内;

HAL_IWDG_Refresh(&hiwdg);

本例程的main.c

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();

MX_USART1_UART_Init();

/* USER CODE BEGIN 2 */

HAL_UART_Transmit_IT(&huart1 ,aTxBuffer,sizeof(aTxBuffer)); //sizeof()可读取目标数组长度

HAL_UART_Receive_IT(&huart1,aRxBuffer,1);

printf("\r\nSTM32L051C8T6 开发板独立看门狗实验\r\n");

/* USER CODE END 2 */


/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1)

{

printf("\n\r 开始喂狗 !!!\n\r");

HAL_IWDG_Refresh(&hiwdg);

printf("\n\r 喂狗成功 !!!\n\r");

HAL_Delay(500);

/* USER CODE END WHILE */


/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

}
2.编译文件,下载。即可,实现效果如下:

源工程文件代码下载:https://download.csdn.net/download/cheng_nnan/12333614

标签:CODE,HAL,看门狗,计数器,IWDG,USER,喂狗
来源: https://blog.csdn.net/u014357799/article/details/112062659