文章目录
STM32相关名词解释
在本文中,我们将简要的介绍一下与STM32相关的一些名词概念。主要涉及以下名词:ARM、ST、STM32以及我们使用的MCU的简单介绍。
ARM
为了更好地理解STM32微控制器,我们需要先了解一下ARM这个名词。
ARM公司
ARM,首先是一家半导体公司,安谋国际科技股份有限公司[Arm Limited (or its affiliates)] ,即ARM有限公司或它的附属公司。
ARM是一家英国的公司,2016年被日本软件银行集团(SoftBank)收购,2020年曾被英伟达(NVIDIA)收购,但没有成功。

ARM不直接从事芯片的生产和销售工作,而是专门从事**ARM架构、ARM处理器核心(CPU)**的研发设计工作,然后卖给下游合作伙伴厂商,由下游合作商设计生产出具体的产品进行售卖。
ARM在这个过程中,只卖解决方案,进行知识产权授权。
当然下游的合作厂商卖出了产品,赚到了钱,肯定是要分给ARM公司的。ARM公司的这种商业模式堪称"躺着赚钱"。
ARM架构
ARM架构最主要的特点就是高性能、低功耗以及灵活性,这种特点使得ARM架构在移动端和嵌入式领域具有绝对垄断级别的领先:
- **几乎所有智能手机、平板电脑的核心处理器都采用ARM架构。**比如苹果公司的A系列处理器,高通的骁龙系列处理器,华为的麒麟(Kirin)系列处理器等等。
- 苹果公司推出的M系列处理器也属于ARM架构的处理器,苹果公司还率先将它用于PC端处理器,使得MacBook笔记本的性能强劲,功耗低,续航极强。
- 嵌入式领域最常用的STM32系列微控制器,也是基于ARM架构设计研发的。
一个非常典型的例子就是:苹果公司的A系列和M系列芯片,它们都是基于ARM架构再研发的芯片。
ARM处理器核心(CPU)
除了设计研发系统架构,ARM公司还基于自身设计的ARM架构,研发了一系列成品处理器核心(CPU),下游合作厂商如果想要更省事可以直接拿设计好的成品处理器核心进行二次研发。
一个经典的例子就是:STM32微控制器。STM32直接使用ARM公司设计好的处理器核心,并将其集成到微控制器中。STM32并没有自行设计处理器核心,而是直接使用ARM的处理器核心。
总之,ARM在不同的语境中,可以有以下三种含义:
- ARM公司:专注于设计ARM架构和处理器核心,并将其授权给下游厂商。
- ARM架构:一种处理器架构,类似于桌面端的x86架构,广泛应用于移动端、嵌入式系统等领域。ARM架构以低功耗、高性能和灵活性为特点。
- ARM处理器核心:ARM公司设计的具体处理器核心(如Cortex-A、Cortex-M系列),厂商可以选择使用这些现成的核心来构建自己的产品。
ARM架构的发展历史
ARM作为一种架构,从1985年的ARMv1 架构开始,一直发展到今天。最新的ARM架构版本是2021年正式发布的ARMv9架构。
ARM架构是一种使用**精简指令集(RISC)**的系统架构,其特点是通过减少指令集的数量,仅重复执行简单的指令,实现了更简单、更高效、功耗更低、体积更小的处理器设计。
这使得ARM架构的处理器特别适用于移动端和嵌入式领域,如智能手机、平板电脑、物联网设备和消费电子产品。
与之对应的x86架构,则是一种使用**复杂指令集(CISC)**的系统架构。
复杂指令集包含了更多种类和更复杂的指令,每条指令可以执行更为复杂的操作。这种设计虽然增加了指令的灵活性和功能性,但也导致了处理器设计的复杂性和功耗的增加。
因此,x86架构的处理器通常性能强大,适用于桌面计算机、服务器和高性能计算领域,但在功耗和散热方面不如ARM架构的处理器高效。
ARM架构和X86架构的区别可以查看下表:
ARM与x86架构的主要区别
| 特性 | ARM架构 | x86架构 |
|---|---|---|
| 指令集类型 | 精简指令集(RISC) | 复杂指令集(CISC) |
| 功耗 | 低功耗,适合电池供电设备 | 相对较高功耗,适合需要高性能的设备 |
| 性能 | 高能效比,适合移动和嵌入式应用 | 高单线程性能,适合桌面和服务器应用 |
| 应用领域 | 移动设备、嵌入式系统、物联网、消费电子 | 桌面计算机、服务器、高性能计算、多媒体应用 |
| 生态系统 | 丰富的软件支持,强大的嵌入式和移动生态系统 | 广泛的软件支持,成熟的桌面和服务器生态系统 |
| 成本 | 成本较低,适合大规模集成和定制化应用 | 成本较高,适合高性能和复杂应用 |
| 向后兼容性 | 一般向后兼容性较好,但不如x86架构广泛 | 高度向后兼容,确保旧软件和应用能够在新处理器上运行 |
这些内容了解即可,满足一下好奇心即可。
ARM处理器核心的发展历史
上文中已经提到了ARM是一种架构技术名称,同时ARM公司还基于ARM架构设计了一些处理器的实现,这就是ARM处理器。
ARM处理器核心的命名早期采用数字命名,从1985年的ARM1处理器 ,到2002年的ARM11系列处理器。
随后从2004年开始,ARM公司推出了Cortex-M系列处理器核心,正式放弃了数字命名的方式,而是提供了多个处理器核心系列,分别针对不同的市场需求和应用场景。
目前ARM处理器核心主要分为三个系列(这三个系列刚好又是ARM首字母):
- Cortex-A系列(Application) :
- 主要用于智能手机、平板电脑、嵌入式设备和高性能计算场景。
- 支持多核处理和复杂的操作系统(如Android、Linux)。
- 具有较强的性能和较高的频率,适合运行复杂的应用和多媒体处理。
- 示例:Cortex-A53、Cortex-A72、Cortex-A76、Cortex-A78、Cortex-A78C、Cortex-X1等。
- Cortex-M系列(Microcontroller) :
- 主要是低功耗的微控制器,广泛应用于嵌入式系统、物联网设备、传感器、家居自动化、汽车电子等领域。
- 低功耗、简化的设计和低成本是Cortex-M系列的特点,适合实时操作系统(RTOS)和简单的嵌入式应用。
- 示例:Cortex-M0、Cortex-M3、Cortex-M4、Cortex-M7、Cortex-M33、Cortex-M55等。
- Cortex-R系列(Real-time) :
- 主要针对实时应用设计,适用于硬盘控制器、汽车电子、工业控制等对实时性要求极高的系统。
- 强调实时性、确定性和可靠性,提供更高的响应速度和稳定性。
- 示例:Cortex-R5、Cortex-R7、Cortex-R8等。
其发展历史可以用下图表示:

