洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置

这篇具有很好参考价值的文章主要介绍了洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此文档作为对洋桃电子STM32F407单片机视频的整理,B站链接:2023更新 STM32入门F4= STM32F407单片机入门教程=WIFI连接阿里云物联网+CubeMX+HAL库+TFT彩屏+杜洋主讲_哔哩哔哩_bilibili

由于单片机内部的时钟结构都是相互关联的,一个时钟源出发可以供给多个功能,类似于树根、树杆、树枝、树叶的树状结构,所以我们称RCC时钟的整体结构为时钟树。

1. STM32F407ZGT6数据手册中的时钟树

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

数据手册上的时钟树图仅用于对连接关系的展示,需要熟悉的是在CubeMX图形界面中的时钟树视图。

时钟功能可分为“内核与外设时钟”和“独立时钟”两部分,单片机设计者把这些功能(独立时钟)独立出来是有用意的。

RTC时钟需要在内核不工作时也能持续走时,所以分配了专用的LSI和LSE时钟源。

独立看门狗用于监测单片机的工作状态,当单片机程序出错时独立看门狗会复位单片机。

USB接口对数据传输的稳定性要求高,于是配有专用的48MHz时钟。

IIS总线应用于高速音频接口,也采用了独立时钟。

所谓“独立”仅是指时钟输入未经过SYSCLK时钟分配,这些功能在程序上和其他功能没有区别,依然受到RAM内核的操控。洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

2. 单片机可选的时钟源

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

3.CubeMX图形界面上设置时钟的方法

(1)将HSE设置为晶体/陶瓷振荡器

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

(2)将LSE设置为晶体/陶瓷振荡器

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

(3)若要开启IIS总线的时钟输入

(4)若出现错误

选项卡出现红叉,设置项标红表示频率超出范围,如果不理会出现红色好亮的功能无法正常运行。所以看到红色高亮显示时要重新设置。

4. CubeMX图形界面上时钟标注说明

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

SYSCLK是系统时钟,除去独立时钟之外,SYSCLK时钟是单片机的“根时钟”,ARM内核与各功能外设时钟都由此分配而来。它代表着单片机的最大频率,频率越大速度越快。系统时钟作为源头分配给各内部总线和功能。可通过选择器3选择3个输入源,①通过HSI(没有经过预分频器和倍频器)直接给SYSCLK时钟16MHz的固定频率。②通过HSE(需要外接4~26MHz晶振电路),选择此项后的系统时钟频率等于HSE外接晶振的频率。③通过PLLCLK,是经过预分频器、倍频器和选择器分配后的频率,选择此项可在不改变外接晶振频率的情况下对系统时钟进行超频或降频。STM32F407的SYSCLK时钟最大值是168MHz。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

最终频率5是以太网络功能时钟,它由SYSCLK时钟 (最终频率3) 直接连接,开启ETH以太网功能后,以大网功能的频率等于系时钟频率。

SYSCLK经过经过“分频器5”到达“最终频率6”HCLK时钟,HCLK时钟通过内部高速数据总线AHB把频率提供给ARM内核、存储控制器、中断控制器、DMA等内核功能,可通过设置“分频器5”降低HCLK频率,但通常会将HCLK和SYSCLK保持一致。

SYSCLK时钟经过“分频器6”到达“最终频率7”Cortex系统定时器时钟。它是单片机内包含着ARM Cortex-M4系统单元所使用的定时器,通过“分频器6”可设置为不分频 (/1) 或8倍分频 (/8),这里的设置只涉及Cortex内核功能,一般情况下使它与SYSCLK保持一致。

SYSCLK时钟连接到“最终频率8”FCLK时钟。FCLK全称是自由运行时钟,作用是专为ARM内核提供运行时钟频率,它与HCLK的区别是HCLK是从AHB总线电路上提供时钟而FCLK不受总线限制,即使AHB总线停止工作,FCLK时钟也能直接向ARM内核提供时钟。由于内核时钟与AHB总线时钟必须频率相同才能工作所以这两个时钟直接连接(频率相同)。

 最终频率9~12是PCLK时钟部分的4个最终频率,PCLK时钟的作用是给单片机外设功能提供时钟(ARM内核以外的单片机内部功能)。PCLK时钟分配给APB1总线和APB2总线两个部分,每条总线上都挂接着不同的单片机内部功能。APB1外设时钟的最大频率是42MHz。APB2外设时钟的最大频率是84MHz。当在项目开发中需要设置某功能的时钟频率,则要在单片机数据手册找到时钟树结构图,找到该功能挂接在APB1还是APB2,然后再设置总线频率。洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

独立时钟RTC:

第一个输入源是HSE外部高速时钟经过“分频器1”可设置2~31分频值。

第二个输入源是LSE外部32.768KHz低速时钟,未经过分频和倍频直接输入RTC时钟得到32.768KHz最终频率,这是得到最精准1秒走时的RTC时钟源。

第三个输入源是LSI内部32KHz低速时钟未经过分频得到32KHz最终频率。洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

独立看门狗用于监测单片机的工作状态,当单片机程序出错时独立看门狗会复位单片机。看门狗时钟必须独立于系统时钟之外,保持着“独立第三方”地位。

独立看门狗时钟直接引入32KHz的LSI内部低速时钟,保证输入源的稳定可靠。

看门狗时钟固定频率是32KHz 不允许修改。洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记USB功能是指单片机内置的USB主设备和从设备接口,此功能独立工作,USB时钟频率允许修改,通过“选择器2”可切换HSI或HSE输入源,通过“分频器2”“分频器4”“分频器3 ”“倍频器1”来设置频率值,需要注意 只有“分频器4”是USB时钟专属,其他都与系统时钟共享设置,USB时钟的固定频率是48MHZ,当开启USB功能时必须使之最终频率是48MHz否则会出现警告,不开启此设置不需要设置此项。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

