(一)
stm32系统时钟可有HSI,HSE,PLL来驱动。如下图
HSE时钟:外部的晶体振荡器,大少:4-16MHZ为好;
HSI时钟:内部的8MHZ,由上图可以看出,HSI可以直接作为系统时钟,也可以经过两分频后作为PLL的时钟输入。这个时钟不需要任何外部的零件就可以 工作,只不是精度没有那么高
LSE时钟:这个时钟的大小为32.768,低速外部的晶振,为实时时钟提供精确的时钟源,在这个模式里必须提供一个32.768kHz频率的外部时钟源。你可以通过设置在备份域控制寄存器(RCC_BDCR)里的LSEBYP和LSEON位来选择这个模式。具有50%占空比的外部时钟信号(方波,正弦波或三角波)必须连到OSC32_IN管脚,同时保证OSC32_OUT管脚悬空。
LSI时钟是低功耗时候用到,在待机模式下为独立看门狗和自动唤醒单元提供时钟,大小大约为32k-60k之间。LSI RC可以通过控制/状态寄存器(RCC_CSR)里的LSION位来启动或关闭。
在控制/状态寄存器(RCC_CSR)里的LSIRDY位指示低速内部振荡器是否稳定。在启动阶段,
直到这个位被硬件设置为1后,此时钟才被释放。如果在时钟中断寄存器(RCC_CIR)里被允
许,将产生LSI中断申请。
(二)时钟系统的选择
当复位的时候HSI被选为系统时钟。只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟或PLL稳定),从一个时钟源到另一个
时钟源的切换才会发生。在被选择时钟源没有就绪时,系统时钟的切换不会发生。直至目标
时钟源就绪,才发生切换。
(三)时钟输出
1 微控制器允许输出时钟信号到外部MCO管脚
2 相应的GPIO端口寄存器必须被配置为相应功能。以下四个时钟信号可被选作MCO时钟:
SYSCLK
HSI
HSE
除2 的PLL 时钟
时钟的选择由时钟配置寄存器(RCC_CFGR)中的MCO[2:0]位控制。
(四)RCC寄存器描述
a 时钟控制寄存器(RCC_CR)
偏移地址:0x00;复位值0x0000 0083;
31 - 26 保留,读始终为0;
25 PLLRDY 始终就绪标志当 锁定后硬件置1PLLDRY == 1 时 PLL被定;
24 PLLON PLL使能,软件置位或清零,当进入待机模式的时候,硬件清零,PLL ==0 关闭;
23-20 保留,读为0
19 CSSON时钟安全系统使能 0 关闭
18 HSEBYE外部高速时钟旁路在调试模式下由软件置1或清零来旁路外部晶体振荡器。只有在外部1-25MHz振荡器关闭的情况下,该位才可以写入。
0:外部1-25MHz振荡器没有旁路
1:外部1-25MHz外部晶体振荡器被旁路。
17 HSERDY:外部高速时钟就绪标志,0:外部1-25MHz时钟没有就绪1:外部1-25MHz时钟就绪
16HSEON:外部高速时钟使能由软件置1或清零。当进入待机和停止模式时,该位由硬件清零,关闭外部时钟。当外部时钟被用作或被选择将要作为系统时钟时,该位不能被清零。
0:HSE振荡器关闭
1:HSE振荡器开启
15-8HSICAL[7:0]:内部高速时钟校准在系统启动时,这些位被自动初始化
7-3HSITRIM[4:0]:内部高速时钟调整由软件写入来调整内部高速时钟,它们被叠加在HSICAL[5:0]数值上。
2保留,始终读为0。..
1HSIRDY:内部高速时钟就绪标志由硬件置1来指示内部8MHz时钟已经稳定。在HSION位清零后,该位需要6个内部时钟周期清零。
0:内部8MHz时钟没有就绪
1:内部8MHz时钟就绪
0HSION:内部高速时钟使能由软件置1或清零。
当从待机和停止模式返回或用作系统时钟的外部1-25MHz时钟发生故障时,该位由硬件置1来启动内部8MHz的RC振荡器。当内部8MHz时钟被直接或间接地用作或被选择将要作为系统时钟时,该位不能被清零。0:内部8MHz时钟关闭1:内部8MHz时钟开启
b 时钟控制寄存器(RCC_CR)
偏移地址: 04h
复位值: 0000 0000h
31-27 保留
26-24 为控制时钟输出,软件置位清零 0xx 没有输出
100 系统时钟输出
101 内部的8MHz的RC振荡器时钟输出.
110:外部的1-25振荡器时钟输出
101:PLL时钟2分频输出
23保留
22USBPRE:USB预分频
21-18 PLLMUL:PLL倍频系数
17 PLLXTPRE:HSE分频器作为PLL输入由软件设置来分频HSE后作为PLL输入时钟。该位只有在PLL关闭时才可以被写入。
0:HSE不分频
1:HSE 2分频
16 PLLSRC:PLL输入时钟源
由软件设置来选择PLL输入时钟源。该位只有在PLL关闭时才可以被写入。0:HSI时钟2分频后作为PLL输入时钟1:HSE时钟作为PLL输入时钟。
15-14 ADCPRE:ADC预分频
13-11 PPRE2:高速APB预分频(APB2)
10-8 PPRE1:低速APB预分频(APB1)
7-4HPRE: AHB预分频
3-2SWS:系统时钟切换状态
1-0 SW:系统时钟切换
c 时钟中断寄存器 (RCC_CIR)
d APB2 外设复位寄存器 (RCC_APB2RSTR)
e APB1 外设复位寄存器 (RCC_APB1RSTR)
f AHB 外设时钟使能寄存器 (RCC_AHBENR)
g APB2 外设时钟使能寄存器(RCC_APB2ENR)
h APB1 外设时钟使能寄存器(RCC_APB1ENR)
i 备份域控制寄存器 (RCC_BDCR)
j 控制/状态寄存器 (RCC_CSR)
不列出所有寄存器了,这样看得很麻烦,不直观,后面将以例子来说明。