这部分内容也属于简单了解即可。
ST
下面我们来介绍一下ST,这是一家全球著名的半导体公司。
STMicroelectronics(ST) 是全球领先的半导体公司之一,总部位于瑞士日内瓦。
ST成立于1987年,由意大利SGS微电子公司和法国Thomson Semiconducteurs的合并而成。由于这样的诞生背景,中文直接将ST翻译成意法半导体公司,可以说很简洁精妙。

半导体是一种导电性能介于导体(如铜、铝等金属)和绝缘体(如橡胶、陶瓷等)之间的材料。常见的半导体材料有硅(Si)、锗(Ge)、砷化镓(GaAs)等,其中硅是应用最为广泛的半导体材料。
与之相关的半导体产业,则是专注于半导体材料、器件及其制造技术的发展。
半导体产业是电子产业的基石,全世界著名的半导体公司有:英伟达(NVIDIA) 、高通(Qualcomm)、Intel、AMD、台积电、联发科、三星、华为海思、中芯国际等。
ST公司最著名的产品就是STM32系列微控制器(MCU),具体来说,是ST公司基于ARM Cortex-M系列处理器核心,设计外围电路组件,构建的一系列微控制器。
STM32是嵌入式领域最最著名,最常见,最经典的微控制器之一,它功能强大、性能优异、片上资源丰富、功耗低。某种程度上来说,STM32已经成为当今单片机的代名词。
STM32之所以如此流行,不仅仅是因为芯片本身的强大性能,还得益于ST公司为其提供的完善开发生态。
主要的支持工具包括:
- 丰富的开发库:例如标准外设库(标准库)、HAL库、LL库等,使得开发者能够快速上手,减少开发时间。
- STM32CubeMX:一款图形化配置工具,帮助开发者轻松配置微控制器外设和中间件,并生成初始化代码。
- STM32CubeIDE:基于Eclipse的集成开发环境,支持代码编辑、编译、调试等全流程开发,提供了一站式开发体验。
这些工具和资源大大降低了STM32的学习成本,同时提升了开发效率。
STM32的成功吸引了一大批追随者,现在许多其他芯片公司也效仿ST公司,为自家生产的芯片提供较完备的开发库以及开发工具。
近些年来,随着国产芯片的迅猛发展,国产芯片性能优异价格便宜,越来越有挑战STM32地位的趋势。
但是由于STM32广泛的应用基础和成熟的开发生态,它仍然是嵌入式开发的首选平台,对后续开发其他芯片具有很高的借鉴和指导意义。
STM32
上面已经讲过了,所谓STM32指的是ST公司设计生产的,采用ARM Cortex-M系列处理器核心的STM32系列微控制器。
其中:
- ST:是意法半导体的缩写,代表该芯片的生产制造商是ST公司。
- M:表示 Microcontroller,即微控制器,单片机。
- 32:代表该微控制器是 32 位的,意味着它的数据处理能力和寻址空间等都是基于 32 位架构,能进行更复杂、更高效的数据处理和运算,相较于 8 位或 16 位的微控制器,在性能和功能上有较大提升。
ST公司把STM32分为了四个系列,如下图所示:

