STM32F4外设驱动系列之IWDG
IWDG相关寄存器
IWDG_KR:关键字寄存器
IWDG_PR:预分频器寄存器
IWDG_RLR:重载寄存器
IWDG_SR:状态寄存器
寄存器详细介绍请参考《STM32F4xx参考手册》
IWDG初始化函数与参数
IWDG相关函数
HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg)
HAL_StatusTypeDef HAL_IWDG_Start(IWDG_HandleTypeDef *hiwdg)
HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg)
IWDG初始化参数结构体
typedef struct
{
IWDG_TypeDef *Instance;
IWDG_InitTypeDef Init;
HAL_LockTypeDef Lock;
__IO HAL_IWDG_StateTypeDef State;
}IWDG_HandleTypeDef
相关函数与结构体请参见HAL库源代码
IWDG初始化实例
//IWDG初始化函数
//prer:预分频值(IWDG_PRESCALER_4-IWDG_PRESCALER_256)
//rlr:自动重装载值(0-0xfff)
//喂狗时间计算(预估):Tout = ((4*2^prer)*rlr)/32 (ms)
//IWDG使用LSI(32kHz左右)作为时钟源,因此不需要初始化外设时钟
void IWDG_Init(u8 prer, u16 rlr)
{
IWDG_Handler.Instance = IWDG;
IWDG_Handler.Init.Prescaler = prer; //设置IWDG分频系数
IWDG_Handler.Init.Reload = rlr; //设置IWDG重载数值
HAL_IWDG_Init(&IWDG_Handler);
HAL_IWDG_Start(&IWDG_Handler); //开启IWDG
}
//IWDG喂狗函数
void IWDG_Feed(void)
{
HAL_IWDG_Refresh(&IWDG_Handler); //重装载,即喂狗
}