ST意法半导体
直播中

陈韵瑄

8年用户 1063经验值
私信 关注
[问答]

WWDG不工作并且CPU挂起的原因?怎么解决?

我公司使用的是STM32G0071CB芯片。但我遇到了一些问题。
每当我需要重启主板时,我也必须重置 STM32G0071CB。
所以我使用 WWDG 来重置芯片。
但有时,芯片没有复位,CPU 挂起。(一次 400 次或随机发生)
我使用下面的代码进行初始化和重置。
我没有发现我的代码有任何问题。
你能给我任何指导吗?
感谢您对先进的支持。

=代码=
  • void Init_WWDG(void)
  • {
  •    /* Enable the peripheral clock WWDG */
  •   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_WWDG);
  •   LL_WWDG_SetPrescaler(WWDG,LL_WWDG_PRESCALER_8); /* (1) */
  •   LL_WWDG_SetWindow(WWDG,0x7E);     /* (2) */
  •   LL_WWDG_SetCounter(WWDG, 0x7E);     /* (3) */
  • }
  • void Reset(void)
  • {
  •   SCB->VTOR = 0x0;  // Reset the Vector Table back to the bootloader
  •   FLASH->CR |= FLASH_CR_LOCK_Msk;
  •   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_WWDG);
  •   LL_WWDG_SetPrescaler(WWDG, LL_WWDG_PRESCALER_8);
  •   LL_WWDG_SetCounter(WWDG, 1);
  •   LL_WWDG_Enable(WWDG);
  • }



回帖(1)

王娟

2022-12-27 11:36:29
如果在第 13 行之后发生中断怎么办?引导加载程序中的某些中断处理程序会启动 WWDG 吗?
尝试在第 13 行之前禁用中断(恕我直言,根本不需要)。
举报

更多回帖

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