用户可以根据不同的需求,选择不同的微控制器。
三大核心数据:
- CoreMark得分:用数值量化处理器的计算性能,跑分越高,处理器性能越强。
- CPU频率:处理器的时钟频率,单位是兆赫兹(MHz),即每秒的时钟周期数,以百万次为单位。简单来说,时钟频率越高,计算速度越快,性能越强。当然功耗和发热也会更严重。
- 内核架构:STM32系列微控制器都采用ARM Cortex-M系列处理器核心,这里标注的是它具体采用哪一款处理器核心。Cortex-M0+(低功耗)→M3→M4(平衡)→M7(高性能)的阶梯式升级
四大产品线:
- 高性能(High Performance):适用于工业自动化、高端仪器等计算密集型场景,性能最强,功耗最高,价格最贵。
- 主流(Mainstream):平衡性能与成本,适合家电、消费电子等高性价比场景。
- 超低功耗(Ultra-Low Power):专为物联网传感、穿戴设备优化,功耗低续航强大。
- 无线(Wireless):自带蓝牙/Wi-Fi等无线通信模块,面向智能家居、远程监控等场景。
我们后续课程采用的STM32F103C8T6单片机,属于STM32F1系列,从图中可以得知:
- 它的CoreMark跑分是177,时钟频率是72MHz,代表它的性能中等偏弱,属于低功耗的微控制器。
- 采用ARM Cortex-M3处理器内核。
这些内容也属于了解即可。
STM32F103C8T6
到这里,我们更进一步的告诉大家,我们使用的微处理器(MCU,即单片机)型号是:STM32F103C8T6

