stm32时钟初始化过程浅析
(大致梳理了一下32启动过程中时钟的初始化过程)
加载main函数之前(启动代码中LDR R0, =__main之前),HCLK总线时钟默认上电是上一次断电前配置的频率
加载到main时,被设定为system_stm32f1xx.c中定义的SystemCoreClock的初始值;
加载到SystemClock_Config()函数时,调用了HAL_RCC_ClockConfig()函数,该函数的最后根据前面配置好的时钟源、分频等更新了SystemCoreClock的值,即更新了总线时钟(因为32要求的时钟是固定的,比如外部时钟8M,所以直接可以根据时钟源和分频确定时钟频率)
正常运行,HCLK总线时钟保持这个时钟
|