当前位置: 首页 > news >正文

STM32之二:时钟树

目录

1. 时钟

2. STM3时钟源(哪些可以作为时钟信号)

2.1 HSE时钟

        2.1.1 高速外部时钟信号(HSE)来源

        2.1.2 HSE外部晶体电路配置

2.2 HSI时钟

2.3 PLL时钟

2.4 LSE时钟

2.5 LSI时钟

 3. STM32时钟(哪些系统使用时钟)

3.1 系统(SYSCLK)时钟

3.2 RTC时钟

3.3 看门狗时钟

3.4 时钟输出MOC

4. STM32时钟树

4.1 AHB预分频器

5. STM32时钟配置


1. 时钟

        STM32的时钟就是周期性的脉冲,50%占空比的方波、正弦波或三角波都可作为STM32的时钟信号。

2. STM3时钟源(哪些可以作为时钟信号)

        

STM32时钟源
时钟源时钟范围主要用途
HSE高速外部时钟
4~16MMHz

1. 系统时钟

2. 128分频后输入RTC时钟

HSI

高速内部时钟

8MHz

1. 备用时钟源

2. 2分频后作为PLL输入

LSE

低速外部时钟

32.768kHz

RTC实时时钟

LSI低速内部时钟40kHz

1. 待机/停机模式下时钟

2.RTC、IDWG、AWU时钟

2.1 HSE时钟

        2.1.1 高速外部时钟信号(HSE)来源
  1. HSE外部晶体/陶瓷谐振器(通常使用这种)
  2. HSE用户外部时钟
        2.1.2 HSE外部晶体电路配置

为了减少时钟输出的失真和缩短启动稳定时间,晶体 / 陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。
注:1.时钟控制寄存器(RCC_CR)中HSERDY位被置位,表示高速外部振荡器稳定
        2.时钟控制寄存器(RCC_CR)中HSEON位表示开启或关闭HSE高速外部时钟

2.2 HSI时钟

HSI时钟
来源内部8MHz
振荡器RC振荡器
作用

1. 直接作为系统时钟

2.2分频后作为PLL输入

3.如果HSE失效,HSI时钟会被作为备用时钟源

优点

1. 不需要额外的外部器件,成本较低

2.启动时间比HSE短

缺点

1.校准后时钟频率精度仍然较差

2.RC振荡器精度受电压和环境影响

时钟控制寄存器RCC_CR

1. HSIRDY位置位,表示HSI时钟稳定

2.HSION位开启或者关闭HSI时钟

2.3 PLL时钟

PLL锁相环是一种控制系统,之所以叫PLL时钟,是因为,PLL通过调整输入信号(HSE、HSI)的频率和相位,以满足系统对不同频率的要求。

PLL时钟
输入

1. HSI 2分频后输入

2.HSE

使用

1. 输入时钟源稳定后才能使能PLL(RCC_CR的HSIRDY或者HSERDY置位)

2.使能PLL前需要完成PLL配置(选择时钟源、预分频系数、倍频系数)

时钟配置寄存器(RCC_CFGR):

为何要用倍频器,而不是选择一个高频率的晶振?

对于稳定运行的电路来说,时钟频率越高,指令执行越快,单位时间内处理的功能也就越多。但是时钟源的时钟频率最高也就16MHz,达不到STM32系统时钟72MHz的要求,因此需要倍频器将外部时钟频率进行倍频,在输入给系统时钟。

倍频涉及到时钟配置寄存器(RCC_CFGR):

2.4 LSE时钟

LSE时钟
来源(输入)外部32.768KHz
振荡器外部晶体
作用

1. 驱动RTC实时时钟

2. 备份域控制寄存器(RCC_BDCR)LSERDY置位表示晶体振荡器稳定,LSEON表示开启或关闭该时钟

优点

1. 低功耗

2. 精确

2.5 LSI时钟

LSI时钟
来源内部40kHzRC震荡时钟
作用

1. 在停机模式/待机模式下保持运行

2. 独立看门狗(IDWG)时钟、自动唤醒单元(AWU)时钟

3.控制 /状态寄存器(RCC_CSR)里的LSIRDY置位表示震荡稳定,LSION位控制开启或关闭该时钟

 3. STM32时钟(哪些系统使用时钟)

3.1 系统(SYSCLK)时钟

        SYSCLK为整个芯片提供时钟信号,其来源主要有3种:

1. HSE作为系统时钟

2. HSI作为系统时钟

3.PLL作为系统时钟(又叫做HSE间接作为系统时钟)

        可在时钟控制寄存器(RCC_CR)中状态指示位查看当前系统时钟的时钟来源。

另外,当系统时钟的时钟源要进行切换时,只有目标时钟源准备就绪后,时钟源的切换才会发生,涉及时钟配置寄存器RCC_CFGR:

