专题 - 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…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
