| 123456789101112131415161718192021222324252627282930 |
- #include "hal_wdg.h"
- #include "sys_timer.h"
- IWDG_HandleTypeDef IWDG_Handler; //独立看门狗句柄
- //初始化独立看门狗
- //prer:分频数:IWDG_PRESCALER_4~IWDG_PRESCALER_256
- //rlr:自动重装载值,0~0XFFF.
- //时间计算(大概):Tout=((4*2^prer)*rlr)/32 (ms).
- void HAL_WdgInit(uint8_t prer,uint16_t rlr)
- {
- IWDG_Handler.Instance=IWDG;
- IWDG_Handler.Init.Prescaler=prer; //设置IWDG分频系数
- IWDG_Handler.Init.Reload=rlr; //重装载值
- HAL_IWDG_Init(&IWDG_Handler); //初始化IWDG,默认会开启独立看门狗
- }
- static void wdg_feed_timer_callback()
- {
- HAL_IWDG_Refresh(&IWDG_Handler);//喂狗
- }
- //喂独立看门狗
- void HAL_WdgFeed(void)
- {
- HAL_TimerRegister(wdg_feed_timer_callback, 1000);
- }
|