当前位置: 首页 > news >正文

STM32学习之一:什么是STM32

目录

1.什么是STM32

2.STM32命名规则

3.STM32外设资源

4. STM32的系统架构

5. 从0到1搭建一个STM32工程


学习stm32已经很久了,因为种种原因,也有很久一段时间没接触过stm32了。等我捡起来的时候,发现很多都已经忘记了,重新捡起来吧。

每次谈到stm32如何如何,那么该如何解释什么是stm32呢?

1.什么是STM32

stm32 是ST公司基于ARM Cortex-M内核开发的32位微控制器,它是一个微控制器产品系列的总称。观看stm32的技术参考手册可以发现,stm32有很多子系列:stm32小容量产品,stm32中容量产品、stm32大容量产品和STM32互联型产品;按照功能上划分,又可分为STM32F101xxx,STM32F102xxx,STM32F103xxx系列。

注:

1. 技术参考手册对每种功能模块都分一个章节,详细描述了包含了各个功能模块的内部结构,所有可能的功能描述,以及各种工作模式的使用和寄存器配置等详细信息。因此不论使用何种STM32产品,在编程阶段,都需要参考技术参考手册来完成对STM32的驱动。

数据手册包含了产品的基本配置,如内置Falsh和RAM容量、外设模块的种类和数量等,管教的数量和分配,电气特性,封装信息等。在设计硬件电路时,是非常有帮助的。

技术参考手册(对应STM32微控制器产品)和数据手册(对应不通种类的STM32)涵盖了STM32的所有信息,因此学习STM32,这些手册是少不了的,不仅少不了,还应该多看看,多理解手册内容,这对我们理解STM32功能以及编写代码、或者调试相关项目的时候都是很有帮助的。

在此处附上STM32微控制器的技术参考手册:以及STM32F103xxx中容量产品的数据手册:cd00161566.pdf (st.com),其余产品数据手册可以st.com官网寻找。

2. ARM Cortex-M  是ARM公司设计的ARM内核架构之一,除此之外,还包含A核和R核。

ARM Cortex-A核专注于高效处理多线程和多任务,适用于智能手机、平板电脑等领域。

ARM Cortex-R核专注于实时性和可预测性,适用于汽车电子控制器等需要实时响应的领域。

ARM Cortex-M核专注于低功耗和实时控制,适用于小型嵌入式系统。

参考:https://zhuanlan.zhihu.com/p/665194718

2.STM32命名规则

上面说到STM32有很多种产品,例如STM32F103C8T6等等,他为什么叫这个名字,这个名字代表了什么?翻开技术参考手册第三页,详细解释了STM32系列产品命名规则。

由上图可见,STM32表示基于ARM核心的32位微控制器;

F表示通用类型,103表示增强型,C代表引脚数目,8表示闪存存储器容量,T表示LQFP封装,6表示芯片可以在-40℃~85℃温度范围下工作。

3.STM32外设资源

谈到STM32,离不开其丰富的外设资源,那么STM32都有那些外设,详看下图:

下图来自:哔哩哔哩--江协科技up的STM32课程资料,强推大家看,up讲的非常好

这些外设资源是学习STM32最基础的内容,以后学习过程中要了解到每个外设的功能、内部结构、如何使用等,只有了解这些,才能得心应手的驱动外设,编写代码,实现想要的功能。

注:并不是所有的STM32产品都有这些外设,STM32产品系列不同,片上外设资源也不尽相同,同样的,技术参考手册第4-5页详细说明了各个系列产品所包含的外设。

4. STM32的系统架构

ICode指令总线,DCode数据总线,System系统总线

其中ICode总线和DCode总线主要是用来连接Flash闪存的,(Flash里面存储于的就是我们编写的程序),ICode总线就是用来加载程序指令的。DCode数据总线是用来加载数据的,例如常量和调试数据等。

System系统总线连接到SRAM(存储程序运行时的变量数据)、FSMC

AHB系统总线就是用来挂载各种外设的,AHB表示先进高性能总线,挂载的一般是最基本的或者是性能比较高的外设,比如复位和时钟控制这些最基本的电路。

