39 lines
1.7 KiB
C
39 lines
1.7 KiB
C
#include "watchdog.h"
|
||
#include "stm32f10x_iwdg.h"
|
||
|
||
/********************************************************************************
|
||
* @file watchdog.c
|
||
* @author 晏诚科技 Mr.Wang
|
||
* @version V1.0.0
|
||
* @date 11-Dec-2018
|
||
* @brief 提供硬件看门狗相关驱动
|
||
******************************************************************************
|
||
* @驱动功能:
|
||
* 1、STM32硬件看门狗初始化
|
||
* 2、喂狗接口
|
||
*******************************************************************************/
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Watchdog_Init( void )
|
||
* 功能说明: 看门狗功能块初始化
|
||
* 原理说明: STM32自带硬件看门狗,程序定时调用 void Watchdog_Feed( void )函数喂狗放防止程序跑飞
|
||
*************************************************************************************************/
|
||
void Watchdog_Init( void )
|
||
{
|
||
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);// 使能对寄存器IWDG_PR和IWDG_RLR的写操作*/
|
||
IWDG_SetPrescaler(IWDG_Prescaler_256); //看门狗时钟分频,40K/256=156HZ(6.4ms)
|
||
IWDG_SetReload(781); //喂狗时间 5s/6.4MS=781 .注意不能大于0xfff This parameter must be a number between 0 and 0x0FFF.
|
||
IWDG_ReloadCounter(); //照IWDG重装载寄存器的值重装载IWDG计数器
|
||
IWDG_Enable(); //使能IWDG
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Watchdog_Feed( void )
|
||
* 功能说明: 喂狗函数
|
||
*************************************************************************************************/
|
||
void Watchdog_Feed( void )
|
||
{
|
||
IWDG_ReloadCounter(); //reload重新装载计数器
|
||
}
|
||
|