3.2 RTC时钟

        三个输入:LSE、LSI、HSE128分频

3.3 看门狗时钟

LSI提供40kHz时钟。如果看门狗被启动,则LSI会被强制启动,待振荡器稳定后,输入给看门狗。

3.4 时钟输出MOC

4. STM32时钟树

图中标红色方框的为时钟源,可以看到包括之前介绍的HSE、LSE、PLL、HSI、LSI。

图中标绿色方框的为使用时钟(MCO为输出时钟),包括SYSCLK、RTC、IWDG、MOC。

除此之外,时钟树右侧部分,即SYSCLK输出,主要包括外设和和AHB。

4.1 AHB预分频器

预分频器,可通过配置分频系数,调整输出时钟的频率。分频允许系统中不同部分以不同的频率运行,以满足不同模块的工作需求。【主时钟(SYSCLK)、APB1时钟、APB2时钟】

图片来源(CSDN: King~30+,侵删)

AHB预分频器的分频系数可以选择为1(不分频)、2、4、6、8、16、64、128、256、512。

涉及寄存器为时钟配置寄存器RCC_CFGR:

AHB输出到APB1总线和APB2总线,其中APB1总线最大时钟频率为36MHz,为低速时钟,片上挂载低速外设,例如看门狗定时器,USART2\3\4\5,SPI2\3等。APB2总线最大时钟频率为72MHz,其上通常为各种外设的1号选手,例如USART1、ADC1、SPI1等。

5. STM32时钟配置

看一下STM32是怎么配置系统时钟的。

此处以STM32F10xx系列为例,下载STM32固件库后,找到system_stm32f10x.c和system_stm32f10x.h两个文件,这两个文件是STM32用来配置系统时钟的。它提供了两个函数、一个变量和一些宏定义来进行时钟配置。

可以看到,通过SystemInit()函数,最终调用SetSSysclockTo72(),使用高速外部时钟源,最终在PLL锁相环9倍频,赋值给系统时钟。AHB、APB1、APB2经过分频系数分频,分别得到72MHz、36MHz、72MHz时钟频率。

观察SetSysClock(),通过宏定义最终调用所选择的主频率,如果为了降低功耗,或者需要修改STM的主频,可直接修改SYSCLK_FREQ_xxMHz宏定义来修改系统的主频,同样可以在system_stm32f10x.c文件中修改。

相关文章:

STM32之二:时钟树

