149 lines
5.0 KiB
C
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
|
|
}
|
|
|
|
|
|
|