rcc时钟模块并不好理解,初次接触我也是一头雾水,而且我真正掌握它的时候也比较晚,是我在学习uc/os-ii,需要分析时钟时才有了深刻认识。但在学习中我却一定要把放在了前列,因为这是整个嵌入式最重要的基础之一,可以说是m3芯片的心脏。初学者理解是比较困难,但是掌握清晰对于嵌入式操作系统特别是timer定时器以及通讯领域具有重大意义。
下面进入正题,先上一张rcc模块的结构图:
初看此图是不是感觉太复杂了,事实上我第一次看这张图的时候也是的,完全理不清结构,不过不用担心,下面我就分层带你来理解这幅图。
(1)时钟源(4个晶振源,1个中介源)
hsi(rc):内部高速晶振,~8mhz
hse(osc):外部高速晶振(与电路设计时选择有关,25mhz)
lse(osc):外部低速晶振(默认为32.768khz)
lsi(rc):内部低速晶振,~40khz
pllclk:锁向环倍频输出,最大频率小于72mhz,注:pllclk来源hse,hse/2,hsi/2
(2)系统时钟源
sysclk:系统时钟
来源hsi,pllclk,hse,若css(时钟监视系统)检测到hse失效,sysclk = hsi;
(3)主要输出时钟源
hclk:高性能总线时钟(sysclk通过ahb prescaler,最高72mhz)
pclk1:外设1区域时钟(通过apb1 prescaler,最高36mhz)
pclk2:外设2区域时钟(通过apb2 prescaler,最高72mhz)
此外apb1,apb2外设时钟除了给对应外设区域提供时钟外,还可通过timerx prescaler分配不同的定时器时钟。
adcclk:adc外设时钟(pclk2通过adc prescaler)
usbclk:通用串行接口时钟(pllclk通过usb prescaler,等于48mhz)
rtcclk:实时时钟,来源lsi,lse,hse/128
iwdgclk:独立看门狗时钟,来源lsi
mco:输出内部时钟
从上面看,我们前面学到的gpiod外设还有后面的usart等的时钟都没有提到,为什么,其实它们包含在pclk1,pclk2这两个外设区域时钟里,也就是说他们的外设时钟来源于该区域的时钟。下面是stm32fxxx固件函数库中15.2.22以及15.2.23所提到的图,包含所有外设对应的区域:
pclk1时钟区域:
pclk2时钟区域:
了解了这些其实已经对系统时钟掌握差不多了,下面我就以寄存器控制方式展现嵌入式时钟的配置(库函数操作对于理解时钟配置过程的帮助并不大,特别只是单纯调用而没有理解每个函数内容的情况下)。
(4)系统时钟配置实例(以使用hse晶振,最后系统时钟为50mhz为例)
注:rcc寄存器功能可参考《stm32中文参考手册》6.3(互联型产品)
通过上述方式就完成了时钟的一般外设的时钟初始化设置,配置系统时钟50mhz,apb2外设时钟50mhz,apb1外设时钟25mhz,理解了这些,延时时间和通讯速率等通过计算即可精确的知晓,这对于整个stm32的学习以及后续理解嵌入式实时操作系统都具有重要意义。
双联电位器接线方法_双联电位器接线注意事项
关于零欧姆电阻器额定功率
带宽,永远不够宽?
固态电池设计与性能估算工具
创维酷开智能电视系统5.5:基于用户体验 10s级开机速度
RCC时钟模块外设的详细分析和理解的资料概述
NVIDIA发布Riva语音AI和大型LLM软件
衍梓装备:业内首款改进工艺SiC栅氧制备设备
数的机器码表示,数的机器码表示原理图解
科大讯飞智能语音技术,能帮助听障人士“看见”声音 能人与人的交流
如何避免被物联网数据淹没_如何让数据变得更有益?
如何用一种级联的并解决嵌套的实体的三元组抽取模型?
任正非:遵循各国政府对安全问题的监管,未来发展做出合理调整
三星S10将放弃虹膜解锁,采用屏下指纹和3D结构光技术
iPhone8跌破4000元:苹果手机降价能否挽回销量
光电传感器的应用领域以及工作特点介绍
FPGA的引脚配置技巧 分配fpga管脚时该怎么选择
比特币交易究竟是如何运作的
达实智能大厦为用户提供全生命周期的智慧空间与低碳节能服务
自适应均衡器系统电子电路剖析 —电路图天天读(202)