打印
[其他ST产品]

stm32时钟初始化过程浅析

[复制链接]
178|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qn7a12|  楼主 | 2023-1-30 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32时钟初始化过程浅析

(大致梳理了一下32启动过程中时钟的初始化过程)

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

使用特权

评论回复
评论
qn7a12 2023-1-30 22:31 回复TA
———————————————— 版权声明:本文为CSDN博主「一个逍遥怪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_42704360/article/details/116355882 
沙发
qn7a12|  楼主 | 2023-1-30 22:32 | 只看该作者
所以说,system_stm32f1xx.c中定义的SystemCoreClock,仅仅影响初始化之初HAL_Init()中HAL_InitTick()配置的嘀嗒定时器时基,并且仅仅影响这一会,因为在HAL_RCC_ClockConfig()函数中更新了HCLK时钟之后又重新配置了时基。(原话:/* Configure the source of time base considering new system clocks settings*/)

那么问题来了,system_stm32f1xx.c中定义的SystemCoreClock有什么用呢?
只是为了在重启之后——系统时钟配置好之前为芯片提供“心跳”??

方法总结:

    不明白32的一些功能,那就从头去捋一遍噻,从启动文件开始,用上调试功能,事半功倍。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

402

帖子

0

粉丝