一 STM32时钟系统

前言

意法半导体32位系列微控制器,作为目前市场上主流的32位MCU,所占市场份额很大,相应的教程,应用,网上资源也是非常丰富,而且讲的也非常好。所以我写的这个系列博客不是学习教程,而是我工作中用到一些模块时,费了一些功夫才搞明白,个人觉得比较有价值的东西,下面开始咱们的学习之旅吧(以stm32f103c8t6为例)。

RC振荡器与晶振

我们都知道在配置单片机时钟时可以选择配置为HSI内部时钟和HSE外部时钟,其中HSI指的就是芯片内置的RC振荡器,HSE值得就是外置晶振,下面做一下比较

RC振荡器:由电阻和电容构成的振荡器称为RC振荡器
优点:成本低,就是一个电阻和电容
缺点:由于电阻和电容的精度问题导致振荡频率会有误差,同时受到温湿度的影响,这个和元器件的工艺有关

晶振:石英晶体谐振器
优点:相对来说比较稳定
缺点:成本比较高
一般在具体的产品中很少使用RC振荡器,因为很多时候单片机需要一个精度的机器周期做定时,通讯等用途,当然了根据实际需求,如果对精度要求不高也可以选用内部时钟来降低成本。

时钟树

在这里插入图片描述

上图是stm32f103 reference manual chapter 7章节的时钟树截图,这一章节对时钟系统的各个时钟源有详细的解释,并且从图中也可以大致看出各个模块时钟来源,大小分配,详细了解看手册,此处做些说明
1.芯片内置的8MHZ RC振荡器时钟,可以作为系统时钟源以较低的代价(不需要外部电路),启动时间也比较短,但是即使校准之后还是没有HSE外部时钟精度高
2.每个时钟源都可以根据需要选择性的打开或者关闭,从而降低功耗。
3.总线及总线时钟
几个前置分频器可以用来配置AHB,APB1,APB2,其中AHB和APB2称为“high speed APB”,即高速总线时钟,APB1称为“low speed APB”,
(APB1总线时钟又称PCLK1,一般由HCLK分频得到,最大36MHZ)
(APB2总线时钟又称PCLK2,一般由HCLK分频得到,最大72MHZ)

时钟配置文件

stm32f103的时钟配置文件为system_stm32f10x.c,该文件中主要用到的函数有两个
1.void SystemInit (void)
该函数功能主要是初始化嵌入式flash接口,PLL,更新系统时钟变量
2.static void SetSysClock(void)
通过调用相应的函数来设置系统时钟频率,HCLK,PCLK2和PCLK1预分频系数
在这里插入图片描述
函数里面具体怎么设置,查阅资料都可以找到,此处不多说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

foreverwlh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值