最终频率15~16是两个时钟频率输出功能,缩写是MCO,STM32F40ZG单片机上MCO1复用在PA8端口,MCO2复用在PC9端口,开启MCO时钟输出功能的方法如下图。勾选后再进入时钟树视图,MCO部分的选择器和分频器才能进行修改,通过“选择器5~6”可以切换四个时钟输入源。其中PLLCLK是经过“分频器3”之后的时钟频率,PLLI2SCLK是经过“分频器9”之后的时钟频率。时钟输出功能用于给其他芯片提供时钟基准。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

5. 程序代码中的时钟讲解

在图形界面里设置的时钟树选项,在生成代码后会转化成程序代码存放在工程文件里,为了能在未来的编程中修改这些RCC设置我们需要了解RCC时钟的程序代码,并能与图形界面上的设置项联系起来。

单片机在最开始运行时并不是从main函数开始,而是先运行汇编语言的启动文件,启动文件里对单片机的RAM、FLASH 中断等基础功能进行初始化。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

CubeMX中设置的时钟选项在程序代码中的样子, SystemClock_Config函数是RCC时钟配置函数,图形界面中与RCC相关的配置都保存在此函数里。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

6.修改CubeMX的配置,例如要修改AHB总线时钟的预分频系数。

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记

7. 在程序运行中修改时钟设置的方法

洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置,单片机,stm32,笔记文章来源地址https://www.toymoban.com/news/detail-764431.html


到了这里,关于洋桃电子STM32F407单片机入门教程笔记一:RCC时钟设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32F407ZGT6单片机连接ST_LINK和USB转TTL的接线方法+舵机接线方法

    目录 1.STM32F407ZG单片机连接ST_LINK 2.STM32F407ZG单片机连接USB转TTL(用于串口通信) 3  舵机 单片机             ST_LINK      9--------------------6      7--------------------2      20------------------3/4      1--------------------7/8  这里附上具体的接线图片: 单片机      USB转TTL TX————

    2024年02月02日
    浏览(61)
  • STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页

    原文链接:https://blog.csdn.net/ba_wang_mao/article/details/108318633 AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256…不同的xxx代表不同的容量。 总容量(Byte容量) = 页数 × 页内字节单元数。 对AT24CXXX进行读写操作时,都得先访问存储地址、比如AT24C01写一个字节的I

    2024年04月11日
    浏览(62)
  • stm32f407单片机上通过HAL库实现can总线数据的收发

      最近在使用can总线,由于这个以前接触的比较少,所以调试代码的时候直接是下载的正点原子的例程,在这个基础上修改调试的。现在将调试中遇到的问题,总结一下,避免以后踩坑。目前写了一个查询方式的,一个中断方式的。项目代码下载地址: https://download.csdn.n

    2024年02月09日
    浏览(50)
  • 从STM32F407到AT32F407(一)

    雅特力公司的MCU有着性能超群,价格优越的巨大优势,缺点是相关资料少一些,我们可以充分利用ST的现有资源来开发它。 我用雅特力的STM32F437开发板,使用原子 stm32f407的开发板自带程序,测试串口程序,原设定串口波特率为115200,但是输出乱码,波特率改成230400,串口输

    2024年02月02日
    浏览(57)
  • STM32F407——串口通信

    本文将对串口通信的分类和基于 stm32 的串口配置进行介绍,以及如何使用串口调试助手进行串口收发功能的调试,旨在帮助还不会使用 stm32 单片机串口资源进行通信的家人们快速学会如何使用串口来进行通信。 (纯干货、快速上手、零基础也能会!!!) (1)串口,即串

    2023年04月08日
    浏览(48)
  • STM32F407的介绍

    内核 32位 高性能ARM Cortex-M4处理器 时钟: 高达168MHz,实际还可以超频一点点 stm32f407的主频通过PLL倍频后能够达到168MHz,而且芯片内置一个16MHz的晶振和一个32KHz的晶振,可以满足不同功耗的需求。 支持FPU(浮点运算)和DSP指令 144引脚 114个IO口 存储器容量: 1024K FLASH, 192K

    2024年02月10日
    浏览(52)
  • STM32F407的时钟

    时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。它通常由石英 晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。 F4开发指南P107 F4开发指南P108 HSI高速内部时钟源 High Speed Internal。RC 振荡器,频率为 16MHz。可以直接作为

    2024年02月10日
    浏览(50)
  • 初识 STM32和STM32F407简介

    2007 年 6 月,ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制 器芯片:STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣 惊人,一发不可收拾,截止到 2020 年 6 月,STM32 累计出货量超过 45 亿颗。 战舰开发板使用的 STM32F103ZET6

    2023年04月08日
    浏览(70)
  • STM32F407 移植 FreeRTOS

    本实验是基于正点原子 STM32F407ZG 探索者开发板完成的,所以需要一个STM32F407ZG 探索者开发板 用于移植的基础工程(下面会讲) FreeRTOS源码(下面会讲) 本实验所有用到的代码:基于正点原子STM32F407的FreeRTOS移植工程.zip 1.1 移植前准备 1.1.1 基础工程 由于后续需要用到 LED、

    2024年02月08日
    浏览(65)
  • STM32F407的PWM

    泉水 STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。 高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。 通用定时器也能同时产生多达 4路的 PWM 输出 STM32F407 最多可以同时产生 30 路 PWM 输出! 这里我们仅利用 TIM14的 CH1 产生一路 PWM 输出。 如上所

    2024年02月17日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包