一,看门狗配置
1.配置函数
#include "iwdg.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
IWDG_HandleTypeDef hiwdg;
/* IWDG init function */
void MX_IWDG_Init(void)
{
hiwdg.Instance = IWDG;
hiwdg.Init.Prescaler = IWDG_PRESCALER_64;
hiwdg.Init.Reload = 4095;
if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
{
Error_Handler();
}
}
/*
配置时间的方法:
公式:Tout=((4×2^PR) ×RLR)/LSI时钟频率
1.LSI时钟频率:即内部低速时钟,我用的37KHZ,由于时钟会有震荡按40KHZ算.
2.RLR:即Reload register (IWDG_RLR),就是上面的4095。
3.PR:即Prescaler register (IWDG_PR),预分频因子。64分频,
Tout=64*4095/40000;
6.552
因此喂狗时间间隔不能大于6.552s;
*/
2.喂狗函数
void main(void)
{
while(1)
{
HAL_IWDG_Refresh(&hiwdg);
//正常执行语句
}
}
/*
(1)切记不要再中断里喂狗
(2)如果遇到时间长的函数,例如等待判断,可以在里面加喂狗函数
*/