后面有两个桥接,桥接1和桥接2连接到了APB2和APB1两个外设总线上,APB总线的意思是先进外设总线,用于连接一般的外设。因为AHB和APB的总线协议、总线速度、还有数据传送格式的差异,所以中间需要两个桥接来完成数据的转换和缓存。

AHB的整体性能比APB高一些,其中APB2的性能又比APB1性能高些,了解外设挂载在那个总线上就可以。

DMA主要做数据搬运这种简单但需要反复使用的场景,DMA拥有和CPU一样的总线控制权,用于访问各种外设,当需要DMA进行数据搬运时,外设就会通过请求线发送DMA请求。然后DMA获得总线控制权,访问并转运数据,整个过程不需要CPU参与,使得CPU可以解放出来干其他事情。就相当于一个CPU的小秘书,用于直接读取外设的数据。比如遇到大量数据搬运这种情况,使用CPU来进行搬运太浪费时间了(费时费力,简单的数据搬运可以使用DMA)

5. 从0到1搭建一个STM32工程

本地新建一个Project文件用来存放STM32工程,STM32工程文件较多,可以分几个文件夹存储文件,例如Start文件夹用来存储STM32所需的启动文件,Library文件夹用来存放STM32的各种外设文件,User文件夹用来存放main等相关文件,之后如果我们自己写相关模块的驱动文件,也可以创建一个文件夹(例如BSP)来存放模块的驱动文件。

STM32工程所需库文件,可以在https://www.st.com/en/embedded-software/stsw-stm32054.html地址下载,下载下来后我们来填充这几个文件夹的内容。

首先是Start文件夹:

 注意,start文件夹中start_up开头的几个汇编文件,不需要全部放到STM32工程中,需要找到自己芯片对应的容量,选择对应的容量进行添加,例如使用STM32F103C8T6,属于中容量,则选择md,使用STM32F103ZET6,属于大容量,则选择ld。

其次Library文件夹:

最后是User文件夹:

这样,文件夹内容就填充好了,下面我们将该文件拓扑在Keil5中复制一份。

但是此刻,keil工程并不知道我们头文件的路径,因此还需将各种包含的头文件在Keil中配置下。

上图还有一个框到的绿色部分,这个宏定义的来源可以查看stm32f10x.h文件。

 之后编译一下,可以看到0error,至此,STM32工程搭建完毕!

相关文章:

STM32学习之一:什么是STM32

目录 1.什么是STM32 2.STM32命名规则 3.STM32外设资源 4. STM32的系统架构 5. 从0到1搭建一个STM32工程 学习stm32已经很久了,因为种种原因,也有很久一段时间没接触过stm32了。等我捡起来的时候,发现很多都已经忘记了,重新捡…...

AI绘画Stable Diffusion 超强一键去除图片中的物体,免费使用!

大家好,我是设计师阿威 在生成图像时总有一些不完美的小瑕疵,比如多余的物体或碍眼的水印,它们破坏了图片的美感。但别担心,今天我们将介绍一款神奇的工具——sd-webui-cleaner,它可以帮助我们使用Stable Diffusion轻…...

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据…...

Github上前十大开源Rust项目

在github上排名前十的Rust开源项目整理出来与大家共享,以当前的Star数为准。 Deno Deno 是 V8 上的安全 TypeScript 运行时。Deno 是一个建立在V8、Rust和Tokio之上的 JavaScript、TypeScript 和 WebAssembly 的运行时环境,具有自带安全的设置和出色的开…...

硬件开发笔记(二十):AD21导入外部下载的元器件原理图库、封装库和3D模型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139707771 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

竞赛选题 python opencv 深度学习 指纹识别算法实现

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python opencv 深度学习 指纹识别算法实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:4分创新点:4分 该项目较为新颖…...

RK3568开发笔记(三):瑞芯微RK3588芯片介绍,入手开发板的核心板介绍

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139905873 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统

版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100 如有错误,欢迎指正。 本文简单介绍如何将 igh 移植到 zephyr、freertos、rtems、rtthread等RTOS ,甚至 windows 上。 ##前言 目前&#xff0…...

ansible copy模块参选选项

