ST意法半导体
直播中

何夏庄

7年用户 940经验值
私信 关注
[问答]

STM32F4 - HardFault_Handler / HAL_TIMEOUT错误问题如何解决?

你好!
我们有 2 个使用 STM32F446RE MCU 的相同定制 PCB,我们遇到以下问题,我们无法找出发生了什么。
我将尽力解释此类问题,使用简单的 LED 闪烁程序测试威廉希尔官方网站 板:
  • while (1)
  •   {
  •         HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_10);
  •         HAL_Delay(500);
  •         HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_9);
  •         HAL_Delay(500);
  •     /* USER CODE END WHILE */
  •     /* USER CODE BEGIN 3 */
  •   }
董事会1:
程序有时会进入 HardFault:
  • HCLK 时钟 = 82 Mhz
  • HSI RC = 16 兆赫兹
程序在 HardFault_Handler 处停止:
  • HCLK 时钟 >= 83 Mhz
  • HSI RC = 16 兆赫兹
HSE = 16 Mhz 时也会发生同样的情况
板 2:
程序有时会进入 HardFault:
  • HCLK 时钟 = 75 Mhz
  • HSI RC = 16 兆赫兹
程序在 HardFault_Handler 处停止:
  • HCLK 时钟 >= 76 Mhz
  • HSI RC = 16 兆赫兹
在 HSE 中,调用 SystemClock_Config() 时会出现 HAL_tiMEOUT 错误,在 HAL_RCC_OscConfig 内部调试时会出现以下值:
  • 滴答开始= 101
  • HAL_GetTick() -> uwTick 冻结在 101
外部晶体与 26pF 电容相连
我为 PCB 添加了 .ioc、main.c 和前后铜层的图片以及原理图。










回帖(1)

康选谦

2023-2-3 11:11:21
如果 osc 威廉希尔官方网站 不稳定,那么除了使用内部 HSI RC osc 之外没有软件修复 - 尽管频率精度与外部晶体不匹配。
可能能够破解 PCB 以缩短走线并添加正确/更好的上限值(将走线存根切割到跳线和第二个晶体)。
举报

更多回帖

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