/****************************************************************** *版权所有 (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 }