STM32
直播中

斗地主之神

8年用户 792经验值
擅长:嵌入式技术
私信 关注
[问答]

如何去配置STM32F030看门狗的代码

如何去配置STM32F030独立看门狗的代码?

如何去配置STM32F030窗口看门狗的代码?

回帖(1)

李雨欣

2021-9-18 15:27:54
  STM32F030的看门狗分独立看门狗和窗口看门狗。
  独立看门狗
  使用独立的LSI时钟,因此一旦开启就无法停止,除非复位。所以当使用stop模式时,就需要定时唤醒喂狗。
  独立看门狗配置代码如下:
  if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)
  {
  RCC_ClearFlag();
  }
  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
  IWDG_SetPrescaler(IWDG_Prescaler_128);
  IWDG_SetReload(LsiFreq / 128); //1s
  IWDG_ReloadCounter();
  IWDG_Enable();
  窗口看门狗
  使用PCLK1时钟。睡眠模式下,时钟停止。看门狗也停止计数。但喂狗有严格的时间限制,必须在规定的某段时间内喂狗。喂早和喂迟了都会导致系统复位。
  窗口看门狗配置代码如下:
  if (RCC_GetFlagStatus(RCC_FLAG_WWDGRST) != RESET)
  {
  RCC_ClearFlag();
  }
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
  WWDG_SetPrescaler(WWDG_Prescaler_8);
  //refresh window is: ~683 * (127-98)= 19.8ms 《 refresh window 《 ~683 * 64 = 43.7ms
  WWDG_SetWindowValue(98);
  WWDG_Enable(127);
  bsp_StartAutoTimer(TMR_WWDG,TMR_PERIOD_30MS);
举报

更多回帖

发帖
×
20
完善资料,
赚取积分