时钟--单片机的心跳

什么是时钟
时钟,可以理解为人的心跳 , 它确定着系统的运行速度,也即我们外设的运行速度,时钟越快功耗越大,所以在32的时钟系统比较复杂,为的是降低功耗,这部分外设我们称为:RCC (reset clock复位和时钟控制器) 。
系统框图刨析
系统时钟()
系统时钟来源可以是:HSI、、HSE,然后系统时钟在通过AHB预分频器分频给到不同外设总线,比如APB1 APB2…最大为72Mhz , 所以我们现在要来看的就是这三个时钟源(总共五个 , 下面一一列举)
时钟源 HSE 外部高速时钟信号
可以由有源或无源晶振提供,一般是4-16MHZ,如果选择有源晶振,时钟从进入,无源时,从 和进入,一般接入8M的无源晶振 。
HSI 内部高速时钟信号
HSI 是高速内部时钟,RC 振荡器,频率为 8MHz

时钟--单片机的心跳

文章插图
LSI
LSI 是低速内部时钟 , RC 振荡器 , 频率为 40kHz 。独立看门狗的时钟源只能是 LSI , 同 时 LSI 还可以作为 RTC 的时钟源 。
LSE
LSE 是低速外部时钟 , 接频率为 32. 的石英晶体,主要作为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、、ADC1、ADC2、所有普通 IO 口(PA~PE)、第二功能 IO 口等 。
使用配置
选择HSE和LSE的激励源 , 因为这两都是靠外部激励工作的,这里直接选晶振
(img--33)]
[外链图片转存中…(img--34)]
配置的话就按从左往右顺序来,记得考虑一些时钟的最大值,然后主要就是做点乘除运算而已,一般系统时钟来源我们选择PLL 。