FREERTOS中 使用硬件看门狗的方法–基于STM32F4平台
背景介绍
看了很多关于看门狗的文章,发现在FREERTOS中实现看门狗没有很好的应用资料,最近在项目中实现了硬件看门狗,平台采用STM32F4系列,采用了RTOS ,使用CUBEMX生成代码.
一、硬件看门狗的硬件初始化
watchdog.c
#include "main.h"
#include "bsp_watchdog.h"
/**
* @brief 初始化控制LED的IO
* @param 无
* @retval 无
*/
void bsp_harddog_init(void)
{
/*定义一个GPIO_InitTypeDef类型的结构体*/
GPIO_InitTypeDef GPIO_InitStruct;
/*开启 GPIO外设时钟*/
__GPIOC_CLK_ENABLE();//wdi
GPIO_InitStruct.Pin = WDI_Pin; //选择要控制的GPIO引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //设置引脚的输出类型为推挽输出
GPIO_InitStruct.Pull = GPIO_PULLUP;//设置引脚为上拉模式
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;//GPIO_SPEED_HIGH; //设置引脚速率为高速
HAL_GPIO_Init(WDI_GPIO_Port, &GPIO_InitStruct); //调用库函数,使用上面配置的GPIO_InitStructure初始化GPIO