看到这个型号的命名是不是非常头大,不着急,我们慢慢来解释这个命名。
命名解释
STM32微控制器的命名,以表格形式展示每个部分的含义,如下表所示:
| 命名组成部分 | 示例 | 含义 |
|---|---|---|
| 1. 产品线名称 | STM32 |
代表ST公司的32位MCU产品线,基于 ARM Cortex-M 内核设计。 |
其它比如:STM8 |
代表ST公司的8位MCU产品线,基于 ST 自研的 STM8 内核设计。 | |
| 2. 产品系列名称 | F1 |
主流系列的第一代产品,是最早发布的STM32系列之一。 |
| - F:主流系列(如 F0、F1、F4 等,适合通用应用)。 | ||
| - L:低功耗系列(如 L0、L4)。 | ||
| - H:高性能系列(如 H7)。 | ||
| - G:通用系列(如 G0、G4)。 | ||
| - W:无线系列(如 WB、WL)。 | ||
| 3. 子系列 | 103 |
表示具体的子系列: |
- 101/102:基础小型系列,外设少价格低廉。 |
||
- 103:性能系列,外设更丰富、适合更高性能和需求的场景。 |
||
- 105/107:增强系列,提供更丰富的通信配置。 |
||
| 4. 封装类型 | C |
表示芯片的封装类型(Package)和引脚数量: |
| - C:LQFP48(四方扁平封装,48 引脚)。 | ||
| - R:LQFP64(64 引脚)。 | ||
| - V:LQFP100(100 引脚)。 | ||
| - Z:LQFP144(144 引脚)。 | ||
| - K:BGA 或 WLCSP(球栅阵列封装,适合高集成度应用)。 | ||
| 5. 闪存容量 | 8 |
表示芯片内部闪存的大小(单位为 KB,有些标注为字母): |
- 6:32KB 闪存。 |
||
- 8:64KB 闪存。 |
||
- B:128KB 闪存。 |
||
- C:256KB 闪存。 |
||
- E:512KB 闪存。 |
||
- G:1MB 闪存。 |
||
- I:2MB 闪存。 |
||
| 6. 温度等级 | T |
表示芯片的工作温度范围: |
| - T:工业级(-40°C ~ +85°C)。 | ||
| - H:扩展工业级(-40°C ~ +105°C)。 | ||
| - K:汽车级(-40°C ~ +125°C)。 | ||
| 7. 电气特性和频率 | 6 |
表示芯片的供电电压范围、工作频率等特性: |
- 4:低频版本,3.3V 工作电压。 |
||
- 6:高频版本,3.3V 工作电压,支持较高频率。 |
||
- 7:增强版本,支持更高的性能和频率范围。 |
STM32F103C8T6 的完整解读:
- STM32:ST 公司设计研发的 32 位微控制器。
- F1:主流 STM32 系列的第一代芯片。
- 03:F1 系列的增强性能子系列。
- C:48 引脚 LQFP 封装。
- 8:64KB 的闪存容量。
- T:工业级温度范围(-40°C ~ +85°C)。
- 6:3.3V 工作电压,支持高频版本。
芯片型号中需要重点关注的细节
现在我们使用的单片机型号是:"STM32F103C8T6"
这个命名中,最需要关注的是两个细节:
- C:代表这款单片机,一共有48个引脚,也代表封装工艺是LQFP48。
- 8:代表这款单片机,其Flash闪存的容量是64KB。
这里可能要解释一下Flash闪存的概念。
闪存(Flash)是集成在MCU片内的一个存储器,它的作用是存储程序代码或者某些需要长期保存的数据,在系统断电后它仍然能够正常保存数据。
你可以把闪存之于MCU,理解成硬盘之于通用计算机系统,都是用于持久保存数据的存储器。
当然,闪存是直接集成到MCU内部的,属于MCU芯片的一部分,而硬盘显然和CPU没什么关系。
这里之所以重点提一下Flash闪存,是因为ST公司会按照芯片闪存容量,把芯片分为以下几个密度档次:
- 低密度(Low-density、LD):16KB ~ 32KB,比如经典的STM32F103C6T6,有些中文手册也翻译成小容量。
- 中密度(Medium-density、MD) :64KB ~ 128KB,比如我们使用的、经典的STM32F103C8T6,有些中文手册也翻译成中等容量。
- 高密度(High-density、HD):256KB ~ 512KB,比如STM32F103RCT6,有些中文手册也翻译成大容量。
- 超高密度(XL-density、XL): 512KB ~ 1MB,比如STM32F103ZET6,超高密度的概念目前已不在手册中常提,但在很多源代码都能够见到。
除此之外,还有一个特殊的产品线:
互联型产品(Connectivity-Line、CL):ST 官方为满足 网络通信和高级外设互联 需求而专门推出的一个子系列。在F1系列的芯片中,STM32F105 和 STM32F107 两大类,Flash闪存容量一般在64 KB ~ 256 KB之间。
这些细节,我们都需要了解知道。
MCU的其它信息
除此之外关于STM32F103C8T6 ,我们还可以了解一些其它信息,比如:
- 内核:ARM Cortex-M3
- RAM(内存):20KB(SRAM,即静态 RAM的方式实现)
- ROM(可以理解成外存):64KB(以Flash闪存存储器取代了传统的ROM)
- ARM Cortex-M3基于ARMv7-M架构设计。
- 官方设计时钟主频率:72MHz,在这个频率下单片机可以稳定运行工作。
说到这里,你有没有好奇过一个问题:
上述数据是从哪里来的呢?
总不能是自己信口雌黄编出来的,肯定是查资料/文档得到的。
于是这就涉及到两个在学习单片机开发过程中,极其重要的文档:参考手册和数据手册。
两个重要的文档(重点)
现在我们学习和使用的单片机,叫做STM32F103C8T6,这是由ST公司生产的一款经典单片机。
我们已经知道了这款单片机的命名规则,知道了这款单片机的命名由来。
接下来,你想要使用这款单片机。必然的,你的脑海中就会生出两个问题:
- 这款单片机长啥样?里面有什么东西?能做什么事情?
- 这款单片机咋用?怎么实现各种各样的功能?
作为单片机的生产制造厂商ST公司,如果他不出具文档说明这些事情,难道还指望用户去猜吗?
嵌入式开发的学习,必然涉及硬件,而硬件的说明与使用必然依赖硬件生产厂商官方文档,任何硬件都是如此。所以学习嵌入式,第一个想法应当是找官方文档!!!
ST公司针对这两个问题,给出了两个重要的文档:
- 用于解释**"这颗芯片长什么样、能干什么"的数据手册(DS,Datasheet)**
- 用于解释**"这颗芯片怎么用,怎么实现功能"的参考手册(RM,Reference Manual)**
数据手册
具体而言,**数据手册(DS,Datasheet)**可能包含以下内容:
- 芯片型号说明,比如STM32F103C8T6的命名规则
- 芯片物理参数,比如封装工艺、芯片尺寸、引脚数量、工作温度等
- 芯片电气参数,比如工作电压、电流、IO特性、时钟时序等
- 单片机的存储容量(Flash/SRAM)
- 引脚定义(重要)
- 可以了解该型号芯片"到底有哪些外设"
- ...
总之一句话,数据手册就是芯片的说明书,告诉你芯片的参数与"有没有"。
在给大家提供的资料:
"王道嵌入式软件环境---参考资料文档---数据手册"中,可以找到《STM32F103X8B数据手册》,其中的:
- 8代表Flash 容量等级 = 64 KB,我们所使用的"C8T6"的8,就代表64KB Flash容量。
- B代表Flash 容量等级 = 128 KB,和64KB一样,同属于中等密度。
- 表示该数据手册适用于,Flash容量是64KB和128KB的所有F103系列芯片。当然也包括STM32F103C8T6
实际上该数据手册就是STM32F103系列下,所有中等密度芯片的数据手册。
上一小节当中提到的数据,都来源于这个数据手册。
后续,也有一些数据将会来自于这个数据手册,比如最重要的"引脚定义"。
参考手册
**参考手册(RM,Reference Manual)**可能包含以下内容:
- 芯片的系统架构,即芯片由哪些外设、总线构成。
- 芯片上,所有外设的寄存器结构与描述
- 芯片上,所有外设的工作原理
- ...
总之一句话,参考手册就是芯片的使用说明,告诉你芯片怎么编程使用"。
在给大家提供的资料:
"王道嵌入式软件环境---参考资料文档---参考手册"中,可以找到《STM32F10xxx参考手册》。
在后续的课程内容中,我们学习单片机的外设使用,参考手册是我们最主要查阅的手册。
在某些国产芯片的使用中,也把这类手册叫做"用户手册,UM,User Manual"。
手册的下载(了解)
在实际的工作中,使用的芯片并不一定就是STM32F103C8T6,可能是ST公司的其它型号,更有可能使用一些国产MCU。
那么,如何获取这款芯片对应的《参考手册》和《数据手册》呢?
最优先的方式,是向同事或领导获取。
既然公司正在基于这款芯片进行开发,内部一般都会留有完整、经过验证的手册文档。
但如果真的没有,需要你自行获取文档,那最好的办法就是去官网下载。
比如针对ST公司的芯片,所有芯片的手册文档都可以从ST官网上下载,具体的流程大家可以自行查阅一下,很容易找到。
注意两点:
- 后续,用《参考手册》简称文档《STM32F10xxx参考手册》,包括以后的工作中大家也都普遍这样简称。
- 后续,用《数据手册》简称文档《STM32F103X8B数据手册》,包括以后的工作中大家也都普遍这样简称。
Tips:
有同学问:所有的芯片都有类似的参考手册和数据手册吗?
答:一般来说,大多数 MCU 都会提供这两类文档。只是不同厂商在命名和组织形式上略有差异,有的厂商还会将二者合并为一本用户手册。