调用HAL_Delay函数时,处理器(STM32F746NG-DISCO)卡在HAL_delay函数中。我尝试更改 HAL_Delay() 函数进行调试,如下所示
__weak void HAL_Delay(uint32_t Delay)
{
uint32_t tickstart = HAL_GetTick();
uint32_t wait = Delay;
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
{
wait += (uint32_t)(uwTickFreq);
}
uint32_t tickEnd = HAL_GetTick();
while ((tickEnd - tickstart) < wait)
{
}
}
如上所示,tickEnd 始终设置为
<optimized out>
。代码是使用touchGFX生成的,它使用TIM6作为系统基准时钟,最初应用程序运行正常,我不确定这个问题的根源,有人能帮我弄清楚吗。