admin 管理员组

文章数量: 887021

时钟

什么是时钟

时钟,可以理解为人的心跳,它确定着系统的运行速度,也即我们外设的运行速度,时钟越快功耗越大,所以在32的时钟系统比较复杂,为的是降低功耗,这部分外设我们称为:RCC (reset clock control 复位和时钟控制器)。

系统框图刨析

系统时钟(SYSCLK)

系统时钟来源可以是:HSI、PLLCLK、HSE,然后系统时钟在通过AHB预分频器分频给到不同外设总线,比如APB1 APB2…最大为72Mhz,所以我们现在要来看的就是这三个时钟源(总共五个,下面一一列举)

时钟源

HSE 外部高速时钟信号

可以由有源或无源晶振提供,一般是4-16MHZ,如果选择有源晶振,时钟从OSC_IN进入,无源时,从OSC_IN 和OSC_OUT进入,一般接入8M的无源晶振。

HSI 内部高速时钟信号

HSI 是高速内部时钟,RC 振荡器,频率为 8MHz

LSI

LSI 是低速内部时钟,RC 振荡器,频率为 40kHz。独立看门狗的时钟源只能是 LSI,同 时 LSI 还可以作为 RTC 的时钟源。

LSE

LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体,主要作为RTC的时钟源

PLL

PLL 为锁相环倍频输出,其时钟输入源可选择为 HSI/2、HSE 或者 HSE/2。倍频可选择为2~16 倍,但是其输出频率最大不得超过 72MHz

MCO 是 STM32 的一个时钟输出 IO(PA8),它可以选择一个时钟信号输出,这个可以用于给外部系统提供时钟

分频给到各个外设使用

当系统时钟确实了使用哪个时钟源之后,接下来就要经过AHB预分频器,接着就是各个分支上的预分频器,以APB1预分频器为例,如果分频系数是2,那就要将当前频率除以2.

其中需要理解的是 APB1 和 APB2 的区别,APB1 上面连接的是低速外设,包括电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3 等等,APB2 上面连接的是高速外设包括 UART1、SPI1、Timer1、ADC1、ADC2、所有普通 IO 口(PA~PE)、第二功能 IO 口等。

使用CUBEMX配置

选择HSE和LSE的激励源,因为这两都是靠外部激励工作的,这里直接选晶振

(img-HHzZYRSc-1672562909433)]

[外链图片转存中…(img-1zzPrZAD-1672562909434)]

配置的话就按从左往右顺序来,记得考虑一些时钟的最大值,然后主要就是做点乘除运算而已,一般系统时钟来源我们选择PLL。

本文标签: 时钟