copy模块用于将文件从ansible控制节点(管理主机)或者远程主机复制到远程主机上。其操作类似于scp(secure copy protocol)。 关键参数标红。 参数: src:(source:源) 要复制到远程…...

展厅设计主要的六大要素

1、从创意开始 展示设计的开始必须创意在先。根据整体的风格思路进行创意,首先要考虑的是主体的造型、大小高度位置以及它和周围展厅的关系。另外其他道具设计制作与运作方式也必须在创意中有明确的体现。 2、平面感 平面感是指对展示艺术设计平面图纸审美和功能两个…...

【数据结构与算法】最小生成树,Prim算法,Kruskal算法 详解

最小生成树的实际应用背景。 最节省经费的前提下&#xff0c;在n个城市之间建立通信联络网。 Kruskal算法&#xff08;基于并查集&#xff09; void init() {for (int i 1; i < n; i) {pre[i] i;} }ll root(ll a) {ll i a;while (pre[i] ! i) {i pre[i];}return i p…...

【启明智显产品分享】Model3工业级HMI芯片详解系列专题(三):安全、稳定、高防护

芯片作为电子设备的核心部件&#xff0c;&#xff0c;根据不同的应用领域被分为不同等级。工业级芯片适用于工业自动化、控制系统和仪器仪表等领域&#xff0c;对芯片的安全、稳定、防护能力等等有着较高的要求。这些芯片往往需要具备更宽的工业温度范围&#xff0c;能够在更恶…...

【面试干货】Java中的四种引用类型:强引用、软引用、弱引用和虚引用

【面试干货】Java中的四种引用类型&#xff1a;强引用、软引用、弱引用和虚引用 1、强引用&#xff08;Strong Reference&#xff09;2、软引用&#xff08;Soft Reference&#xff09;3、弱引用&#xff08;Weak Reference&#xff09;4、虚引用&#xff08;Phantom Reference…...

对称/非对称加密

对称加密和非对称加密是两种主要的加密方式&#xff0c;用于保护数据的机密性和完整性。它们在密钥的使用和管理上有着显著的不同。 对称加密 原理 对称加密&#xff08;Symmetric Encryption&#xff09;使用相同的密钥进行加密和解密。这意味着发送方和接收方必须共享相同…...

DDei在线设计器-API-DDeiSheet

DDeiSheet DDeiSheet是代表一个页签&#xff0c;一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据&#xff0c;在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。 一个DDeiFile实例至少包含一个DDeiSheet…...

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一种数组结构// 并查集初始化 void init() {for (int i 0; i < n; i)…...

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Mutex

CMSIS 2.0接口中的Mutex&#xff08;互斥锁&#xff09;是用于在多线程环境中保护共享资源的访问机制。Mutex&#xff08;互斥锁&#xff09;是一种特殊的信号量&#xff0c;用于确保同一时间只有一个线程可以访问特定的共享资源。 在嵌入式系统或多线程应用中&#xff0c;当多…...

使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集

文章目录 一、什么是“软件I2C”和“硬件I2C”1.1 什么是“软件I2C”1.2 什么是“硬件I2C” 二、软件I2C和硬件I2C2.1 软件模拟2.2硬件I2C 三、配置STM32CubeMX四、配置keil代码4.1 创建文件4.2 复制文件4.3 在keil中添加文件4.4 添加路径4.5 代码修改 五、硬件连接六、总结 一…...

Huffman树——AcWing 148. 合并果子

目录 Huffman树 定义 运用情况 注意事项 解题思路 AcWing 148. 合并果子 题目描述 运行代码 代码思路 其它代码 代码思路 Huffman树 定义 它是一种最优二叉树。通过构建带权路径长度最小的二叉树&#xff0c;经常用于数据压缩等领域。 运用情况 在数据压缩中&a…...

05 Pytorch 数据读取 + 二分类模型

05 Pytorch 数据读取 二分类模型05 Pytorch 数据读取 二分类模型05 Pytorch 数据读取 二分类模型 01 数据读取 DataLoader&#xff08;set作为参数&#xff09; 02 Dataset 从哪读&#xff0c;怎么读&#xff1f; 功能&#xff1a;数据从哪里读取&#xff1f; 如何读取…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...