关于STM32的系统时钟、PLL倍频系数、AHB预分频器、APB预分频器的值在什么时候,在哪里设置的

STM32的时钟配置涉及到HCLK、PCLK1、PCLK2等,这些时钟由分频器和PLL锁相环设定。在启动文件中,SystemInit()函数负责设置这些参数,例如在STM32F103中,HSE被启用,通过PLL实现9倍频,达到72MHz系统时钟。AHB预分频器设为1,APB2预分频器也为1,APB1预分频器设为2。了解时钟树有助于深入理解STM32的工作原理。
摘要由CSDN通过智能技术生成

很多人平时用STM32的时候一般都不会考虑STM32的内部各种时钟(HCLK、PCLK1、PCLK2等)问题。只知道一个系统时钟频率。但是当你看到STM32的时钟树的时候有没有发现STM32内部的各个时钟都是由分频器或者PLL锁相环来确定的。STM32时钟树图(如下图)

时钟树那么问题就来了,这些分频器和锁相环的参数以及系统时钟源的选择是从哪里设置的呢?是什么时候设置的?
答案:在system_stm32f10x.c文件和启动文件中。
(这里以STM32f103为例)
STM32启动文件中会调用SystemInit()函数来设置分频器和锁相环的参数以及系统时钟的选择等。
而SystemInit()函数,就是在system_stm32f10x.c文件中定义的。
打开该文件可以看到如下注释:
在这里插入图片描述然后深入这个函数内部,
在这里插入图片描述使能高速外部晶振(HSE),(我的板子焊接的是8MHz的晶振)
在这里插入图片描述PLL锁相环9倍频。8MHz的晶振九倍频就是72MHz了,也就是系统时钟频率(SYSCLK)。
在这里插入图片描述第1行,这里就是配置AHB预分频器的值为1,即等于系统时钟频率。HCLK=72MHz。
第2行,APB2预分频器的值也是1,也等于系统时钟频率。PCLK2=72MHz。
第3行,APB1预分频器的值是2分频,也就是HCKL的二分频,PCLK1=36MH。

以上就是STM32f103初始化时候的各种时钟的初始值,也就是默认值。
建议大家学习一下时钟树,有利于加深对STM32的理解。

以上内容仅供参考,如有不当或错误之处,望指出。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值