目录 1. 时钟 2. STM3时钟源(哪些可以作为时钟信号) 2.1 HSE时钟 2.1.1 高速外部时钟信号(HSE)来源 2.1.2 HSE外部晶体电路配置 2.2 HSI时钟 2.3 PLL时钟 2.4 LSE时钟 2.5 LSI时钟 3. STM32时钟(哪些系统使用时…...

第十四站:Java玫瑰金——移动开发(第二篇)

处理不同类型的网络连接和增强错误处理及用户反馈,需要我们对网络状态检查逻辑进行扩展,并在UI上给予用户适当的提示。以下是对Java代码的进一步扩充: 网络状态检查扩展:区分Wi-Fi和移动数据,并根据网络类型提供不同的…...

数据处理技术影响皮质-皮质间诱发电位的量化

摘要 皮质-皮质间诱发电位(CCEPs)是探究颅内人体电生理学中有效连接性的常用工具。与所有人体电生理学数据一样,CCEP数据极易受到噪声的影响。为了解决噪声问题,通常会对CCEP数据进行滤波和重参考,但不同的研究会采用不同的处理策略。本研究…...

ResultSet的作用和类型

ResultSet的作用: ResultSet在Java中主要用于处理和操作数据库查询结果。它是一个接口,提供了一系列方法来访问和操作数据库查询得到的结果集。具体来说,ResultSet的作用包括: 获取查询结果:通过ResultSet可以获取数…...

计算机网络:运输层 - TCP首部格式 连接的创建与释放

计算机网络:运输层 - TCP首部格式 & 连接的创建与释放 TCP首部格式源端口 目的端口序号确认号数据偏移保留控制位窗口检验和紧急指针 TCP连接创建 - 三次握手TCP传输过程TCP连接释放 - 四次挥手 TCP首部格式 TCP的首部如下: 首部的前20 byte是固定的…...

妈耶!被夸爆的零售数据分析方案在这里

在竞争激烈的零售市场中,数据分析已成为企业决胜的关键。今天,就为大家揭秘一份备受赞誉的零售数据分析方案——奥威BI零售数据分析方案,它围绕“人、货、场、供、财”五大主题,助力企业精准决策,实现业务增长。 一、人…...

AI探索:最佳落地应用场景

如果说今年的风口,那一定是 AI。不过AI像一把双刃剑,既有助益也有风险。我们将从IBM Watson的高飞与坠落,到Google Allo的黯然失色,探索AI应用中的教训。同时,瑞幸咖啡的成功故事展现了凭借策略得当的AI应用&#xff0…...

2024年最新机动车签字授权人考试题库。

31."简易瞬态工况法"所使用的五气分析仪的温度范图:分析系统及相关部件应在( )。 A.0-40℃ B.0-50℃ C.0-60℃ D.-10-40℃ 答案:A 32.稀释氧传感器环境空气量程检测时的读数值位于( )%vol范围之外时,应…...

软RAID

硬盘 连续空间 无法 扩容 lvm 非连续空间 可以动态扩容 raid 备份, 提高读写性能,不能扩容 raid 是磁盘的集合,按照排列组合的方法不 一,给 raid 去了不同的名字 raid0 raid1 raid5 raid10 什么是 RAID "RAID"…...

IDEA 学习之 启动“卡死”

目录 1. 断点问题2. IDEA 版本问题 1. 断点问题 部分断点涉及应用启动,会导致启动“卡死” 2. IDEA 版本问题 部分 IDEA 版本存在启动问题,本人之前遇到过(别人启动三分钟,我启动半个小时)。更换别的版本&#xff…...

豆瓣高分项目管理书籍推荐

📬豆瓣网站上有很多项目管理领域的书籍获得了较高的评分,以下是一些高分项目管理书籍的精选列表,发出来跟大家分享一下: 《项目管理知识体系指南(PMBOK指南)》 【内容简介】这本书是美国项目管理协会&…...

关于docker存储overlay2相关问题

报错如下: 报错原因:使用rm -rf 清理overlay2导致的,非正常清理。 正常清理命令如下: # 清理Docker的所有构建缓存 docker builder prune# 删除旧于24小时的所有构建缓存 docker builder prune --filter "until24h"#删…...

实现批量自动化电商数据采集|商品详情页面|店铺商品信息|订单详情数据

电商数据采集是指通过技术手段获取电商平台上的商品信息、店铺信息和订单信息等数据。这些数据可以用于市场分析、竞品分析、用户行为分析等。 商品详情页面是指电商平台上展示商品详细信息的页面,包括商品名称、价格、图片、描述、评价等信息。通过采集商品详情页…...

ES6(ECMAScript 6.0) 新特性

1 ES6 基本介绍 (1)ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准, 2015 年 6 月发布。 (2)ES6 设计目标:达到 JavaScript 语言可以用来编写复杂的大型程序,成为企业级开发语言 &…...

性能工具之 JMeter 常用组件介绍(八)

文章目录 一、Jmeter命令行启动二、Jmeter脚本录制 本文主要介绍JMeter命令行启动和脚本录制功能 一、Jmeter命令行启动 Jmeter有两种运行: 一种是采用的界面模式(GUI)启动,会占用不少系统资源;另一种是命令行模式(n…...

分布式锁(Redission)

分布式锁: 使用场景: 通常对于一些使用率高的服务,我们会进行多次部署,可能会部署在不同的服务器上,但是他们获取和操作的数据仍然是同一份。为了保证服务的强一致性,我们需要对线程进行加锁,…...

【ARMv8/v9 GIC 系列 3 -- GIC 的 类型寄存器 GICD_TYPER】

文章目录 GIC 类型寄存器 GICD_TYPERESPI_Range, 位[31:27]RSS, 位[26]No1N, 位[25]A3V, 位[24]IDBits, 位[23:19]DVIS, 位[18]LPIs, 位[17]MBIS, 位[16]NUM_LPIs, 位[15:11]SecurityExtn, 位[10]NMI, 位[9]ESPI, 位[8]CPUNumber, 位[7:5]ITLinesNumber, 位[4:0]GIC 类型寄存器…...

MATLAB算法实战应用案例精讲-【数模应用】线性判别分析(附MATLAB、python和R语言代码实现)

目录 前言 算法原理 什么是判别分析 线性判别分析(LDA) 数学模型 二分类 多分类LDA ​编辑 算法思想: 费歇(FISHER)判别思想 贝叶斯(BAYES)判别思想 LDA算法流程 LDA与PCA对比 SPSSPRO 1、作用 2、输入输出描述 3、案例示例 4、案例数据 5、案例操作 …...

打造智能家居:用ESP32轻松实现无线控制与环境监测

ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器,广泛应用于物联网项目。它由Espressif Systems公司开发,具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能,并通过具体的实例项目展示其应用。 主要功能 双核处…...

大型Web应用的模块化与组织实践:Flask Blueprints深入解析

目录 一、引言 二、Flask Blueprints概述 三、Flask Blueprints的使用 创建Blueprint对象 定义路由和视图函数 注册Blueprint 使用Blueprints组织代码 四、案例分析 创建模块目录结构 创建Blueprint对象 注册Blueprint 五、代码示例与最佳实践 1. 代码示例 …...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...