【STM32】理解时钟树(图示分析)
文章目录
- 时钟系统
- 什么是时钟
- 时钟树
- 简化图示
- 类比示例
- 时钟树详解
- 时钟源
- 系统时钟配置
- 各总线时钟
- 外设时钟
时钟系统
什么是时钟
时钟在电子和计算机系统中指的是生成周期性信号的电路或设备,这种周期性信号用于同步系统内的各种操作。时钟信号通常是方波,具有固定的频率和周期,在数字电路中尤为重要。以下是时钟的详细说明:
- 时钟的基本概念
周期 (Period):时钟信号重复一次所需的时间,通常以秒(s)或其子单位(如毫秒ms、微秒μs、纳秒ns)表示。
频率 (Frequency):时钟信号每秒钟重复的次数,以赫兹 (Hz) 为单位,频率是周期的倒数。例如,1 MHz 表示每秒钟有 1,000,000 个时钟周期。
占空比 (Duty Cycle):时钟信号在一个周期内处于高电平的时间与周期总时间的比值,通常以百分比表示。 - 时钟的作用
同步操作:在数字系统中,不同的模块和电路需要在同一时间执行操作。时钟信号提供了一个共同的时间基准,确保各个模块同步运行。
数据采样:时钟信号用来控制数据的采样和传输,例如在寄存器中写入或读取数据。
时序控制:通过时钟信号,可以精确控制系统中各个操作的时序,确保数据处理的正确性。
时钟树
以STM32F103C8T6为例,先看产品手册中的时钟树很懵逼
简化图示
类比示例
单片机的总线矩阵相当于电脑的主板,
单片机的Cortex-M3内核相当于电脑的CPU,
Flash是相当于电脑的硬盘,单面机的RAM相当于电脑的内存条,
单片机的AHB总线相当于向PCLe插槽,APB1和APB2转换桥相当于PCLe转USB板卡,
单片机的APB2总线相当于USB3.0。
单片机的APB1总线相当于USB2.0,
而挂载在总线上的各种各样的模块,就相当于摄像头、麦克风、移动硬盘、鼠标、键盘等这些外部源的设备。
时钟树详解
时钟源
STM32F103C8T6 支持多种时钟源,包括:
- 高频外部晶振 (HSE):通常用于高精度的外部晶振,可以是 4-16 MHz。
- 低频外部晶振 (LSE):用于低功耗应用的外部晶振,频率通常为 32.768 kHz。
- 高频内部振荡器 (HSI):内部 8 MHz 的振荡器。
- 低频内部振荡器 (LSI):内部 40 kHz 的振荡器
- PLL (锁相环):可以通过 HSE 或 HSI 提供倍频后的时钟信号。
系统时钟配置
系统时钟 (SYSCLK) 是整个芯片的主时钟源,可以选择 HSI、HSE 或 PLL 作为系统时钟源。选择过程如下:
- 选择 HSE 或 HSI 作为 PLL 的输入时钟源(如果使用 PLL)。
- 配置 PLL 的倍频系数,确保输出频率在允许的范围内(最高 72 MHz)
- 选择系统时钟源:可以选择 HSI、HSE 或 PLL。
- 配置 AHB、APB1 和 APB2 分频器,生成不同的外设时钟。
各总线时钟
- AHB 时钟 (HCLK):由系统时钟 SYSCLK 通过 AHB 分频器提供,负责驱动内核、存储器和 DMA 等高速外设。
- APB1 时钟 (PCLK1):通过 APB1 分频器从 HCLK 提供,驱动低速外设如 UART、I2C、SPI 等。
- APB2 时钟 (PCLK2):通过 APB2 分频器从 HCLK 提供,驱动高速外设如 GPIO、ADC、TIM1 等。
外设时钟
- 高速外设时钟 (APB2)
APB2 总线用于驱动高速外设,包括 GPIO、ADC、TIM1、SPI1 等。这些外设的时钟源通常来自以下几个路径:
PCLK2 (APB2 预分频器输出时钟):通过 AHB 总线时钟 (HCLK) 分频获得。
系统时钟 (SYSCLK):通过 PLL 或直接选择 HSI、HSE 作为系统时钟。 - 低速外设时钟 (APB1)
APB1 总线用于驱动低速外设,包括 UART、I2C、TIM2-7、SPI2、SPI3 等。这些外设的时钟源如下:
PCLK1 (APB1 预分频器输出时钟):通过 AHB 总线时钟 (HCLK) 分频获得。
系统时钟 (SYSCLK):通过 PLL 或直接选择 HSI、HSE 作为系统时钟。 - ADC 时钟
ADC 外设的时钟可以由以下路径提供:
PCLK2:通过 RCC_CFGR 中的 ADCPRE 分频配置,可以选择 PCLK2 的 2、4、6 或 8 分频。 - USB 时钟
USB 外设需要 48 MHz 的时钟,通常由 PLL 提供:
PLL 输出时钟 (PLLCLK):通过 PLL 配置获得 48 MHz 时钟,如果 PLL 的输入时钟为 8 MHz(HSI),则需要配置 PLL 的倍频系数为 6。 - 实时时钟 (RTC)
RTC 的时钟源可以是:
低频外部晶振 (LSE):通常为 32.768 kHz。
低频内部振荡器 (LSI):通常为 40 kHz。 - 定时器时钟
定时器的时钟源可以是:
APB1 和 APB2 时钟 (PCLK1, PCLK2):定时器时钟频率是由对应的 APB 时钟频率决定的,如果 APB 时钟进行了分频,定时器时钟可能会有 2 倍的频率。 - SPI 时钟
SPI 外设的时钟源为:
PCLK2 (对于 SPI1):通过 AHB 总线时钟 (HCLK) 分频获得。
PCLK1 (对于 SPI2, SPI3):通过 AHB 总线时钟 (HCLK) 分频获得。 - UART/I2C 时钟
UART 和 I2C 外设的时钟源为:
PCLK1 (对于 UART2, UART3, I2C1, I2C2):通过 AHB 总线时钟 (HCLK) 分频获得。
PCLK2 (对于 UART1):通过 AHB 总线时钟 (HCLK) 分频获得。 - GPIO 时钟
GPIO 外设的时钟源为:
PCLK2:通过 AHB 总线时钟 (HCLK) 分频获得
相关文章:
【STM32】理解时钟树(图示分析)
文章目录 时钟系统什么是时钟时钟树简化图示类比示例时钟树详解时钟源系统时钟配置各总线时钟外设时钟 时钟系统 什么是时钟 时钟在电子和计算机系统中指的是生成周期性信号的电路或设备,这种周期性信号用于同步系统内的各种操作。时钟信号通常是方波,…...
动态内存四个函数
文章目录 1. malloc2. calloc3. realloc4. free 在C语言中,malloc、calloc、realloc 和 free 是用于动态内存管理的标准库函数,它们定义在 <stdlib.h> 头文件中。以下是这些函数的用法: 1. malloc malloc 函数用于在堆区分配指定大小…...
DevExpress WPF中文教程 - 为项目添加GridControl并将其绑定到数据
DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…...
高性能分布式IO系统BL205 OPC UA耦合器
边缘计算是指在网络的边缘位置进行数据处理和分析,而不是将所有数据都传送到云端或中心服务器,这样可以减少延迟、降低带宽需求、提高响应速度并增强数据安全性。 钡铼BL205耦合器就内置边缘计算功能,它不依赖上位机和云平台,就能…...
live555 rtsp服务器实战之doGetNextFrame
live555关于RTSP协议交互流程 live555的核心数据结构值之闭环双向链表 live555 rtsp服务器实战之createNewStreamSource live555 rtsp服务器实战之doGetNextFrame live555搭建实时播放rtsp服务器 注意:该篇文章可能有些绕,最好跟着文章追踪下源码&…...
Nginx系列-3 servername优先级和location优先级和常用正则表达式
1.正则表达式和分组 由于Nginx配置文件中经常出现正则表达式,因此本章节专门对常见的正则表达式进行简单介绍。 [1] 开始与结束 ^表示匹配输入字符串的开始 $表示匹配输入字符串的结束[2] 匹配次数 ?表示匹配0次或者1次 表示匹配1次或多次 *表示匹配0从或多次…...
python—爬虫爬取电影页面实例
下面是一个简单的爬虫实例,使用Python的requests库来发送HTTP请求,并使用lxml库来解析HTML页面内容。这个爬虫的目标是抓取一个电影网站,并提取每部电影的主义部分。 首先,确保你已经安装了requests和lxml库。如果没有安装&#x…...
实现图片拖拽和缩小放大功能。
1. 前言 不知道各位前端小伙伴蓝湖使用的多不多,反正我是经常在用,ui将原型图设计好后上传至蓝湖,前端开发人员就可以开始静态页面的的编写了。对于页面细节看的不是很清楚可以使用滚轮缩放后再拖拽查看,还是很方便的。于是就花了…...
昇思25天学习打卡营第18天|munger85
DCGAN生成漫画头像 首先肯定是下载训练数据,而这些训练数据就是一些卡通头像。后来我们会看到这个具体的头像 就像其他的数据集目录一样,它是由一些目录和这个目录下面的文件组成的数据集。 有相当多的图片。所以可以训练出来比较好的效果。 图片的处理…...
nginx配置文件说明
Nginx的配置文件说明 Nginx配置文件的主要配置块可以分为三个部分:全局配置块(events和http块),events块和http块。这三个部分共同定义了Nginx服务器的整体行为和处理HTTP请求的方式。 全局配置块: 包含了影响Nginx服…...
用不同的url头利用Python访问一个网站,把返回的东西保存为txt文件
这个需要调用requests模块(相当于c的头文件) import requests 还需要一个User-Agent头(这个意思就是告诉python用的什么系统和浏览器) Google Chrome(Windows): Mozilla/5.0 (Windows NT 10.0; Win64; x64…...
一文掌握Prometheus实现页面登录认证并集成grafana
一、接入方式 以保护Web站点的访问控制,如HTTP 服务器配置中实现安全的加密通信和身份验证,保护 Web 应用程序和用户数据的安全性。 1.1 加密密码 通过httpd-tools工具包来进行Web站点加密 yum install -y httpd-tools方式一:通过htpasswd生…...
欢迎来到 Mint Expedition:Web3 和 NFT 的新时代开始
7 月 15 日,Mint Expedition 正式开启,作为 Mint 生态系统的旗舰项目,将彻底变革 Web3 和 NFT 去中心化应用! Mint Expedition 是 Mint 的最新航程,延续了 Mint Forest 的成功。Mint Forest 吸引了超过 41.4 万独立用…...
针对环境构图的全局一致性扫描点云数据对齐(Graph SLAM)
本算法是一个经典的,针对SLAM(simultaneous localization and mapping 即时定位与地图构建)问题而提出的算法。该算法的提出者是Feng Lu和Evangelos Milios,他们在本算法中开创了通过全局优化方程组以减少约束引入的误差来进一步优…...
Matlab学习笔记01 - 基本数据类型
Matlab学习笔记01 - 基本数据类型 1、数据类型转换2、矩阵2.1 访问单个矩阵元素2.2 访问多个矩阵元素2.3 矩阵转置 3、字符与字符串4、数值与字符串5、元胞数组 1、数据类型转换 十进制转十六进制字符串‘FF’ >> hex2dec(3ff)ans 1023十进制转十六进制字符串 >>…...
基于重要抽样的主动学习不平衡分类方法ALIS
这篇论文讨论了数据分布不平衡对分类器性能造成的影响,并提出了一种新的有效解决方案 - 主动学习框架ALIS。 1、数据分布不平衡会影响分类器的学习性能。现有的方法主要集中在过采样少数类或欠采样多数类,但往往只采用单一的采样技术,无法有效解决严重的类别不平衡问题。 2、论…...
Python爬虫(基本流程)
1. 确定目标和范围 明确需求:确定你需要从哪些网站抓取哪些数据。合法性:检查目标网站的robots.txt文件,了解哪些内容可以被抓取。数据范围:确定爬取数据的起始和结束点,比如时间范围、页面数量等。 2. 选择合适的工…...
primeflex教学笔记20240720, FastAPI+Vue3+PrimeVue前后端分离开发
练习 先实现基本的页面结构: 代码如下: <template><div class"flex p-3 bg-gray-100 gap-3"><div class"w-20rem h-12rem bg-indigo-200 flex justify-content-center align-items-center text-white text-5xl">…...
移动设备安全革命:应对威胁与解决方案
移动设备已成为我们日常工作和家庭生活中不可或缺的工具,然而,对于它们安全性的关注和投资仍然远远不够。本文深入分析了移动设备安全的发展轨迹、目前面临的威胁态势,以及业界对于这些安全漏洞响应迟缓的深层原因。文中还探讨了人们在心理层…...
【C语言】 链表实现学生管理系统(堆区开辟空间)
总体思路都能写出来,问题是感觉稍微比之前的麻烦一些,在刚开始创建结构体的时候,并没有去按照链表的思路去写,导致写成了顺序表,后面就一直纠结空间怎么开辟。 链表是由一个头节点和其它申请出来的小节点连起来的&…...
STM32实战篇:按键(外部输入信号)触发中断
功能要求 将两个按键分别与引脚PA0、PA1相连接,通过按键按下,能够触发中断响应程序(不需明确功能)。 代码流程如下: 实现代码 #include "stm32f10x.h" // Device headerint main() {//开…...
Android SurfaceView 组件介绍,挖洞原理详解
文章目录 组件介绍基本概念关键特性使用场景 SurfaceHolder介绍主要功能使用示例 SurfaceView 挖洞原理工作机制 使用SurfaceView展示图片示例创建一个自定义的 SurfaceView类在 Activity 中使用 ImageSurfaceView注意事项效果展示 组件介绍 在 Android 开发中,Sur…...
day2加餐 Go 接口型函数的使用场景
文章目录 问题价值使用场景其他语言类似特性 问题 在 动手写分布式缓存 - GeeCache day2 单机并发缓存 这篇文章中,有一个接口型函数的实现: // A Getter loads data for a key. type Getter interface {Get(key string) ([]byte, error) }// A Getter…...
摄像头 RN6752v1 视频采集卡
摄像头 AHD倒车摄像头比较好,AHD英文全名Analog High Definition,即模拟高清,拥有比较好的分辨率与画面质感。 RN6752v1 GQW AKKY2 usb 采集卡 FHD(1080p)、HD(720p)和D1(480i&am…...
记录vivado自带IP iBert眼图近端回环
记录利用vivado自带IP核工具测试信号质量 ibert是测试眼图的工具,在使用的时候并不用改太多的内容,只需要注意参考时钟及所需要的引脚即可。由于条件的限制,并没有使用光纤和电缆进行连接进行外部回环,仅使用内部回环做测试&…...
js | Core
http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ Object 是什么? 属性[[prototype]]对象。 例如,下面的,son是对象,foo不是对象。打印出来的son,能看到有一个prototype 对象。 prototype vs _proto_ v…...
Log4J reminder
Java JNDI and Log injection https://docs.oracle.com/javase/jndi/tutorial/ See also https://telegra.ph/Log4J-Vulnerability-Explained-07-21...
Unity XR Interaction Toolkit(VR、AR交互工具包)记录安装到开发的流程,以及遇到的常见问题(一)!
提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、XR Interaction Toolkit是什么?二、跨平台交互三、 AR 功能四、XR Interaction Toolkit的特点五、XR Interaction Toolkit 示例总结 前言 随着VR行业的发展&#…...
MongoDB文档整理
过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…...
【AI学习】关于Scaling Law的相关学习
一、苦涩的教训 首先,学习一段重要话语: The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. 从70年的人工智能研究中…...
网站上的办公网站怎么做/全网营销培训
HTML5中提供了跨域加载数据的方法,让我们得以从JSONP或者Flash中介等各种绕行方案中解脱出来,更加顺畅地与服务器交流。另一方面,因为PHP是最好的语言……所以在它与Node.js之间,我选择前者作为后端语言开发内容服务。这篇文章记录…...
北京高端网站建设系统/陕西网络营销优化公司
2-范数 欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方 参考资料 1.知乎:0 范数、1 范数、2 范数有什么区别? 2. Wikipedia:范数...
网站怎么做关键词优化/推广专家
2020.8.23第203场周赛 1560. 圆形赛道上经过次数最多的扇区 题目描述 给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中࿰…...
php怎么做全网小视频网站/seo必备软件
实验步骤一 generate()方法,生成字符串,要求字符串为“haihai”或者“world!”,如下: getone()方法生成随机的四、六位数,这个方法只会生成一个结果。如果使用的是generate()方法,那么会列出所有的可能。随机生成一个时间实验步骤二 # -*- coding: utf-8 -*- #大小写ZH…...
建设电影网站选服务器怎么选/河南省郑州市金水区
模型矩阵 观察矩阵 投影矩阵 奠定了三维理论的基础。 vertex data(顶点位置数据 x,y,z)经过 model matrix(模型矩阵)变换,即对顶点位置数据 x,y,z 进行平移、旋转、缩放,得到新的顶点位置,然后根…...
生产软件/seo优化与品牌官网定制
摘要: 手把手教你用(Python)零起步数学神经网络入门!在这篇文章中,我们将在Python中从头开始了解用于构建具有各种层神经网络(完全连接,卷积等)的小型库中的机器学习和代码。最终,我们将能够写出如下内容:假…...