专题 - 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…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...