2020.11.06第五天学习总结
主要内容为编写系统时钟函数
RCC是Reset Clock Control,即复位和时钟控制器。
1.设置系统时钟SYSCLK
AHB分频因子(决定HCLK等于多少)
APB2分频因子(决定PCLK2等于多少)
APB1分频因子(决定PCLK1等于多少)
各个外设的分频因子
控制AHB、APB2、APB1三条总线时钟的开启。
每个外设的时钟的开启
对于SYSCLK、HCLK、PCLK2、PCLK1这四个时钟的配置(库函数的标准配置)一般是:HCLK=SYSCLK=PLLCLK=180MHz
PCLK2=HCLK/2=90MHz
PCLK1=HCLK/4=45MHz
2.HSE高速外部时钟信号(常用25MHz的无源晶振)
可由有源晶振和无源晶振提供
频率4MHz~26MHz
使用有源晶振时,时钟从OSC_IN引脚进入,OSC_OUT引脚悬空
选用无源晶振时,时钟从OSC_IN何OSC_OUT进入,并配有谐振电容。
3.PLL锁相环
对时钟进行倍频,然后把时钟输出到各个功能部件。
有两个,主PLL和专用PLLI2S(均由HSE和HSI提供输入信号)。
主PLL有两路时钟输出:
第一个输出时钟PLLCLK用于系统时钟(PLLCLK=HSE*N/(M*P)),
第二个用于USB OTG FS的时钟,RNG和SDIO时钟。
专用PLLI2S用于生成精确始终。
4.SYSCLK系统时钟
可源于HSI、PLLCLK、HSE,具体由时钟配置寄存器RCC_CFGR的SW位配置。(常用系统时钟SYSCLK=PLLCLK=180MHz)
5.HCLK AHB 总线时钟
SYSCLK经AHB预分配器分配之后得到的时钟叫APB总线时钟,即HCLK。
分频因子具体由时钟配置寄存器RCC_CFGR的HPRE位设置。
大部分外设时钟是经过HCLK分频得到的。
6.PCLK2 APB2总线时钟
高速的总线时钟,高速的外设要挂载到这条总线上。
7.PCLK1 APB1总线时钟
低速的总线时钟(最高为45MHz),低速的外设挂载到这条总线上。
8.使用HSE时,设置系统时钟的步骤
(1)开启HSE,并等待HSE稳定
(2)设置AHB、APB2、APB1的预分频因子
(3)设置PLL的时钟来源
设置VCO输入时钟,分频因子 m
设置VCO输出时钟,倍频因子 n
设置PLLCLK时钟分频因子 p
设置OTG FS,SDIO,RNG时钟分频因子 q
(4)开启PLL,并等待PLL稳定
(5)把PLLCLK切换为系统时钟SYSCLK
(6)读取时钟切换态位,确保PLLCLK被选为系统时钟。