专题 - STM32
基础
基础知识
- STM所有产品线(列举型号):

- STM产品的3内核架构(列举ARM芯片架构):

- STM32的3开发方式:

- STM32的5开发工具和套件:

- 若要在电脑上直接硬件级调试STM32设备,则需要仿真器。
STM32CubeIDE仅支持ST-LINK仿真器和J-LINK仿真器。 - STM32F41CEU6与Cortex-M4有何区别?
- STM32F41CEU6是微控制器(MCU);Cortex-M4是嵌入式处理器(Embedded CPU)。
- STM32F41CEU6微控制器的核心组件,是Cortex-M4嵌入式处理器。
- 单片机为什么需要晶振才能正常工作?
- 单片机基于数字电路,而数字电路需要节拍的推动才能正常工作。
- 由于晶振元件材料的特殊性,在为其通电后,会周期性的持续输出变化的电压。这种精确变化的电压信号,就可以为各种数字电路提供“心跳”信号。
STM32F41CEU6微控制器(MCU)
特性
| 项 | 特性 | 备注 |
|---|---|---|
| CPU | ARM Cortex-M4 | 1. 32 位。 2. RISC 架构。 3. 最大速度 100MHz。 4. 有硬件级的单精度浮点计算单元(FPU)。 5. 有硬件级的数字信号处理器(DSP),支持 DSP 指令,以加速特定任务。 |
| RAM | 128K | 1. 嵌入式内存(Embedded RAM)。 2. 静态内存(Static RAM)。 3. 有内存保护单元(Memory Protection Unit),以管理 CPU 对存储器的访问,避免因某个任务执行出错而影响其他任务的数据。 |
| ROM | 512K | 1. 嵌入式存储器(Embedded Flash Memory)。 2. Flash 存储器(Flash Memory)。 3. 非易失性存储器(Non-volatile Memory)。 4. 基于冯诺依曼结构,可同时存储程序和数据。 |
| 存储器加速器 | ART | 通过指令预取队列和分支缓存技术,减少了高速的 CPU 在计算时需经常等待低速的 Flash 的情况。 |
| 工作电压 | 1.7V ~ 3.6V | 支持低电压工作,以支持低功耗设计。 |
| 总线 | 6 条主控总线、5 条被控总线 | 参见:STM32F41CEU6 微控制器(MCU) - 总线。 |
| 时钟 | 多时钟 | 参见:STM32F41CEU6 微控制器(MCU) - 时钟。 |
总线
- 总线分布:

- 功能分布:

据上2图可知:- 6条主控总线分别为:
- Cortex-M4嵌入式处理器的
指令总线(I-bus)(上图中标注的S0)。
以使CPU从总线矩阵中取指。 - Cortex-M4嵌入式处理器的
数据总线(D-bus)(上图中标注的S1)。
以使CPU立即加载到数据和调试。 - Cortex-M4嵌入式处理器的
系统总线(S-bus)(上图中标注的S2)。
以使CPU从内存或外设中取数据。 - 直接内存存取(DMA)控制器1的
DMA控制总线(DMA_MEM1)(上图中标注的S3)。
以使DMA控制器直接接管在存储器间、存储器与外设间的数据传输。 - 直接内存存取(DMA)控制器2的
DMA控制总线(DMA_MEM2)(上图中标注的S4)。
以使DMA控制器直接接管在存储器间、存储器与外设间的数据传输。 - 直接内存存取(DMA)控制器2的
DMA外设控制总线(DMA_P2)(上图中标注的S5)。
以使数据无需经CPU处理而直接在外设与内存间传输。
- Cortex-M4嵌入式处理器的
- 5条被控总线分别为:
- Flash存储器的
程序指令总线(ICODE)(上图中标注的M0)。
因为Flash存储器是同时存储程序与数据的,故需要有一条总线专用于程序指令的取指、执行。 - Flash存储器的
数据读写总线(DCODE)(上图中标注的M1)。
因为Flash存储器是同时存储程序与数据的,故需要有一条总线专用于数据的读写。 系统内存总线(上图中标注的M2)。
用于内存与CPU间、内存与DMA控制器间的数据传输。高级高速总线1(AHB1)的总线(上图中标注的M3)。
属于AHB总线的一个分支,是高速的外设总线。
可将高速运行的、高数据吞吐量的外围设备与系统互相连接起来,以实现互访。高级高速总线2(AHB2)的总线(上图中标注的M4)。
属于AHB总线的一个分支,是高速的外设总线。
可将高速运行的、高数据吞吐量的外围设备与系统互相连接起来,以实现互访。
- Flash存储器的
- 4条外设总线。其中:
1. AHB1总线与AHB2总线,在结构上相对独立。
2. AHB1总线又向下派生出2条总线,分别为APB1总线、APB2总线。
3. 除APB1是低速总线外,其余3个均为高速总线。
- 6条主控总线分别为:
时钟
- 时钟分布:

