嵌入式--STM32的时钟系统分析及相关函数理解

本文详细介绍了STM32的系统架构,包括驱动单元和被动单元,如DCode总线、系统总线、DMA和内部存储器。接着阐述了STM32的系统时钟配置,涵盖时钟源、时钟分频和系统时钟选择。此外,还解析了关键的时钟寄存器如RCC_CR、RCC_CFGR等以及相关库函数,用于外设时钟的使能和配置。最后,重点讨论了系统时钟初始化过程,包括HSI、HSE、PLL的配置,以达到72MHz的系统时钟频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、STM32系统架构

STM32 主系统主要由四个驱动单元和四个被动单元构成。

四个驱动单元是:(1)内核 DCode 总线(2)系统总线(3)通用 DMA1(4)通用 DMA2  

四个被动单元是:(1)AHB 到 APB 的桥:连接所有的 APB 设备(2)内部 FlASH 闪存(3)内部 SRAM(4)FSMC;

AHB/APB 桥:这两个桥在 AHB 和 2 个 APB 总线间提供同步连接, APB1 操作速度限于36MHz,APB2 操作速度全速72MHz。

 二、STM32系统时钟

时钟是单片机的核心,如果没有时钟STM32所有外设都不起作用,因此在进行外设配置时,都要首先开启相对应的时钟。

 1.在 STM32 中有五个时钟源,为高速内部时钟(HSI)、 高速外部时钟(HSE)、低速内部时钟(LSI)、 低速外部时钟(LSE)、 锁相环倍频输出(PLL)。(1)其中HSI是由内部RC电路产生时钟,频率为 8MHz。(2)HSE 是高速外部时钟, 可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz,一般都是接8MHz。(3)LSI也是由内部RC 振荡器产生时钟,频率为 40kHz, 独立看门狗的时钟源只能是 LSI,同时 LSI 还可以作为 RTC 的时钟源。(4)LSE也是接外部时钟源,频率为 32.768kHz 的石英晶体,主要作为 RTC 的时钟源。(5)PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2、 HSE 或者 HSE/2。倍频可选择为2~16 倍,但是其输出频率最大不得超过 72MHz。

2.系统时钟(SYSCLK)是STM32最重要的时钟,所有外设时钟源都是来自系统时钟。系统时钟主要来自三种时钟源1.HSI、2.PLLCLK、3.HSE。如果系统时钟选择HSE作为时钟来源,当HSE失效则由时钟监视系统(CSS)自动切换为HSI时钟源。

3.RTC实时时钟可以来自1.HSE/128、2.LSE、3.LSI

4.MCO可以输出芯片内部时钟,是PA8引脚。可以输出SYSCLK、HSI、HSE、PLLCLK/2。

5.USB时钟源来自系统时钟,在中间还要经过USB分频器,频率为48MHz。 

6. HCLK、PCLK1、TIMxCLK、PCLK2、TIM1CLK、ADCCLK都是经过相对应的分频器或倍成器获得最终时钟频率。其中HCLK最高72MHz,PCLK1最高36MHz、PCLK2最高72MHz。

三、常用的时钟寄存器

1.时钟控制寄存器(RCC_CR)
 主要是对HSI、HSE、CSS、PLL等时钟源使能和就绪标志位。使能之后需要因时钟会出现振荡,因此需要通过就绪标志位判断是否稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值