ZNKT-ST-M/BSP/Src/WatchDog.c
2025-01-15 16:02:53 +08:00

149 lines
5.0 KiB
C

/******************************************************************
*版权所有 (C)2019, 河南翔宇医疗有限公司南京分公司
*
*文件名称: WatchDog.c
*文件标识:
*内容摘要:
*其它说明:
*当前版本:
*作 者:
*完成日期:
*
*修改记录1:
* 修改日期:
* 版 本 号:
* 修 改 人:
* 修改内容:
******************************************************************/
/******************************************************************
* 头文件 *
******************************************************************/
#include "WatchDog.h"
#include "Include.h"
#include "Delay.h"
#include "stm32f4xx_iwdg.h"
/******************************************************************
* 常量 *
******************************************************************/
/******************************************************************
* 宏定义 *
******************************************************************/
/******************************************************************
* 数据类型 *
******************************************************************/
/******************************************************************
* 全局变量声明 *
******************************************************************/
/******************************************************************
* 全局函数声明 *
******************************************************************/
/******************************************************************
*函数名称: void CloseHardWatchDogGpioInit(void)
*功能描述: 关闭硬件看门狗
*输入参数: void
*输出参数: void
*返回值: void
*其它说明:
*修改日期 版本号 修改人 修改内容
*---------------------------------------------------
* 2019 / 10 / 17 ZhangLing
******************************************************************/
void CloseHardWatchDogGpioInit(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(WDG_WDI_GPIO_CLK | WDG_EN_GPIO_CLK, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStruct.GPIO_Pin = WDG_WDI_GPIO_PIN;
GPIO_Init(WDG_WDI_GPIO_PORT, &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = WDG_EN_GPIO_PIN;
GPIO_Init(WDG_EN_GPIO_PORT, &GPIO_InitStruct);
GPIO_SetBits(WDG_EN_GPIO_PORT, WDG_EN_GPIO_PIN);
GPIO_ResetBits(WDG_WDI_GPIO_PORT, WDG_WDI_GPIO_PIN);
}
/******************************************************************
*函数名称: void WatchDogGpioInit(void)
*功能描述: 看门狗gpio初始化
*输入参数: void
*输出参数: void
*返回值: void
*其它说明:
*修改日期 版本号 修改人 修改内容
*---------------------------------------------------
* 2019 / 10 / 17 ZhangLing
******************************************************************/
void WatchDogGpioInit(void)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器写保护
IWDG_SetPrescaler(IWDG_Prescaler_4); //设置 IWDG 分频系数
IWDG_SetReload(1200); //设置 IWDG 装载值
IWDG_ReloadCounter(); //reload
}
/******************************************************************
*函数名称: void WatchDogEnable(void)
*功能描述: 使能看门狗
*输入参数: void
*输出参数: void
*返回值: void
*其它说明:
*修改日期 版本号 修改人 修改内容
*---------------------------------------------------
* 2019 / 10 / 17 ZhangLing
******************************************************************/
void WatchDogEnable(void)
{
IWDG_Enable(); //使能看门狗
}
/******************************************************************
*函数名称: void WatchDogDisable(void)
*功能描述: 失能看门狗
*输入参数: void
*输出参数: void
*返回值: void
*其它说明:
*修改日期 版本号 修改人 修改内容
*---------------------------------------------------
* 2019 / 10 / 17 ZhangLing
******************************************************************/
void WatchDogDisable(void)
{
GPIO_SetBits(WDG_EN_GPIO_PORT, WDG_EN_GPIO_PIN);
}
/******************************************************************
*函数名称: void FeedDog(void)
*功能描述: 喂狗
*输入参数: void
*输出参数: void
*返回值: void
*其它说明:
*修改日期 版本号 修改人 修改内容
*---------------------------------------------------
* 2019 / 10 / 17 ZhangLing
******************************************************************/
void FeedDog(void)
{
IWDG_ReloadCounter(); //reload
}