STM32时钟分析

时钟框图

  • STM32F103ZETx系统时钟框图(cubemx时钟配置界面)

    在这里插入图片描述

LSE/RTC/LSI

  • 左上角为LSE为外部低速时钟,晶振频率为32.768KHz,为RTC提供低功耗,但高精度的时钟源头
  • RTC(real-time clock)为独立的定时器,其提供了一组连续运行的计数器,可以使用适合的软件来提供时钟-日历功能,在cubemx中RTC默认连接的时钟源是LSI(低速内部时钟),如果更改RTC时钟源需要打开在Timers打开RTC功能。
  • LSI为内部低速时钟,时钟频率约为40kHZ实际为30~60kHZ之间,因为其有温度漂移,受温度影响较大,可以从图中看出看门狗(IWDG)的时钟就来自LSI

系统时钟及总线时钟

  • 系统时钟的来源可以有三个来源,分别为HSI,HSE,PLLCLK

  • HSI为内部高速时钟,频率为8MHz,HSE为外部高速时钟,需要根据实际的晶振频率来设置,通常为8MHz

  • 可以从图中看出如果系统时钟直接使用HSI或HSE的话,就是8MHz,频率较低,所以通常使用PLLCLK

  • PLLCLK为锁相环时钟,可以由HSI或者HSE倍频得来,通常使用HSE倍频得到,如果使用HSI的话,通常达不到官方推荐的系统时钟频率

  • 从图中可以看出系统时钟往右走,为AHB系统总线,其时钟为HCLK(具体设置时可以直接在设置HCLK最大频率然后回车,cubemx直接把分频和倍频的参数设置好)

  • AHB总线分出APB1总线和APB2总线,其时钟分别为PCLK1和PCLK2

  • 相应总线的挂载外设如下图所示(可详见STM32F10x的参考手册)

    在这里插入图片描述

图中其余时钟

  • MCO时钟(microcontroller clock output),可以通过想用的GPIO输出时钟信号,其来源如上图所示
  • Cortex系统定时器,(Cortex System timer),SysTick时钟,滴答定时器它能按设定的时间产生一次中断。控制工程代码中随处可见形如delay_ms()之函数,通常使用8分频,设置为9M
  • FCLK(free-runing clock)时钟是自主运行时钟,给cpu内核提供时钟信号,cpu的主频就是指此频率

总结

时钟源来源作用
HSE外部高速时钟通常经过分频倍频等操作为系统时钟提供时钟源
HSI内部高速时钟通常为系统时钟的备用时钟源
LSE外部低速时钟通常为RTC提供时钟源
LSI内部低速时钟通常为看门狗提供时钟源
MCO系统输出时钟源可以通过IO口输出系统的时钟信号
  • 当开启CSS时,外部高速时钟(HSE)无法工作时,会自动切换道HSI作为系统时钟,不过此时的频率只有8MHz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值