(STM32笔记)九、RCC时钟树与时钟 第一部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者

之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。

九、RCC时钟树与时钟

九、RCC时钟树与时钟

1、时钟树


HSE时钟

  • HSE:High Speed External Clock signal,即高速的外部时钟。

  • 来源:无源晶振(4-16M),通常使用8M,通过倍频得到72M。

无缘晶振需要配两个电容

补充:

有源晶振一般4个脚,一个电源,一个接地,一个信号输出端,一个NC(空脚)。有源晶振自身就能震动。

  • 控制:

时钟控制寄存器(RCC_CR)的位16:HSEON控制开关

时钟控制寄存器(RCC_CR)的位17:HSERDY显示时钟是否就绪(仅可读)

HSI时钟

  • HSI:Low Speed Internal Clock signal,高速的内部时钟。

  • 来源:芯片内部,大小为8M,当HSE故障时,系统时钟会自动切换到HSI,直到HSE启动成功。

  • 控制:

时钟控制寄存器(RCC_CR)的位0:HSION控制开关

时钟控制寄存器(RCC_CR)的位1:HSIRDY显示时钟是否就绪(仅可读)

锁相环时钟

  • 锁相环时钟:PLLCLK

  • 来源:(HSI/2、HSE)经过倍频所得。

    其中HSI一定会/2分频,HSE可以选择是否/2分频。

    选择其中一个时钟进行倍频,即可得到锁相环时钟。

  • 控制:

时钟配置寄存器(RCC_CFGR)位16:PLLSRC

时钟配置寄存器(RCC_CFGR)位17:PLLXTPRE

时钟配置寄存器(RCC_CFGR)位21:18:PLLMUL

注意:PLL时钟源头使用HSI/2的时候,PLLMUL最大只能是16,这个时候PLLCLK最大只能是64M,小于ST官方推荐的最大时钟72M。

系统时钟

  • 锁相环时钟:SYSCLK,最高为72M(ST官方推荐的)

  • 来源:HSI、HSE、PLLCLK。

  • 控制:

时钟配置寄存器(RCC_CFGR)位1:0:SW

时钟配置寄存器(RCC_CFGR)位3:2:SWS(仅可读)

注意:通常的配置是SYSCLK=PLLCLK=72M。

HCLK时钟

  • HCLK:AHB高速总线时钟,速度最高为72M。为AHB总线的外设提供时钟、为Cortex系统定时器提供时钟(SysTick)、为内核提供时钟(FCLK)。

AHB:advanced high-performance bus。

  • 来源:系统时钟分频得到,一般设置HCLK=SYSCLK=72M
  • 控制:

时钟配置寄存器(RCC_CFGR)位7:4:HPRE

PCLK1时钟

  • PCLK1:APB1低速总线时钟,最高为36M,为APB1总线的外设提供时钟。
    2倍频之后则为APB1总线的定时器2-7提供时钟,最大为72M。

如HCLK时钟为72M时,如果不用APB1外设,则分频系数为1(72M);如果使用APB1外设,则分频系数为2(此时36M),同时再倍频2给定时器2-7提供时钟(还是72M)。

  • 来源:APB1分频得到,一般配置PCLK1=HCLK/2=36M
  • 控制:

时钟配置寄存器(RCC_CFGR)位10:8:PPRE1

PCLK2时钟

  • PCLK2:APB2高速总线时钟,最高为72M。为APB1总线的外设提供时钟。为APB1总线的定时器1和8提供时钟,最大为72M。
  • 来源:APB2分频得到,一般配置PCLK1=HCLK=72M
  • 控制:

时钟配置寄存器(RCC_CFGR)位13:11:PPRE2

其中ADC时钟最大14MHz,还需要对PCLK2时钟继续分频

时钟配置寄存器(RCC_CFGR)位15:14:ADCPRE

RTC时钟

  • RTC时钟:为芯片内部的RTC外设提供时钟。

  • 来源:HSE_RTC(HSE分频得到)、LSE(外部32.768KHZ的晶体提供)、LSI(40KHZ)。

  • 控制:

备份域控制寄存器(RCC_BDCR)位9:8:RTCSEL

独立看门狗时钟

  • IWDGCLK,由LSI提供

MCO时钟输出

  • MCO:microcontroller clock output,微控制器时钟输出引脚,由PA8复用所得。

  • 来源:PLLCLK/2,HSE、HSI、SYSCLK

  • 控制:CRGR:MCO

时钟配置寄存器(RCC_CFGR)位26:24:MCO

时钟安全系统(CSS)

时钟控制寄存器(RCC_CR)的位19:CSSON控制开关

相关推荐
合宙Luat几秒前
合宙LuatOS开发板Core_Air780EP使用说明
单片机·嵌入式硬件·物联网·硬件工程·lua
手打猪大屁26 分钟前
STM32——串口通信(发送/接收数据与中断函数应用)
经验分享·笔记·stm32·单片机·嵌入式硬件
日记成书34 分钟前
【无线通信发展史⑨】1791年路易吉·伽伐尼-关于动物电的研究与1800年亚历山大·伏打伯爵-电池:伏打电池
网络·人工智能·学习·职场和发展·信息与通信
贾saisai42 分钟前
Xilinx系FPGA学习笔记(四)VIO、ISSP(Altera)及串口学习
笔记·学习·fpga开发
月夕花晨3741 小时前
C++学习笔记(13)
c++·笔记·学习
probably1211 小时前
学习记录之Java学习笔记3
java·笔记·学习
yyqzjw2 小时前
【STM32】cubemx配置GPIO
stm32·单片机·嵌入式硬件
东华果汁哥2 小时前
【深度学习 CV方向】图像算法工程师 职业发展路线,以及学习路线
深度学习·学习·算法
Alan-Xia2 小时前
Vue响应式进阶常用API之effectScope、getCurrentScope、onScopeDispose学习
前端·vue.js·学习
漆黑的莫莫2 小时前
经验笔记:前端堆栈分配
前端·笔记