![]()
STM32F10x共有5个时钟源: H高速 L低速 I内部 E外部
1、HSI振荡器时钟
2、HSE振荡器时钟
3、PLL时钟
4、LSE振荡器时钟
5、LSI振荡器时钟
三种不同的时钟源可被用来驱动系统时钟(SYSCLK):
● HSI振荡器时钟
● HSE振荡器时钟
● PLL时钟
通过时钟配置寄存器(RCC_CFGR)bit(0-3)配置
![]()
这些设备有以下2种二级时钟源:
● 40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。
● 32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。
当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。
用户可通过多个预分频器配置AHB、高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。SDIO接口的时钟频率固定为HCLK/2。USB为48MHZ通过PLL分频1或1.5倍得到。
RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟由高速APB2时钟经2、4、6或8分频后获得。
通过时钟控制寄存器(RCC_CR)相应位来使能相应的时钟源
![]()
PLL时钟源
![]()
PLL 通过时钟配置寄存器(RCC_CFGR)选择HSI或HSE时钟倍频
然后确定倍频系数(最大速度72MHZ)
![]()
挂载在AHB总线上的时钟配置
![]()
AHB时钟由系统时钟分频得到
APB2、APB2时钟由AHB时钟倍频得到,其中APB1最大不超过36MHZ
定时器时钟频率分配由硬件按以下2种情况自动设置:
如果相应的APB预分频系数是1,定时器的时钟频率与所在APB总线频率一致。
否则,定时器的时钟频率被设为与其相连的APB总线频率的2倍。
ADC时钟由APB2总线时钟分频得到,最大不超过14MHZ,否则转换精度会由很大的影响。