2021.4.14 第四次 STM32时钟系统

STM32时钟系统

一. STM32时钟系统介绍

二. 时钟系统框图

三. 时钟配置相关函数

1.1 时钟系统介绍:

时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。STM32本身十分复杂,外设非常多 但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设备,有些高速,有些低速,如果都用高速时钟,势必造成浪费 并且,同一个电路,时钟越快功耗越快,同时抗电磁干扰能力也就越弱,所以较为复杂的MCU都是采用多时钟源的方法来解决这些问题。所以便有了STM32的时钟系统和时钟树

1.2 总括:

  1. STM32时钟系统主要的目的就是给相对独立的外设模块提供时钟,也是为了降低整个芯片的耗能。
  2. 系统时钟,是处理器运行时间基准(每一条机器指令一个时钟周期)
    时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。
  3. 一个单片机内提供多个不同的系统时钟,可以适应更多的应用场合。
  4. 不同的功能模块会有不同的时钟上限,因此提供不同的时钟,也能在一个单片机内放置更多的功能模块。
  5. 对不同模块的时钟增加开启和关闭功能,可以降低单片机的功耗
  6. STM32为了低功耗,他将所有的外设时钟都设置为disable(不使能),用到什么外设,只要打开对应外设的时钟就可以, 其他的没用到的可以还是disable(不使能),这样耗能就会减少。 这就是为什么不管你配置什么功能都需要先打开对应的时钟的原因

2.1 时钟系统框图

在这里插入图片描述

2.2、时钟系统结构总结

  1. STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。(打开时钟源后要有一段时间延迟待其稳定!)
      ①、HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高。
      ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时
    钟源,频率范围为4MHz~16MHz。
     ③、LSI是低速内部时钟,RC振荡器,频率为40kHz,提供低功耗时钟。WDG
     ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC
     ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。
     
    倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

  2. 系统时钟SYSCLK可来源于三个时钟源:
    ①、HSI振荡器时钟
    ②、HSE振荡器时钟
    ③、PLL时钟

3.STM32可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL
输出的2分频、HSI、HSE、或者系统时钟。

4.几个重要时钟:
SYSCLK(系统时钟) :
AHB总线时钟
APB1总线时钟(低速): 速度最高36MHz
APB2总线时钟(高速): 速度最高72MHz
PLL时钟

任何一个外设在使用之前,必须首先使能其相应的时钟。

3.1 RCC相关配置寄存器

以F1为例:
调用结构体里面各个成员即对应寄存器:(斜体为常用配置)都是32位!
typedef struct
{
__IO uint32_t CR; //HSI,HSE,CSS,PLL等的使能和就绪标志位
__IO uint32_t CFGR; //PLL等的时钟源选择,分频系数设定
__IO uint32_t CIR; // 清除/使能 时钟就绪中断
__IO uint32_t APB2RSTR; //APB2线上外设复位寄存器
__IO uint32_t APB1RSTR; //APB1线上外设复位寄存器
__IO uint32_t AHBENR; //DMA、SDIO等时钟使能
__IO uint32_t APB2ENR; //APB2线上外设时钟使能
__IO uint32_t APB1ENR; //APB1线上外设时钟使能
__IO uint32_t BDCR; //备份域控制寄存器
__IO uint32_t CSR; //控制状态寄存器
} RCC_TypeDef;

对于时钟控制寄存器(RC)
在这里插入图片描述
在这里插入图片描述
通过控制位来控制寄存器的模式
过程:
首先打开HSE
等待就绪
设置三个时钟例如分频系数在这里插入图片描述
确定三个与系统时钟之间的关系
设置CFGR寄存器,确定PLL寄存器的时钟来源以及倍频系数
使能PLL寄存器
把系统时钟切换到PLL时钟上(系统时钟以PLL时钟为来源)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值