HAL库的例程中是先调用HAL_Init()这个函数,然后调用SystemClock_Config(),但是SysTick的配置是在HAL_Init()中做的,然后在用SystemColck_Config()配置时钟,不是会导致SysTick()实际的时钟频率和配置的时钟频率不一致的情况吗
HAL_Init()已经初始化了SysTick的时钟源的频率,再用SystemClock_Config()初始化系统时钟后,那么SysTick实际的时钟源的频率不就可能发生变化吗,那么和开始用HAL_Init()初始化时所用的时钟频率是不同的了,那么后面再用库中提供的延时函数不就不准确了吗
启动初始化的时钟是72MHz未必满足要求,后面初始化的才是自己需要的时钟频率
而HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)又调用了 HAL_InitTick (TICK_INT_PRIORITY);重新获得了新的系统时钟。 HAL_InitTick (TICK_INT_PRIORITY);函数中有得到系统时钟的函数HAL_RCC_GetHCLKFreq(),
所以即使修改了系统时钟,但是systick也重新获得了新的系统时钟。
多谢解惑,我看的不够仔细,呵呵
多谢楼主指点,现已知晓
前面有人解释