# 时钟树

## 在哪里可以找到相关资料

* 时钟树图----参考手册的**6.2时钟**章节

![](https://s2.loli.net/2023/03/11/3OXQpxwHRPc7WJC.png)

* 哪些外设用了哪个时钟--参考手册**2.1系统构架**小节

![](https://s2.loli.net/2023/03/11/7UnASLRXDgoad65.png)

## 时钟来源

共有4个时钟来源，序号1--HSI内部高速时钟，序号2--HSE外部高速，序号3-LSE低速外部，序号4--LSI低速内部，如何区分：

H代表High高速，E代表Extern外部，I代表Interal内部

区别总结如下：

注意：

* 系统时钟源只能使用高速源，低速源只能用作RTC

总结如下表

![](https://s2.loli.net/2023/03/11/IrnYvX9QHckAhU1.png)

![](https://s2.loli.net/2023/03/11/AGer4S7UdKxIcDR.png)

## RTC RCC 滴答定时器 系统时钟

* RTC是实时时钟，简单来说我们涉及到时钟，日历，闹钟的设计，一般要求精度高，有外部低速时首选外部低速需要用到这个外设寄存器，若无外部低速，可以选择外部高速
* RCC是复位和时钟控制寄存器，管理着大部分外设的时钟，比如APB1,APB2总线上的外设
* 滴答定时器（Systick），产生精准的定时，常用于FreeRTOS，以及延迟函数，在时钟树末端有一个至Coretx系统时钟其实表示的就是Systick而不是系统时钟
*

    ![](https://s2.loli.net/2023/03/11/edto398CXlc5U4Y.png)
* 系统时钟，实际上在时钟树上表示SYSCLK

## 时钟树分析

![](https://s2.loli.net/2023/03/11/Qq6eGhO371H8dyS.png)

### 怎么看时钟树

> 序号1处的梯形图标实际上表示了一个选择器，选择输入源，在实际操作中对应了寄存器，以1为例，我们可以选择以外部高速时钟源以1倍频（原来的频率）还是/2的频率输入后续的时钟链路

### 分析系统时钟SYSCLK的时钟链路

以正点原子的为例，使用8M的外部晶振作为高速时钟源，进来后在PLLXTPRE的分叉口选择不直接输入SW选择器，也不以/2的频率进入PLLXTPRE，而是以8M完整的频率进入PLLXTPRE，然后来到PLLSRC进入PLLMUL，以9倍频，即72M输出来到SW选择器，SW选择器以PLLCLK为输入源，即我们倍频得到的72M作为系统时钟的来源，供给后续链路

### 时钟树简图

原版时钟树较复杂，可简化如下，如：SYSCLK可以选择来自HSI的原生输入，也可以来自HSE的原生输入，也可以选择来自PLL的2-16倍频。

![](https://s2.loli.net/2023/03/11/nAXqHzNQmpkdErc.png)

## MCO CSS FCLK

> MCO可以用以向外部输出时钟，引脚复用在PA8上
>
> CSS时钟安全系统,如果HSE启动失败，切换到HSI，可进NMI中断
>
> FCLK自由运行时钟,用于采样中断和调试模块计时，休眠仍有效
