尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)

这篇具有很好参考价值的文章主要介绍了尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        参考《STM32中文参考手册_V10》,研究CubeMX中有关时钟树配置。

一、系统时钟配置

三种不同的时钟源可被用于驱动系统时钟(SYSCLK):

  • HSI振荡器时钟
  • HSE振荡器时钟
  • PLL时钟

时钟源选择对应时钟配置寄存器(RCC_CFGR)中的SW[1:0]位。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
三种不同的时钟源可被用于驱动系统时钟​​​​

MCU中除了上述三种可用于驱动系统时钟的时钟源以外,还有2种二级时钟源:

  • LSI:40kHz低速内部RC,可用于驱动独立看门狗和通过程序选择驱动RTC
  • LSE:32.768kHz低速外部晶体也可用于通过程序选择驱动RTC
cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
独立的二级时钟源

高速外部时钟信号(HSE)可由两种时钟源产生:HSE外部晶体/陶瓷谐振器;HSE用户外部时钟。这部分在前面介绍RCC时有涉及:

尝试使用CubeMX做stm32开发之八:RCC配置_Forster-C的博客-CSDN博客参考《STM32中文参考手册_V10》,研究CubeMX中有关RCC的配置。通过CubeMX配置时钟树,可以较大地简化程序开发过程,尤其是在“Clock Configuration”中,通过图形化方法,可以很方便地对stm32的时钟树进行设置,还是很好用的。https://ccszz.blog.csdn.net/article/details/128189721?spm=1001.2014.3001.5502

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
HSE时钟

HSI时钟信号由内部8MHz的RC振荡器产生,可以直接作为系统时钟或在2分频后作为PLL输入。HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟,其启动时间比HSE晶体振荡器短,但时钟频率精度较差。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
HSI时钟

内部PLL可以用于倍频HSI或HSE的输出时钟。PLL的设置包括:选择HSI振荡器除以2或HSE振荡器为PLL的输入时钟;选择倍频因子。

PLL的配置对应:时钟配置寄存器(RCC_CFGR)中的PLLMUL位(对PLL的分频系数进行配置)、时钟配置寄存器(RCC_CFGR)中的PLLXTPRE位(配置HSE作为PLL输入前是否分频)、时钟配置寄存器(RCC_CFGR)中的PLLSRC位(配置PLL输入时钟源(HSI的二分频信号或HSE))。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
PLL

MCU允许输出时钟信号到外部MCO引脚(必须对相应引脚进行配置),以下4个时钟信号可以被选座MCO时钟:

  • SYSCLK
  • HSI
  • HSE
  • 除以2的PLL时钟

该部分的配置对应时钟配置寄存器(RCC_CFGR)中的MCO[2:0]位。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
时钟输出

二、总线时钟配置

SYSCLK的频率确定后,需要进一步配置外设时钟。

对应AHB预分频通过时钟配置寄存器(RCC_CFGR)中的HPRE[3:0]位。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
AHB预分频

APB1(低速APB预分频)配置对应时钟配置寄存器(RCC_CFGR)中的PPRE1[2:0]位。

APB2(高速APB预分频)配置对应时钟配置寄存器(RCC_CFGR)中的PPRE2[2:0]位。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
APB1和APB2预分频

AHB、APB1、APB2是stm32的三条时钟总线,分别对应不同的外设,推荐参考:

STM32三条时钟总线(AHB、APB1、APB2)的外设情况_Jack_Sarah的博客-CSDN博客_ahb总线时钟网上整理的,三条时钟总线上挂的外设简单列举如下:1、AHB总线:(1)Flash 存储器;(2)DMA;(3)复位和时钟控制;(4)CRC;(5)以太网;(6)SDIO;2、APB2总线:(1)USART1;(2)高级控制定时器TIM1和TIM8;(3)模数转换器ADC1、ADC2、ADC3;(4)SPI1;(5)外部中断EXTI;(6)复用IO,AFIO;(7)通用IO:GPIOA~G;3、APB1总线:(1)定时器TIM2到TIM7;https://blog.csdn.net/Jack_Sarah/article/details/109105347?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167039883316782414974079%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167039883316782414974079&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-109105347-null-null.142%5Ev68%5Econtrol,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_control1&utm_term=stm32apb1apb2%E4%B8%8B%E7%9A%84%E5%A4%96%E8%AE%BE&spm=1018.2226.3001.4187ADC的时钟配置与其他外设独立,ADC预分频对应时钟配置寄存器(RCC_CFGR)中的ADCPRE1[1:0]位。

cubemx时钟配置,stm32,stm32,单片机,嵌入式硬件
ADC预分频

