最近我在移植实时系统是遇到了一些问题,所以决定深入了解系统时钟的配置过程,当然想要学好stm32的小伙伴也有必要学习好时钟系统的配置,所以我将学习的过程再次记录,有写得不好的地方,望小伙伴指出。
之前我已经记录过一篇关于时钟系统的文章,对程序中不了解的地方可以看我之前的笔记“STM32时钟系统的配置寄存器和源码分析”。
这里我用的芯片是STM32F103C8T6,用的库函数是厂家提供的案例中提取出来的,这里可能和其他型号的mcu有细微差别,但是原理都是一样的。
在分析程序之前,需要了解一下相关寄存器的地址以及相应寄存器的作用,如下所示:
程序如下所示:
有不明白的地方只需要和相应的寄存器对应一下即可,相关的寄存说明请看“STM32时钟系统的配置寄存器和源码分析”。
这是根据文件中的宏定义选择相应的系统时钟配置函数,有需要更改的直接定义相应的宏即可,系统默认是的72MHz
- 使能外部高速时钟
- FLASH处理
由于CPU的速度比flash的速度要快,所以这里需要让cpu等待两个时钟
- 设置AHB、APB1、APB2预分频的值
- 设置PLL的时钟源和倍频
- 使能PLL时钟
- 设置PLL作为系统时钟源
注意: SetSysClockTo72函数的作用是配置HCLK为72MHz、PCLK1为36MHz、PCLK2为72MHz,如下图所示:

头文件是stm32f10x_rcc.h,源文件是stm32f10x_rcc.c
- 时钟使能配置
- 时钟相关配置
- 其他时钟配置
从以上程序可知,不论是通过对寄存器还是通过库函数配置系统时钟的流程都是一样的,所以在后续需要更改系统时钟时可以通过上面的这个库函数试试。
到此这篇时钟配置代码(时钟配置代码怎么写)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/50374.html