写点什么

参照 STM32 时钟树配置 STM32CubeMX Clock Configuration(STM32L011G4U6 为例)

发布于: 2021 年 05 月 13 日
参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)

微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端 8 位单片机诸如 51,AVR,PIC 等单片机,其也具备自身的一个时钟树系统,但其中的绝大部分是不受用户控制的,亦即在单片机上电后,时钟树就固定在某种不可更改的状态(假设单片机处于正常工作的状态)。比如 51 单片机使用典型的 12MHz 晶振作为时钟源,则外设如 IO 口、定时器、串口等设备的驱动时钟速率便已经是固定的,用户无法将此时钟速率更改,除非更换晶振。

而 STM32 微控制器的时钟树则是可配置的,其时钟输入源与最终达到外设处的时钟速率不再有固定的关系,本文将详细解析 STM32 微控制器的时钟树和 STM32CubeMX Clock Configuration 的配置关系。

STM32 时钟树中有 6 种时钟源,如下所示:

  • HSE:高速外部时钟;

  • LSE:低速外部时钟;

  • HSI:高速内部时钟;

  • LSI:低速内部时钟;

  • MSI:多速内部时钟;

  • PLLCLK:锁相环倍频输出。

以 STM32L011G4U6 微控制器为例,时钟树如下,左侧为 6 种时钟源时钟,经过一些运算和转换到达右边的系统时钟和外设时钟。

时钟树并不难读懂,沿着导线耐心一步步可以很快理解,例如系统时钟可支持 MSI、HSI16、HSE 和 PLLCLK 四种时钟源配置,其中 HSI16 时钟源可支持倍频器分频(1 倍和 4 倍),PLLCLK 锁相环倍频输出可支持 HSI16 和 HSE 时钟源两种时钟源配置,并且进行倍频输出(预分频寄存器和时钟倍频寄存器配置)。

此时打开 STM32CubeMX,选择 STM32L011G4U6 微控制器,打开 Clock Configuration,可以发现和 STM32L011G4U6 时钟树基本一致,选择合适的时钟源和倍频,即可便捷快速实现相关配置(时钟频率越低,功耗越小,过低可能部分外设无法驱动)。

需要注意,部分配置不可选是由于没开启相关的 IO 配置,例如 HSE 时钟源。

开启相关 IO 配置即可。



发布于: 2021 年 05 月 13 日阅读数: 17
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

【公众号】美男子玩编程

评论

发布
暂无评论
参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)