STM32时钟配置图详解
一图概述:
左侧输入时钟源
Input Frequency (LSE/LSI/HSI/HSE)
- LSE (Low-Speed External):外部32.768 kHz晶体振荡器,通常用于RTC(实时时钟)。
- LSI (Low-Speed Internal):内部低速时钟,频率为40 kHz,通常用于看门狗计时器等低功耗模块。
- HSI (High-Speed Internal):内部高速时钟,频率为8 MHz,系统默认使用。
- HSE (High-Speed External):外部高速晶体振荡器,频率范围为4-16 MHz,外部来源的主时钟。
RTC(Real-Time Clock)时钟
- RTC Clock Mux:选择用于RTC模块的时钟源,包括LSE、LSI和HSE的1/128分频输出。
- LSE, LSI, HSE_RTC:分别为32.768 kHz的LSE时钟,40 kHz的LSI时钟,以及HSE时钟的分频输出。
系统时钟路径
- PLL Source Mux:选择PLL的输入源,HSE或者HSI都可以作为输入源。图中选择了HSE作为PLL输入源。
- HSI 8 MHz 或 HSE,默认选择 HSE 时钟。
PLL(Phase Locked Loop)
- PLL源时钟分频器:HSE被1分频(即不改变频率)后输入PLL。
- PLL倍频器:设置为8倍,即HSE的8 MHz被倍频到64 MHz,作为PLLCLK输出。
系统时钟选择
System Clock Mux:选择系统主时钟(SYSCLK)的源。可以选择HSI、HSE或PLL。图中选用了PLL时钟。
时钟分频器
- AHB Prescaler:AHB总线分频器,图中设置为1倍,不对时钟进行分频,输出的HCLK与SYSCLK相同,都是8 MHz。
- HCLK:核心时钟(HCLK),用于CPU和内存总线。最大值为72 MHz,当前设置为8 MHz。
- APB1 Prescaler:APB1外设总线分频器,设置为2倍。因为APB1最大允许时钟为36 MHz,分频后得到APB1总线时钟为4 MHz。
- APB2 Prescaler:APB2外设总线分频器,设置为1倍,输出与HCLK一致,8 MHz。
外设时钟
- PCLK1:APB1外设时钟,分频后为4 MHz。
- PCLK2:APB2外设时钟,与HCLK相同,为8 MHz。
USB Prescaler:USB时钟分频器,配置为1倍,输出64 MHz(PLL输出)用于USB时钟。
关键模块的时钟频率
- I2S2, I2S3:音频接口I2S时钟,8 MHz。
- SDIO:SD卡接口时钟,8 MHz。
- FCLK:闪存接口时钟,8 MHz。
- Cortex系统定时器:用于Cortex-M核心系统的时钟,8 MHz。
- ADC Prescaler:ADC时钟分频器,当前设置为2倍,ADC时钟为4 MHz。
外设在总线上的分布
- 在STM32的总线上,外设分布在不同的总线(AHB、APB1、APB2)上,下面是主要外设的分类:
AHB(Advanced High-Performance Bus)总线上的外设:
-
AHB总线通常用于高速外设和DMA控制器,负责连接核心系统、存储器以及外设。
-
主要的外设包括
- DMA(Direct Memory Access)控制器:用于内存与外设之间的直接数据传输。
- FSMC(Flexible Static Memory Controller):用于连接外部存储器,如SRAM、NOR Flash等。
- SDIO(Secure Digital Input Output):用于连接SD卡的接口。
- 以太网MAC(Ethernet MAC):如果支持,以太网控制器通常也连接到AHB总线。
- USB OTG(On-The-Go):用于USB连接的外设。
- 闪存接口(Flash Interface):负责与内部闪存进行通信。
APB1(Advanced Peripheral Bus 1)总线上的外设:
- APB1总线连接低速外设,最大工作频率通常是36 MHz。
- 主要的外设包括:
- TIM2 - TIM7:通用定时器2到7,低速定时器,用于计时、脉冲宽度调制(PWM)等。
- USART2、USART3、UART4、UART5:串行通信外设,用于串口通信。
- I2C1、I2C2:I2C接口,用于与I2C兼容设备进行通信。
- SPI2、SPI3:SPI接口,用于高速串行数据通信。
- CAN:控制器局域网(CAN)通信接口。
- DAC(Digital-to-Analog Converter):数字-模拟转换器,用于模拟信号输出。
- PWR:电源管理外设。
- WWDG(Window Watchdog):窗口看门狗定时器,用于系统复位。
- IWDG(Independent Watchdog):独立看门狗,用于系统保护。
APB2(Advanced Peripheral Bus 2)总线上的外设:
- APB2总线连接高速外设,最大工作频率可以达到72 MHz。
主要的外设包括:
- TIM1、TIM8:高级定时器1和8,通常用于电机控制、PWM输出等。
- USART1:高速串口,用于高速通信。
- SPI1:高速SPI接口。
- ADC1、ADC2、ADC3:模数转换器(ADC),用于模拟信号采样和转换。
- EXTI(External Interrupt Controller):外部中断控制器,用于处理外部引脚中断。
- GPIOA - GPIOG:通用输入输出口,用于与外部设备进行交互。
- SYSCFG:系统配置控制器,用于配置系统参数,如复位和时钟。
其它外设:
RTC(Real-Time Clock):实时时钟,用于时间管理,通常连接在低速时钟(LSI或LSE)上。
CRC:循环冗余校验(CRC)计算单元,用于数据完整性校验。
注意事项
- Timer Clock(定时器时钟)
定时器时钟是专门为定时器(Timer)模块提供的时钟信号,特别是那些用于计时、PWM生成、捕获和比较等操作的硬件定时器。 - Peripheral Clock(外设时钟)
外设时钟是为其他外设模块(非定时器)提供的时钟信号。与定时器时钟不同,外设时钟直接来自APB1或APB2的时钟分频器,不会经过额外的倍频。 - 定时器时钟主要负责与定时器相关的任务(如PWM、捕获比较),而外设时钟负责一般外设的运行。
相关文章:

