STM32f103系列单片机 RCC——使用HSE/HSI配置时钟

1 RCC主要作用——时钟部分

2 RCC框图剖析——时钟部分

2.1 系统时钟

2.1.1 HSE高速外部时钟信号

2.1.2 PLL时钟源

2.1.3PLL时钟PLLCLK

2.1.4 系统时钟SYSCLK

2.1.5 AHB总线时钟HCLK

2.1.6 APB2总线时钟HCLK2

2.1.7 APB1总线时钟HCLK1

2.2 其他时钟

2.2.1 USB时钟 

2.2.2 Cortex系统时钟

2.2.3 ADC时钟

2.2.4 RTC时钟、独立看门狗时钟

2.2.5 MCO时钟输出

1 RCC主要作用——时钟部分

设置系统时钟SYSCLK、设置AHB分频因子(决定HCLK等于多少)、设置APB2分频因子(决定PCLK2等于多少)、设置APB1因子(决定PCLK1等于多少)、设置各个外设的分频因子;控制AHB、APB2和APB1这三条总线时钟的开启、控制每个外设的时钟开启。对于SYSCLK、HCLK、PCLK2、PCLK1这4个时钟的配置一般是:PCLK2=HCLK=SYSCLK=PLLCLK=72MHzPCLK1=HCLK/2=36MHz。这个时钟配置也是库函数的标准配置,我们用的最多的就是这个。

2 RCC框图剖析——时钟部分

对于时钟树,单纯讲理论的话会比较枯燥,如果选取一条主线,并辅以代码,先后主次讲解的话会很容易,而且记忆还更深刻。这里选取库函数时钟系统时钟库函数:SetSysClockTo72(),以这个函数的编写流程来讲解时钟树,这个函数也是我们用库的时候默认的系统时钟设置函数。该函数的功能是利用HSE把时钟设置为:PCLK2=HCLK=SYSCLK=PLLCLK=72MHz。下面就以这个代码的流程为主线来分析时钟树。如图所示:

代码流程在时钟树种以数字的大小顺序①-⑦标识。

2.1 系统时钟

2.1.1 HSE高速外部时钟信号

HSE是高速的外部时钟信号,可以由有源晶振或者无源晶振提供,频率为4~16MHz。当使用有源晶振时,时钟从OSC_IN引脚进入,OSC_OUT引脚悬空;当使用无源晶振时,时钟从OSC_IN和OSC_OUT进入,并且要配谐振电容。

HSE最常使用的就是8MHz的无源晶振。当确定PLL时钟来源的时候,HSE可以不分频或者2分频,这个由时钟配置寄存器CGFGR的位17,即PLLXTPRE设置。这里设置位HSE不分频。

2.1.2 PLL时钟源

PLL时钟来源可以有两个:一个是HSE,另外一个是HSI/2/具体用哪个由时钟配置寄存器CFGR的位16,即PLLSRVC设置。HSI是内部高速的时钟信号频率为8MHz,根据温度和环境的情况频率会漂移,一般不作为PLL的时钟来源。这里我们选HSE作为PLL的时钟来源。

2.1.3PLL时钟PLLCLK

通过设置PLL的倍频因子,可以对PLL的时钟来源进行倍频,倍频因子可以是2~16,具体设置成多少,由时钟配置寄存器CFGR的位21~18,即PLLMUL[3:0]设置。这里设置位9倍频,因为上一步设置PLL的时钟来源位HSE=8MHz,所以经过PLL倍频之后的PLL时钟为:PLLCLK=8M×9=72MHz

72MHz是ST官方推荐的稳定运行时钟,如果想超频的话,增大倍频因子即可,最高为128MHz。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞来客isdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值