微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端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配置即可。

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

  1. STM32时钟树分析

    对于刚接触STM32的时钟树,对时钟树的理解,可以重点先思考两个问题: 1.时钟从哪里来:时钟源. 2.时钟怎么供给STM32的系统工作:时钟的流向(输入-->处理-->输出) 下面以ST ...

  2. STM32—时钟树(结合系统时钟函数理解)

    时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...

  3. stm32时钟树_先学STM8,还是学STM32?

    有朋友问:我学习过51,接下来我是先学习STM8,还是STM32呢? 物联网STM32入门 - 直播课程 - 创客学院​www.makeru.com.cn 嵌入式开发直播课 - STM32 USART ...

  4. STM32时钟树学习笔记

    直接上时钟树 在学习STM32的时候时钟的配置是一直必不可少的过程,也许你用别人的代码很爽,但是真正的做项目还是使用自己建立的工程最靠谱. 上图为用的原子哥的一张时钟树的图片. 下面是经常用到的全局宏 ...

  5. esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  6. stm32时钟树_STM32中的时钟

    时序在数字电路中的作用,就像通信中用到的载波,载波并不起眼,但是很重要.时钟也一样,现象上只是某种频率波峰波谷跳动,一成不变.但是有了它,就像人类的历史有了时间轴一样,什么时候该干什么事才有了可能.程 ...

  7. 一文读懂STM32时钟树(时钟系统)(以STM32F767为例)

    STM32时钟系统 导读 时钟系统的构成 总结 导读 我在刚开始接触STM32/单片机的时候看到它的时钟系统/时钟树,都会感觉懵懵的,这是个啥?它想要告诉我哪方面的数据?特此一文记录一下学习心得. 时 ...

  8. STM32时钟树解析

    本人之前其实也用STM32做过一些小东西,但因为时钟的初始化一般是直接在SystemInit时钟系统初始化函数里直接配置为72MHz,所以对于STM32的时钟框图并没有怎么理会,今天刚好有空就重新看了 ...

  9. stm32时钟树讲解

    1.管理好时钟,功耗才能更低

最新文章

  1. ORACLE SQL: 经典查询练手第二篇
  2. 某程序员总结大厂程序员性格:阿里出来的是人精!百度出来的脾气好!美图出来的一根筋!头条出来的心高气傲!京东出来的满嘴是兄弟!...
  3. 转载:原生JavaScript实现Ajax
  4. 【ABAP】供应商进项税额查询报表开发
  5. C++学习笔记:类的成员函数的声明与定义
  6. 走向.NET架构设计—第五章—业务层模式,原则,实践(中篇)
  7. 什么是CAS机制?(进阶篇)
  8. 阿里的技术愿景_技术技能的另一面:领域知识和长期愿景
  9. localdatetime 获取天_LocalDateTime的一些用法
  10. 关于captcha使用The _imagingft C module is not installed的错误处理
  11. from __future__ import的用法
  12. avalon 笔记---Mr.wing
  13. 为什么阿里规定需要在事务注解 @Transactional 中指定 rollbackFor?这...
  14. SpringBoot 中解决跨域请求
  15. MacOS 按键精灵推荐
  16. JavaScript形而上的单例模式
  17. oracle清除过期备份,rman delete obsolete删除过期备份集问题
  18. Windows主机连接Windows虚拟机上Oracle数据库
  19. 方案设计阶段的准备工作
  20. 循环语句—do…while循环

热门文章

  1. Python:尝试对知乎网验证码进行处理
  2. Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false”
  3. BZOJ4401 块的计数
  4. DS博客作业04--树大作业
  5. [Cake] 1. CI中的Cake
  6. 201621123068 作业08-集合
  7. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理
  8. Strusts2笔记7--国际化
  9. 结构体成员的引用方法
  10. loadrunner支持https协议的操作方法-经验总结