STM32时钟配置图详解
一图概述: 左侧输入时钟源 Input Frequency (LSE/LSI/HSI/HSE) LSE (Low-Speed External):外部32.768 kHz晶体振荡器,通常用于RTC(实时时钟)。LSI (Low-Speed Internal):内部低速时钟,频率为…...

Vscode——调试时,修改变量值
第一步:点击变量,鼠标右键 第二步:点击 设置值...

1. 初识LLM API:环境配置与多轮对话演示
其实AI应用并不是一个什么很高大上的东西,你可以将它当作一个文字的“调库”行为,“调库”只需要知道库名就行了,这里实际也是如此。甚至你只需要知道你想问什么,将你的消息作为输入,就能从大模型得到输出。而这个“库…...

【AI编程助手】VsCode插件--通义灵码
目录 摘要 一、插件安装 二、“通义灵码” 使用 三、官网教程 四、总结 五、参考信息 摘要 通义灵码是一款强大的 AI 编程助手。它能够理解编程相关的复杂逻辑,为开发者提供高效、准确的代码生成与优化建议。在编程过程中,它可以辅助处理各种任务&…...

9月10号的学习
//界面1 头文件 signals://界面1的自定义信号void my_signal(); private slots:void on_pushButton_2_clicked();void on_pushButton_clicked(); //界面1 .cpp文件 void Widget::on_pushButton_2_clicked() {QMessageBox msg(QMessageBox::Warning,"警告","是否…...
QtC++截图支持窗口获取
介绍 在截图工具中你会发现,接触到窗口后会自动圈出目标窗口,个别强大一点的还能进行元素识别可以自动圈出元素,那么今天简单分析一下QTc如何获取窗口并圈出当前鼠标下的窗口。 介绍1.如何获取所有窗口2.比较函数3.实现窗口判断 结尾 1.如何获取所有窗口…...