三、小结

        总体上,掌握两个步骤即可:1)配置SYSCLK;2)配置AHB、APB1、APB2。文章来源地址https://www.toymoban.com/news/detail-597631.html

到了这里,关于尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Mac+CLion+STM32+ST-Link】Mac(apple sillicon)上使用STM32CubeMX和CLion搭建嵌入式开发环境

    Clion 官网安装或者brew安装,我用的是2023.2版本。 stlink server https://www.st.com/en/development-tools/st-link-server.html 不安装的话检测不到stlink。 STM32CubeMX https://www.st.com/en/development-tools/stm32cubeide.html#overviewsecondary=st-get-software 用来快速搭建一个工程。 Arm-toolchain 用来编译和debug的组件。

    2024年02月08日
    浏览(43)
  • 嵌入式开发:使用STM32CubeMX 和 Keil uVision5实现两位数码管循环显示实验

    一、STM32CubeMx实现数码管 1、双击打开STM32CubeMX。 2、点击File选项,在File列表下选择New Project选项新建工程。 3、在图中所示位置的方框中输入我们使用的芯片型号来搜索芯片 4、与我们的搜索相关的芯片型号会在这里呈现,我们只需要选择我们需要的即可,这里我们双击第一个

    2024年02月08日
    浏览(49)
  • vscode stm32cubemx 优雅开发stm32,最简单步骤教程

    下载STM32cubeMX,这个大家可以自己在stm的官网下载到 下载VSCode 下载arm-none-eabi-gcc 下载MinGW-w64,为了实现里面的makefile 等功能 下载OpenOCD这里用来调试stm32,支持jlink stlink daplink 上述安装步骤1、安装步骤2在这里比较简单,就不赘述了  此处我们下载zip包,方便安装。 以我为例

    2024年02月12日
    浏览(54)
  • STM32开发(6)----CubeMX配置PWM

    本章介绍使用STM32CubeMX对PWM进行配置的方法,PWM的基本原理,并通过示波器来测试实现结果,如果有LED灯也可以,PWM控制LED灯的亮度。 PWM(Pulse Width Modulation)脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。它是把每一脉冲宽度均相等

    2024年02月03日
    浏览(50)
  • STM32开发(16)----CubeMX配置DMA

    本章介绍使用STM32CubeMX对DMA进行配置的方法,DMA的原理、概念和特点,配置各个步骤的功能,并通过串口DMA传输实验方式验证。 DMA(Direct Memory Access),即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为

    2024年02月15日
    浏览(46)
  • STM32开发(18)----CubeMX配置RTC

    本章介绍使用STM32CubeMX对RTC进行配置的方法,RTC的原理、概念和特点,配置各个步骤的功能,并通过实验方式验证。 RTC (Real Time Clock),实质是一个 掉电后还继续运行的定时器。从定时器的角度来说,相对于通用定时器 TIM 外设,它十分简单,只有很纯粹的计时和触发中断的

    2023年04月27日
    浏览(41)
  • STM32开发(9)----CubeMX配置外部中断

    本章介绍使用STM32CubeMX对引脚的外部中断进行配置,介绍了中断架构体系,外部中断/事件控制器(EXTI),嵌套向量中断控制器(NIVC),并通过实验展示配置后的效果。 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理

    2024年02月15日
    浏览(46)
  • STM32开发(14)----CubeMX配置ADC

    本章介绍使用STM32CubeMX对ADC进行配置的方法,ADC的原理、概念和特点,配置各个步骤的功能,并通过单通道,多通道,DMA三种方式实现采集。 ADC 即模拟数字转换器,英文详称 Analog-to-digital converter,可以将外部的模拟信号转换为数字信号。 以下是datasheet当中的内容,我就做个

    2023年04月13日
    浏览(47)
  • STM32CubeMX+Eclipse+gcc+Jlink 实现STM32开发环境搭建

    本节记录通过STM32CubeMX+Eclipse+gcc+Jlink 进行STM32环境搭建的过程; 参考: https://blog.csdn.net/qq_35787848/article/details/124395509 https://blog.csdn.net/cyf1294311560/article/details/127115730 1、我这边已经装好了STM32CubeMX、Eclipse、ARM gcc环境、JLINK等;如果你没有安装,请进行安装; 2、我这边已经安装

    2024年02月16日
    浏览(40)
  • STM32CubeMX联合CLion开发环境搭建

    1.1 STM32CubeMX STM32CubeMX是一种图形化配置工具,用于为STM32微控制器生成启动代码和初始化配置。它可以帮助简化STM32项目的初始化过程,并提供了一种可视化的方式来配置引脚、时钟、外设和中断等。HAL(Hardware Abstraction Layer)库是STMicroelectronics提供的一种高级API层,用于编写

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包