据上图可知:- 不同于STC51系列等早期的单片机,其晶振只有一个,且频率固定。
在STM32系列单片机中,晶振若干,且频率可调,以适应更多场景、满足更多需求(上图中标注的红、绿、粉框)。 - 时钟的分类:
据上图可知: - 系统时钟(SYSCLK)的时钟信号来源,可由以下3个时钟提供:
- HSI时钟(时钟分布图中标注的序号1)。
- HSE时钟(时钟分布图中标注的序号2)。
- 主PPL时钟(Main PLL)中的P分支(PLLP)(时钟分布图中标注的序号3)。
- 锁相环时钟(PLL)的时钟信号来源,可由以下2个时钟提供:
- HSI时钟(时钟分布图中标注的序号4)。
- HSE时钟(时钟分布图中标注的序号5)。
- 锁相环时钟(PLL),输出以下2路时钟信号:
-
给主PLL(Main PLL)输出提供时钟信号(时钟分布图中标注的序号6)。
主PLL(Main PLL),又输出2路时钟信号:
1. 通过P分支(PLLP)给系统时钟(SYSCLK)输出提供信号(时钟分布图中标注的序号3)。
2. 通过Q分支(PLLQ)给USB OTG FS/随机数发生器/SDIO输出提供信号(时钟分布图中标注的序号8)。 -
给I2S输出提供信号(时钟分布图中标注的序号7)。
-
单片机的CPU频率,由系统(SYSCLK)时钟经AHB分频器分频后的HCLK时钟决定。
-
- 不同于STC51系列等早期的单片机,其晶振只有一个,且频率固定。
相关文章:
专题 - STM32
基础 基础知识 STM所有产品线(列举型号): STM产品的3内核架构(列举ARM芯片架构): STM32的3开发方式: STM32的5开发工具和套件: 若要在电脑上直接硬件级调试STM32设备,则…...
2 XDMA IP中断
三种中断 1. Legacy 定义:Legacy 中断是传统的中断处理方式,使用物理中断线(例如 IRQ)来传递中断信号。缺点: 中断线数量有限,通常为 16 条,限制了可连接设备的数量。中断处理可能会导致中断风…...
自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器
使用 Open AI 兼容的 API,可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。 出于数据安全的考虑,私有部署大语言模型是一个较好的选择 – 本文选择功能强大的开源模型 llama3。 由于 OpenAI 默认阻止出站流量,为了简化网络配置&#…...
抖音矩阵是什么
抖音矩阵是指在同一品牌或个人IP下,通过创建多个不同定位的抖音账号(如主号、副号、子号等),形成一个有机的整体,以实现多维度、多层次的内容覆盖和用户互动。以下是关于抖音矩阵的详细介绍: 抖音矩阵的类…...
怎么抓取ios 移动app的https请求?
怎么抓取IOS应用程序里面的https? 这个涉及到2个问题 1.电脑怎么抓到IOS手机流量? 2.HTTPS怎么解密? 部分app可以使用代理抓包的方式,但是正式点的app用代理抓包是抓不到的,例如pin检测,证书双向校验等…...
pyqt鸟瞰
QApplication是Qt框架中的一个类,专门用于管理基于QWidget的图形用户界面(GUI)应用程序的控制流和主要设置。QApplication类继承自QGuiApplication,提供了许多与GUI相关的功能,如窗口系统集成、事件处理等。 QAppli…...
【Docker】入门教程
目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …...
Token和JWT的关系详细讲解
Token 和 JSON Web Token (JWT) 是两个相关但概念上不同的术语,它们在现代 Web 应用程序的身份验证和授权中扮演着重要角色。下面将详细介绍两者之间的关系以及 JWT 的具体工作原理。 1. Token 概述 Token 是一种广义的概念,指的是任何可以证明用户身份…...
【Linux系列】Curl 参数详解与实践应用
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
解决 Git SSL 连接错误:OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno
问题描述 在执行 git pull 命令时遇到以下错误: > git pull --tags origin main fatal: unable to access github仓库: OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0这个错误通常表示 Git 在尝试通过 HTTPS 连接到 GitHub 时遇到了 SSL 连接问题。 解决方案…...
《Vue3 八》<script setup> 语法
<script setup> 是在单文件中使用 Composition API 的编译时语法糖,里面的代码会被编译成组件 setup() 函数的内容。 <script setup> 中的代码在每次组件实例被创建的时候都都会被执行。 定义数据: 在 <script setup> 语法糖的写法中…...
51单片机和STM32集成蓝牙模块实用指南
51单片机和STM32集成蓝牙模块实用指南 蓝牙模块(如HC-05、HC-06、JDY-31等)是嵌入式开发中常用的无线通信模块,广泛应用于智能家居、物联网、机器人等领域。本文将详细介绍如何将蓝牙模块集成到 51单片机 和 STM32 中,并提供一个…...
Transformer:深度学习的变革力量
深度学习领域的发展日新月异,在自然语言处理(NLP)、计算机视觉等领域取得了巨大突破。然而,早期的循环神经网络(RNN)在处理长序列时面临着梯度消失、并行计算能力不足等瓶颈。而 Transformer 的横空出世&am…...
sql 函数
# 四则运算 - * / # 函数 distinct 、count、sum、max、min、avg、sum、round select concat(device_id 是,device_id ) device_id from device_id_apply_factor where device_id D6A42CE6A0; select concat_ws(|||,device_id ,factor_a ,module_type) from 、device_id_app…...
C# OpenCV机器视觉:OCR产品序列号识别
在一个看似平常却又暗藏玄机的工作日,阿明正坐在办公室里,对着堆积如山的文件唉声叹气。突然,电话铃声如炸雷般响起,吓得他差点从椅子上摔下来。原来是公司老板打来的紧急电话:“阿明啊,咱们刚生产出来的那…...
2012wtl,学习活扩
原文 WTL学习注意–活扩 在Win32下,活扩控件已是个成熟的概念了,即使对COM不太了解,使用活扩控件仍是件容易的事情.既然是控件,无非要关注两个方面,第一是如何调用它的函数,其次是如何接收它的事件. 看看在WTL中,如何使用活扩控件(基本对话框): 1.创建项目时,让对话框支持活…...
使用Deepseek搭建类Cursor编辑器
使用Deepseek搭建类Cursor编辑器 Cursor想必大家都用过了,一个非常强大的AI编辑器,在代码编写上为我们省了不少事,但高昂的价格让我们望而却步,这篇文章教你在Visual Studio Code上搭建一个类Cursor的代码编辑器。 步骤其实非常…...
mysql,PostgreSQL,Oracle数据库sql的细微差异(2) [whith as; group by; 日期引用]
sql示例(MySQL) WITHtemp1 AS (SELECT name AS resultsFROM Users uJOIN MovieRating m ON u.user_id m.user_idGROUP BY m.user_idORDER BY COUNT(*) DESC,left(name,1)LIMIT 1),temp2 AS (SELECT title AS resultsFROM Movies mJOIN MovieRating r ON m.movie_id r.movie_…...
基于改进粒子群优化的无人机最优能耗路径规划
目录 1. Introduction2. Preliminaries2.1. Particle Swarm Optimization Algorithm2.2. Deep Deterministic Policy Gradient2.3. Calculation of the Total Output Power of the Quadcopter Battery 3.OptimalEnergyConsumptionPathPlanningBasedonPSO-DDPG3.1.ProblemModell…...
C#中通道(Channels)的应用之(生产者-消费者模式)
一.生产者-消费者模式概述 生产者-消费者模式是一种经典的设计模式,它将数据的生成(生产者)和处理(消费者)分离到不同的模块或线程中。这种模式的核心在于一个共享的缓冲区,生产者将数据放入缓冲区&#x…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