料品档案没有配置主供应商信息
这个问题经常会出现在普通用户的面前。没有合适的工程人员去打理料品档案。信息是缺漏的。用友给出来的提示,也让人摸不着头脑。只能是记下来备用吧。...
springboot属性加载优先级和常见命令行属性
属性加载优先级: 1.SpringApplication:启动的main方法里注入的属性 2.PropertySource:通过注解 加载的数据配置文件 3.Config data file:application.yml/.properties 4.OS environment variable:环境变量 5.Command l…...
Math Reference Notes: 因式定理
文章目录 1. 因式定理的定义2. 因式定理的数学表达:3. 因式定理的推导4. 因式定理的含义5. 因式定理的应用6. 因式定理与余式定理的关系7. 因式定理的应用领域8.因式定理的局限性 因式定理是多项式代数中的一个重要工具,帮助我们通过多项式的根来因式分解…...

Kubernetes------Service
目录 一、属性说明 二、定义和基本配置 1、定义 2、创建Service 2.1、typeClusterIP 2.2、typeNodePort 2.3、固定IP访问 三、Service、EndPoint、Pod之间的关系 四、服务发现 1、基于Service中IP访问外部服务 2、基于Service中域名访问外部服务 五、Ingress的安装和使…...
C#的LINQ语句
在 C# 中,LINQ(Language Integrated Query)是一种强大的查询技术,它允许你使用熟悉的 C# 语法来查询数据集合。LINQ 可以用于查询各种数据源,包括数组、列表、数据集、SQL数据库等。 以下是一些基本的 LINQ 语句示例&…...

项目实战系列三: 家居购项目 第三部分
文章目录 🍃后台分页🍅后台分页导航 🍃首页分页🍅首页分页导航🍅首页搜索🍅两个奇怪的问题🍅会员显示登录名🍅注销登录🍅验证码 🍃后台分页 程序框架图 1.…...
【WPF】Border的使用
在 WPF 中,Border 控件是一个非常实用的容器控件,它可以用来为其他控件添加边框、背景颜色、边距等样式。Border 本身没有内置的行为,但是它可以包含一个子元素,并且可以通过各种属性来自定义外观。 Border基本属性 Child: 表示…...

机器学习(西瓜书)第 4 章 决策树
4.1 决策树基本流程 决策树模型 基本流程 在第⑵种情形下,我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别;在第⑶种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多…...

8、值、指针、引用作为参数或返回值
一、作为参数 1、值传递 #include <iostream> using namespace std;void swap(int a, int b) {cout << __FUNCTION__ << "交换前a:" << a << " b:" << b << endl;int tmp a;a b;b tmp;cout << __FUN…...

向量——通俗地解释
1. 向量 向量是一个既有大小(模)又有方向的对象,它可以用来描述空间中的位置、力或速度等量。我们可以从物理、数学和计算机的角度来看待向量,这三种观点看似不同却有关联。 (1)在物理专业视角下,向量是空间中的箭头&a…...

新书宣传:《量子安全:信息保护新纪元》
《量子安全:信息保护新纪元》 前言本书的看点本书的目录结语 前言 你好! 这是我第一次发布类广告的博文,目的也很单纯,希望以作者的身份介绍一下自己出版的图书——《量子安全:信息保护新纪元》。此书于2024年7月出版…...

Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示
文章目录 relayoutWindow流程概览应用端处理——ViewRootImpl::setView -> relayoutWindowViewRootImpl::setViewViewRootImpl::performTraversalsViewRootImpl::relayoutWindow Surface的创建WindowManagerService::relayoutWindow了解容器类型和Buff类型的SurfaceBuff类型…...

【计网】计算机网络基础
当自律变成一种本能的习惯, 你就会享受到它的快乐。 --- 村上春树 --- 初识计算机网络 1 初识协议1.1 协议分层1.2 OSI七层模型1.3 TCP / IP协议 2 初识局域网2.1 什么是局域网2.2 MAC地址2.3 局域网通信 3 简单认识IP地址 1 初识协议 1.1 协议分层 首先&#…...

秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)
目录 准备工作 整理数据集 将验证集从原始的训练集中拆分出来 整理测试集 使用函数 图像增广 读取数据集 定义模型 定义训练函数 训练和验证数据集 对测试集进行分类并提交结果 准备工作 首先导入竞赛需要的包和模块 import collections import math import os i…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...