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

举报
不脱发的程序猿 发表于 2021/01/01 00:14:54 2021/01/01
【摘要】 微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端8位单片机诸如51,AVR,PIC等单片机,其也具备自身的一个时钟树系统,但其中的绝大部分是不受用户控制的,亦即在单片机上电后,...

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

文章来源: handsome-man.blog.csdn.net,作者:不脱发的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:handsome-man.blog.csdn.net/article/details/103060860

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。