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…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
