【1】STM32的时钟共有三类
(1)纯内部(内部RC电路)
HSI( 内部高速时钟)
LSI(内部低速时钟)
(2)内外部(内部RC电路配合外部晶振)
HSE
LSE
(3)纯外部(使用别人的时钟,通过下面两个端口输入)
OSC_IN
OSC32_IN
【2】三类时钟信号说明
(1)纯内部
特点:上电后很快就可以准备好(快速)、即使可以校正也无法校正精确(不精确)、用于刚上电的时钟(32默认时钟可修改)
(2)内外部
特点:准备时间长(慢)、不可校正但是精确(精确)、代替默认时钟(需软件设置)
(3)纯外部
特点:用于多机互动,提供同步时钟、四条通路可选
【3】STM32的时钟树
【4】STM32的时钟框图详解
1、总体配置
(1)2套独立时钟:HSx和LSx
(2)纯内部:HSI、LSI
(3)内外部:HSE、LSE
(4)纯外部:OSC_IN、OSC32_IN
2、PLL
(1)2个可选PLL源(PLLSRC控制)
(2)倍频可设置(PLLMUL控制)
3、分频
(1)注意时钟节点名称:HSI、HSE、LSI、LSE、PLLCLK、SYSCLK、USBCLK、HCLK、FCLK、PCLK1、PCLK2、ADCCLK、RTCCLK、IWDGCLK、
4、systick和MCO
5、时钟相关的寄存器基地址,查memory map图得到,然后配合偏移量得到寄存器地址。
(1)RCC_CR 0x40021000 重要(2)RCC_CFGR 0x40021004 重要(3)RCC_CIR
(4)RCC_APB2RSTR 复位外设时钟的(5)RCC_APB1RSTR
(6)RCC_AHBENR 外设时钟开关 重要(7)RCC_APB2ENR 重要(8)RCC_APB1ENR 重要(9)RCC_BDCR
(10)RCC_CSR
寄存器位一般有三种:状态位、开关位、设置值位
【5】上电后的默认配置图(在外部晶振正常的情况下,根据时钟相关寄存器的复位值推算而来)
说明:梯形门决定哪条路通(有且只有一条路通)、矩形改频不会阻挡通路,只会改变频率。
可见,上电后HSI为默认时钟,前面已经说了,它很快,但是不精确,如果你不介意就可以使用它,如果你需要高精确度就换用HSE!
虽然后面的内部外设都能到达,但其实还有一个没有画的门没有打开(为了省电,默认全部关闭),所以使用内部外设前需要使能。具体看下一篇文章《STM32之点灯仪式》