STM32
直播中

淡淡的爱

11年用户 872经验值
私信 关注
[问答]

STM32CubeMX中的时钟如何配置?

STM32CubeMX中的时钟如何配置?

回帖(1)

李勇

2021-9-27 16:04:41
  数据手册中的时钟树:

  

  

STM32CubeMX中的时钟配置图:

  

  

  时钟源

  四个独立的时钟源
HSE:高速外部时钟
无源晶振或者有源晶振提供,频率从4-16MHZ不等,通常使用8M的无源晶振
HSI:高速内部时钟
来源为RC振荡器,频率为8M,精度不高
LSI:低速内部时钟
RC振荡器,频率为40KHZ,提供低功耗时钟
LSE:低速外部时钟
频率为32.768KHZ的石英晶体
  “一个不独立的时钟”
锁相环时钟:来源为HSI/2,HSE或者HSE/2, 该时钟的作用主要是通过锁相环倍频器之后作为系统时钟一个来源
  举个例子:Keil编写程序是默认的时钟为72Mhz,其实是这么来的:外部晶振(HSE)提供的8MHz(与电路板上的晶振的相关)通过PLLXTPRE分频器后,进入PLLSRC选择开关,进而通过PLLMUL锁相环进行倍频(x9)后,为系统提供72MHz的系统时钟(SYSCLK)。之后是AHB预分频器对时钟信号进行分频,然后为低速外设提供时钟。
  或者内部RC振荡器(HSI) 为8MHz /2 为4MHz 进入PLLSRC选择开关,通过PLLMUL锁相环进行倍频(x18)后 为72MHz
  系统时钟SYSCLK
系统时钟来源主要有三个:
  

  • HSI振荡器时钟
  • HSE振荡器时钟
  • PLL时钟
    最大为72MHZ
    时钟树看起来比较复杂,其实我们以系统时钟为桥梁来理解就行了,在上面的时钟树中,系统时钟左边的时钟是独立的时钟源,右边的部分是外设时钟,通过系统时钟的分频得到各个外设的时钟。
    其他时钟
    我们先看左下方的MCO时钟输出,这个相当于是一个对外输出的时钟,可以用示波器来测试,可以输出的时钟包括:PLLCLK/2、HSI、HSE以及系统时钟SYSCLK

  然后是看门狗时钟: 看门狗是单片机里的一种技术(软硬件都可以),其目的是为了保护芯片避免其进入死循环(或者说程序跑飞)。看门狗有一个输入端和一个输出端。看门狗和单片机程序的主体部分连接,如果主体部分运行正常,那么每一段时间就会给看门狗的输入端一个信号,这时候看门狗就会知道程序运行正常,就不会做出反应。如果看门狗较长一段时间内没有收到信号,说明程序运行不正常,此时由看门狗输出一个信号,该信号会让单片机的主体程序复位进而起到保护的作用。**“每一段时间”**指的就是看门狗时钟,只由LSI提供。
  RTC时钟(Real_Time Clock),实时时钟,可以由LSI/LSE 或者HSE/128提供
  USB时钟:STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取(唯一的),,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分