本人做了一块板子,采用的是STM32F767VITx,开发环境是Keil_MDK,用HAL库,外部晶振25MHz。现在的问题是当系统时钟为216MHz时,初始化SystemClock_Config();就进入到HardFault_Handler错误,或者报如下错误
通过debug发现在“HAL_RCC_ClockConfig()”中的 “tickstart = HAL_GetTick();”处加断点再单步执行(Step one line)就可以通过。 如果将系统时钟降到160MHz以下就不存在这个问题了。是什么原因希望各位大侠能指点一番,不胜感激!!!
........
/* Get Start Tick*/
tickstart = HAL_GetTick(); 在此加断点
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
{
if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
{
return HAL_TIMEOUT;
}
}
...... |