欢迎光临
我们一直在努力

嵌入式入门(一)宏观生态到首次烧录

开发板:STM32F103ZET6

工具链:Keil MDK + VSCode + STM32CubeMX + HAL 库

1:嵌入式行业的宏观认识

1.1计算机发展的底层驱动力

1946 年 2 月 14 日,第一台计算机 ENIAC(埃尼阿克) 在美国宾夕法尼亚大学诞生,由美国陆军军械部出资,旨在计算炮弹弹道轨迹,主导设计者是物理学家约翰・莫奇利和年仅 25 岁的电气工程师普雷斯珀・埃克特。

  • 占地约 170 平方米,重 30 吨,功耗约 150 千瓦
  • 内部使用约 18,800 个电子管,每秒 5,000 次加法运算
  • 参与了氢弹研制的早期计算,运行了世界上第一个数值天气预报程序

二战结束后进入美苏冷战阶段,科技发展的原始动力就是国家间的斗争 —— 军备竞赛和科技竞赛。计算机正是在这样的背景下诞生和发展的。

核心结论:计算机发展的底层驱动力是相关主导国家间的斗争。

1.2军转民:技术保持领先的发展模式

新科技在初期基本以国家为主导,主要应用于军工领域:

技术军工起源军转民后的形态
电子计算机 算弹道、破密码 个人 PC、服务器
互联网(ARPANET) 核战争下分散指挥 万维网、移动互联网
GPS 三军实时定位导航 民用导航、共享单车定位
喷气式客机 B-47 轰炸机、KC-135 加油机技术 波音 707 等民航客机
集成电路 / 微处理器 导弹制导、航天计算机 消费电子、工业控制

实力相近叫斗争,差距巨大就叫碾压。科技发展中你稍有领先,对手立马跟进,最终技术趋同。要一直领先就必须持续性投入,单靠政府投入不可持续,因此必须通过军转民增加新的收入增长点。

核心结论:军转民是国家间技术保持领先的一种重要发展模式。

当然也有反向的情况 —— 新技术由民间产生,反而影响军工,比如无人机。

1.3摩尔定律:小型化的可能

1965 年,英特尔联合创始人戈登・摩尔在《电子学》杂志上发表文章,观察到芯片上可容纳的晶体管数量大约每隔 12 个月翻一番。1975 年修正为约每两年翻一番(业界广泛接受 18-24 个月)。

摩尔定律:集成电路上可容纳的晶体管数目,约每隔 18-24 个月便会增加一倍。

核心结论:摩尔定律为计算机小型化提供了可能。

1.4通用与专用计算机

计算机在民用过程中,形态完全取决于需求:

  • 通用计算机(个人 PC):听歌、看电影、上网、打游戏、写文档、写代码,一台机器全部解决
  • 超级计算机:成千上万个高性能计算单元通过高速网络连接,解决核聚变控制、天气预报、基因分析、密码破译等超大规模计算
  • 专用计算机(嵌入式系统):电视、冰箱、洗衣机、无人机、空调、汽车 ECU、机械臂…… 只需要稳定、高效、低功耗地完成特定任务
类别代表特点
通用计算机 个人 PC 一台机器干无数种事,由用户安装的软件决定
超级计算机 高性能计算机 解决人类级别的计算难题
专用计算机 嵌入式系统 冰箱、空调、无人机、汽车 ECU,低功耗、实时性、稳定性

核心结论:专用计算机(嵌入式系统)的诞生目的就是为了低成本解决一个一个特定领域的问题。

1.5嵌入式系统的诞生

嵌入式系统最初用于军工领域,经过军转民才成为现在的样子:

  • 1970 年代:嵌入式系统的含义是把计算机嵌入到导弹、战斗机、潜艇、雷达里
    • 制导系统:实时解算弹道、控制舵面
    • 火控系统:雷达和武器瞄准
    • 密码破译与通信
  • 1980 年代中后期:民用领域开始出现极少量使用 MCU 的产品(高级洗衣机、电子琴)

1.6为什么叫“嵌入式”

一个计算机系统被 "嵌入" 到更大的设备或系统中,成为不可分割的一部分,而不是作为独立的通用计算机存在:

  • 不是独立产品:没人单独买嵌入式系统,买的是智能空调、无人机、手环
  • 藏身在内部:设备内部的芯片和电路板,用户看不见摸不着
  • 功能单一且固定:微波炉的全部使命就是控制面板、定时、火力,永远不会变成 MP3
  • 软硬件高度定制:精确设计硬件和软件,多余的都不会有(关系到成本和可靠性)

这种 "嵌入" 特性带来了独特的设计哲学:

  • 实时性:汽车刹车踩下必须几毫秒内响应
  • 资源受限:空调内置计算机可能只有几 KB 到几百 KB 内存
  • 低功耗与低成本:电池供电或市场竞争力的要求

核心结论:通用计算机是 "站出来让你用的",嵌入式是 "蹲在里面替你干的"。

2:计算机的形态与嵌入式定位

2.1个人电脑PC

台式机和笔记本。对程序员来说是 "生产力工具",是 "吃饭的家伙事"。

注意:台式机的本体是 "机箱",不是 "显示器"。

2.2智能手机/平板电脑

两者共用相同的系统和软件生态。平板电脑更像屏幕大一些的手机。目前手机算力已大幅提升,相当于 PC 端几年前的水平,但受限于软件生态,仍无法承担 "生产力工具" 的重任。

2.3 服务器

日常使用的软件 / 网站几乎都和服务器密切相关:

  • C/S 结构(Client/Server):客户端 / 服务器架构
  • B/S 结构(Browser/Server):浏览器 / 服务器架构

服务器硬件配置高,运算和存储能力远超个人电脑,对温度湿度要求苛刻,通常托管在专业机房。

上古时期的计算机分类:超算、大型机、中型机、小型机、微机(PC)。随着时代发展,"大型机 / 中型机 / 小型机" 逐渐演化为现在的 "高性能服务器"。服务器可以认为是 "一人之下,万人之上"—— 超算之下算力第一。

2.4 单片机MCU

与服务器的 "高性能、昂贵" 相对,单片机意味着 "性能低、成本低"。

生活中很多设备内部都嵌入了小型计算机,称为单片机,也叫 Microcontroller Unit(MCU,微型控制单元) 或 Single Chip Microcomputer(单片微型计算机)。

广泛应用于:家居设备、工业、汽车、航空航天、通信、医疗等领域。

单片机 vs 嵌入式系统:

  • 关系:单片机是构建嵌入式系统的核心硬件,绝大多数嵌入式系统以单片机作为 "大脑"
  • 区别:单片机是具体的、可编程的硬件芯片;嵌入式系统是完整的概念系统,包含单片机、电路、传感器、软件等
  • 类比:老板和公司的关系、手机处理器和整个手机的关系

3:嵌入式系统的四大技术方向

3.1 MCU 方向

MCU(Microcontroller Unit):将处理器内核、存储器(Flash/RAM)、外设接口(UART/SPI/I2C/ADC/Timer 等)集成在单一芯片上的微型处理器。强调实时性、低功耗、低成本,通常运行裸机程序或轻量级 RTOS。

厂商典型芯片
ST(意法半导体) STM32F103/F407/H743
NXP LPC1768、i.MX RT1062
Microchip ATmega328P、SAM D21
TI MSP430G2553、MSP432E401Y
Espressif(乐鑫) ESP32、ESP32-C3/S3
兆易创新 GD32F103、GD32E230

应用领域:消费电子(遥控器、小家电、智能手表)、工业控制(电机驱动、传感器采集)、汽车电子(车窗控制、BMS 系统)、物联网终端、通信设备。

3.2应用处理方向

以高性能 CPU 核心为主,集成 GPU、NPU、ISP、视频编解码器等多媒体 / 计算加速模块。通常运行 Linux、Android 等复杂操作系统,需要外部 DDR 和 eMMC/SD 存储。

厂商典型芯片
NXP i.MX6ULL、i.MX8M Plus
瑞芯微 RK3568、RK3588
全志 H616
高通 骁龙 8 Gen 3
联发科 天玑 9300
华为海思 Hi3516DV300
博通 BCM2711(树莓派 4)、BCM2712(树莓派 5)

应用领域:智能终端、车载信息娱乐、工业互联网(边缘计算网关、HMI 智能屏)、机器人 / 无人机(视觉导航、SLAM)、智慧大屏。

3.3FPGA方向

FPGA(Field-Programmable Gate Array,现场可编程门阵列):内部包含大量可编程逻辑块(CLB)、可编程互连线和 I/O 模块的半导体器件。通过编写 HDL 代码(Verilog/VHDL)定义硬件逻辑,实现任意数字电路功能。核心特点是硬件可重构、并行执行、纳秒级延迟。

厂商典型芯片
Xilinx(AMD) Spartan-7、Artix-7、Kintex-7、Zynq-7000、Versal
Intel(Altera) Cyclone IV/V、Stratix 10
Lattice iCE40、ECP5
高云半导体 GW1N、GW2A、GW5A(国产)
安路科技 EF2、EG4、PH1(国产)

应用领域:通信 / 5G(基带信号处理)、视频图像处理、工业控制(多轴伺服)、航空航天、AI 推理加速、芯片原型验证。

3.3DSP方向

DSP(Digital Signal Processor,数字信号处理器):专门为数字信号处理算法优化的处理器,硬件架构针对乘累加运算、循环寻址、零开销循环做了特殊设计,单时钟周期内完成乘加运算。

厂商典型芯片
TI TMS320C6000(C6748/C6657)、TMS320C2000(F28335/F28379D)
ADI ADSP-21489、ADSP-SC589
CEVA CEVA-XM4/BX4(授权 IP 核)
Cadence Tensilica HiFi 5、Vision P6(授权 IP 核)

应用领域:音频处理(主动降噪、语音编解码)、电机控制(FOC 矢量控制)。

重要趋势:独立 DSP 芯片市场已严重萎缩,越来越多 DSP 功能以 IP 核形式集成到 SoC 中(如手机 SoC 内置 HiFi DSP),或由 MCU+DSP 指令集(如 Cortex-M4F/M7)替代。DSP 易用性不如 MCU 和应用处理器,实时性又不如 FPGA,这是市场份额减少的原因。

3.5多技术融合

复杂嵌入式系统通常组合使用多种技术,单芯片内部也实现了融合:

融合形态示例
MCU + DSP 指令 ST 的 STM32F4(Cortex-M4F 带 DSP/SIMD 指令)
FPGA + MCU Intel 的 FPGA(添加 NIOS 软核)
FPGA + CPU Xilinx 的 Zynq 系列(内置 Cortex-A53 硬核)
CPU + MCU TI 的 AM6254(Cortex-A53 + Cortex-M4)
CPU + DSP TI 的 66AK2G02(Cortex-A15 + C66x)
MCU + DSP TI 的 F28388D(Cortex-M4 + C28x)
CPU+MCU+DSP 全志 T527(Cortex-A55 + HiFi4 DSP + RISC-V MCU)

核心结论:嵌入式开发有很多方向,偏软的、偏硬的,MCU 开发其实是偏向软件开发范畴的方向。后续主要集中在 MCU 方面。

4:ARM与意法半导体生态

4.1需求拉动产量

芯片必须依附于用户能接触到的终端产品才能大量发展。

Intel 芯片与电脑:

  • 1950 年代末:仙童半导体第一个重要客户是 IBM,为 B70 轰炸机提供晶体管,一颗 150 美元
  • 1960 年代中期:芯片从 20 美元降到 2 美元,进入计算器和助听器
  • 1968 年:诺伊斯和摩尔创办英特尔
  • 1981 年:IBM 选择英特尔 8088 作为 IBM PC 的大脑,芯片找到 "亿级出货量" 的终极宿主
  • 英特尔 + 微软 MS-DOS 形成 "Wintel" 联盟
  • 1980 年代台式机统治办公室,1990 年代笔记本爆发(SpeedStep 降频技术),2000 年代 PC 进入亿级存量市场

ARM 芯片与手机:

  • 1990 年代:依附苹果牛顿 PDA 和诺基亚功能手机,核心卖点是低功耗
  • 2000 年代:功能手机全球出货量冲破 10 亿级,到 2005 年全球 98% 的手机里有 ARM 芯片
  • 2007 年:iPhone 发布,智能手机时代开启,ARM 找到比 PC 更强大的终端宿主
  • 2010 年代至今:智能手机饱和,但 ARM 版图外扩到智能手表、TWS 耳机、智能音箱、智能电视、汽车座舱

核心结论:时代发展产生新的需求,新的需求诞生新的设备,新的设备让芯片需求激增。

4.2ARM发展历史与商业模式

  • 1983 年:Acorn 被英特尔拒绝授权 x86,被迫自研低功耗 RISC 芯片
  • 1990 年:因资金匮乏,ARM 公司成立时选择不造芯片,只卖 IP 授权
  • 1997 年:诺基亚功能机采用 ARM 芯片,拿下第一个亿级终端市场
  • 2004 年:Cortex-M 系列发布,ARM 开始统治嵌入式 MCU 领域
  • 2007 年:iPhone 搭载 ARM 处理器引爆智能手机时代,ARM 出货量首次超越英特尔

ARM 的商业模式:只设计 CPU 核心 IP,不制造 CPU,通过 IP 授权和收取版权费用盈利。

Intel 的模式是 IDM(Integrated Device Manufacturer,集成设备制造商)—— 自己设计自己制造。ARM 作为后发者选择了轻量级模式,把自己变成所有人的朋友,最后成为所有人离不开的基础设施。

4.3SoC片上系统

SoC(System on a Chip,片上系统):把一个完整的电子系统集成到单个芯片上。

传统电脑主板像一个城市,各功能部件独立(CPU = 市政府、内存 = 图书馆、显卡 = 美术馆、声卡 = 音乐厅、网卡 = 邮局),通过总线 "高速公路" 连接,距离远、速度慢、功耗大。

SoC 把所有关键部门塞进同一栋大楼,内部专用电梯直接连通。

通用领域(电脑):主板上有独立 CPU、独立 GPU、独立内存条,通过总线连接,各芯片分开。

专用领域(手机、手表、无人机、路由器):空间有限、功耗敏感,把 CPU、GPU、内存控制器、NPU、ISP、DSP、视频 / 音频处理器、各类接口控制器(USB、PCIe、蓝牙、Wi-Fi 基带等)全部塞进一颗芯片。

注意:集成的是控制和处理类芯片,真正的外设(传感器、麦克风、摄像头、屏幕、扬声器)仍在外部。

CPU vs SoC:

  • CPU 是负责通用计算的处理器核心
  • SoC 是一颗芯片,包含 CPU + GPU + 内存控制器 + NPU + ISP + DSP + 接口控制器等
  • CPU 是 SoC 的一部分,SoC = CPU + 很多其他功能模块

集成的好处:电路板走线短 → 电池续航更长、更低发热、高带宽与低延迟、节省空间与成本、更高可靠性。

核心结论:手机体积小、电池容量受限,必须把所有核心芯片从 "主板上分散" 变成 "一个硅片上集成",这就是 SoC 的本质。集成 SoC 本质就是在追求:用户用得爽,厂商造得省。

4.4ARM的CPU IP核心矩阵

为了满足不同领域、不同需求的场景,ARM 提供了不同种类的 CPU IP 核:

系列全称定位应用场景
Cortex-A Application 应用处理器,运行复杂 OS(Linux/Android) 手机、平板、高性能设备
Cortex-X Extreme(非官方) 超级大核,极致性能优先 手机旗舰芯片的大核
Cortex-M Microcontroller 微控制器,小而低功耗、资源受限 嵌入式 MCU、智能家电、工业控制
Cortex-R Real-time 实时处理器,响应时间严格要求 硬盘控制器、汽车电子

Cortex 本意是大脑皮层,ARM 借此比喻这些处理器核心是智能设备的 "大脑" 或 "计算中枢"。

ARM 的业务版图扩张到四个关键领域:

  • 移动计算(基本盘):全球几乎所有主流手机芯片都基于 ARM
  • 汽车电子(新增长极):智能座舱、自动驾驶、车身控制
  • 服务器与数据中心(高端突破):华为鲲鹏、飞腾、Ampere、AWS Graviton
  • AIoT / 物联网(广阔蓝海):微控制器与嵌入式(STM32 是经典)、AIoT SoC、工业与通信、消费与可穿戴
  • 核心结论:ARM 因为需求种类不同,主流提供 4 种 CPU IP 核,我们未来使用的是 Cortex-M 系列。

    4.5意法半导体ST定位

    意法半导体(STMicroelectronics,简写 ST)是由意大利 SGS 和法国 Thomson 两家公司合并而来的欧洲半导体巨头,总部设在瑞士。

    • 全球官网:www.st.com
    • 中文官网:www.st.com.cn
    • ST MCU 中文官网:www.stmcu.com.cn(工程师重点看的)

    意法半导体的角色: 从 Arm 获得 Cortex 系列 CPU 核心授权,利用自身在混合信号、存储器等方面的专有技术,将其设计、封装成一颗颗功能完整的 MCU,最著名的便是 STM32 系列。

    供应链模式:Arm 提供核心 IP → 意法半导体等芯片公司设计制造为标准化 MCU → 终端公司直接选用

    其他 MCU 厂商:恩智浦(NXP)、德州仪器(TI)、英飞凌(Infineon)、兆易创新(GigaDevice)、乐鑫科技(Espressif)等。

    为什么关注意法半导体? 因为它几乎是事实上的行业基准:

    • 做得早,市占率高
    • 围绕 STM32 积累了最庞大的开发生态(官方文档、教程、开源项目、开发工具、第三方库)
    • 大量硬件工程师的学习路径从 STM32 开始
    • 后来者(如兆易创新)在技术上与意法保持兼容(引脚兼容、寄存器兼容、工具链兼容),因为迁移成本太高

    核心结论:意法半导体从 Arm 买核心,做成 MCU 卖给终端公司。做得早、生态完整,后来者都得兼容它。所以学 MCU 从它开始,是主流选择。

    5:MCU与STM32家族

    5.1MCU是什么

    MCU(Microcontroller Unit,微控制单元),中文常称为单片机(Single Chip Microcomputer)。

    • 从功能上看:把处理器(CPU 核心)、存储器(Flash、RAM)、各种输入输出接口(定时器、ADC、串口等)集成在一起,形成一个芯片
    • 从制造上看:在极纯的硅片上,经过光刻、刻蚀、沉积、离子注入等上百道工序,把各模块的晶体管一层层堆叠并连通

    核心结论:MCU 内部除了 CPU,还有其他模块。MCU 就已经是一台被集成在同一芯片上的微型计算机了。

    MCU 与 SoC 的关系: MCU 可以看作是一种功能特定、高度集成的 "SoC"。SoC 是更宽泛的概念,MCU 是这个概念下非常经典的一个分支。

    MCU 为什么存在?

    • 以手机应用处理器为例的 SoC 主要解决算力问题
    • 以 MCU 为例的 SoC 主要解决控制问题
    • 类比:大脑负责复杂计算,小脑负责精细动作的实时协调与控制

    MCU 是一种专用计算机,专门低成本解决实时控制问题。物理世界中的控制需求是海量的、多样化的,通用处理器无法同时满足所有控制场景的低成本、低功耗和硬实时要求。

    如果硬给空调塞一颗手机应用处理器:

    • 太贵:应用处理器几十美元,MCU 只要几毛到几美元
    • 太耗电:应用处理器瓦级,MCU 毫瓦甚至微瓦级
    • 太复杂:需要操作系统、驱动、内存管理;MCU 几十行代码就能跑
    • 没必要:空调不需要图像处理和 5G 基带
    • 实时性:MCU 能提供可靠的实时性(处理过程快 + 处理过程耗时可预知)

    核心结论:MCU 是产业细分之后,一种为低成本实时控制而生的专用计算机。

    5.2 STM32家族

    STM32 是意法半导体生产的 32 位 MCU 系列的总称:

    • ST = 意法半导体(SGS + Thomson)
    • M = 微控制器(Microcontroller)
    • 32 = 32 位

    类比:MCU 相当于 "手机",STM32 相当于 "华为手机"。

    STM32 不是单一芯片,而是庞大家族,针对不同应用场景设计了不同定位的子系列:

    子系列全称定位
    F Foundation(基础 / 通用) 最基础系列,应用最广泛,STM32 的基石
    G General-purpose(通用型) 主流高性价比系列
    L Low-power(低功耗) 专门为低功耗设计
    U Ultra-low-power(超低功耗) 比 L 系列功耗更低
    H High-performance(高性能) 性能最强的产品

    STM32 各子系列应用场景:

    产品系列内核架构典型型号核心特性应用领域
    超低功耗系列 Cortex-M0+/M3/M4/M33 STM32L0/L1/L4/L5/U0/U3/U5 休眠电流低至 280nA,支持动态电压调节 智能手表、手环、血糖仪、水表、气表、温湿度传感器
    主流型系列 Cortex-M0/M3/M4 STM32F0/F1/F3/G0/G4 性价比突出,外设丰富 家电控制、工业传感器、HMI、空调控制板、洗衣机面板、电子烟、数字电源、电动工具
    高性能系列 Cortex-M7/M4/M33 STM32F2/F4/F7/H5/H7 主频达 600MHz,支持 DSP/FPU 协作机器人关节控制器、PLC 模块、无人机飞控、音频效果器
    无线系列 Cortex-M0+/M33 STM32WB/WL/WBA 集成 BLE/Zigbee/LoRa 射频 智能门锁、温控器、资产追踪标签、无线传感器节点、智能灯泡
    边缘 AI 系列 Cortex-M7+NPU STM32N6 算力 600GOPS,支持神经网络推理 智能摄像头、语音唤醒家电、瑕疵检测设备
    MPU 混合系列 Cortex-A7/A35 + M4/M33 STM32MP1/MP2 双核异构,支持 Linux/RTOS 工业边缘网关、车联网 T-Box、自助售货机、HMI 一体机

    注意:意法的主要产品线包括 STM32 MCU、STM32 Wireless、STM32 MPU、STM8 MCU。我们只要关心 STM32 MCU 就足够了。

    5.3常见其他MCU

    MCU位数厂商特点现状
    51 单片机(Intel 8051) 8 位 Intel / 宏晶 STC 等 结构简单,串口编程不需仿真器 风光不再,仅遥控器、电子温度计等简单场景
    MSP430 16 位 TI(德州仪器) 主打低功耗 基本退出历史舞台
    GD32 32 位 兆易创新(国产) 和 STM32 兼容,成本低 20%-30% 学会 STM32 自然就会
    ESP32 32 位 乐鑫科技(国产) 内置 Wi-Fi 和蓝牙,物联网理想选择 市场份额增长迅速
    树莓派 博通 严格说不是 MCU,是卡片计算机,Cortex-A,可跑 Linux DIY 爱好者喜爱,企业级应用有限

    6:STM32F103ZET6的命名规则

    STM32F103 作为意法半导体的经典 Cortex-M3 内核 MCU,累计出货 10 多亿片,凭借高性价比、丰富外设和成熟生态,是 ARM 嵌入式领域的 "国民级" 标杆芯片。

    6.1命名拆解

    STM32 F1 03 Z E T 6
    │ │ │ │ │ │ │
    │ │ │ │ │ │ └── 工作温度范围
    │ │ │ │ │ └───── 封装类型
    │ │ │ │ └──────── Flash容量
    │ │ │ └─────────── 引脚数目
    │ │ └─────────────── 子系列产品线
    │ └─────────────────── 产品系列
    └───────────────────────── 意法半导体32位MCU

    6.2各部分详细含义

    STM32:意法半导体设计生产的 32 位 MCU。意法也有 8 位 MCU 产品 STM8 系列,但影响力小很多。

    F1:归属于 "主流"(Mainstream)产品线,使用 Cortex-M3 的 CPU 内核。

    Cortex-M 系列下有 M0、M3、M4、M7、M33 等,数字越大性能越高,类似于 Intel CPU 的 i3/i5/i7/i9 划分。

    03:STM32F1 子系列中具体的产品线(增强型)。

    6.3 Z:引脚数目

    Z 表示这个 MCU 有 144 个 pin(针脚 / 引脚)。一条边 36 个,4 条边共计 144 个。

    字母标识pin 数目
    T 36
    C 48
    R 64
    V 100
    Z 144

    6.4 E:Flash容量

    E 表示内部 Flash 容量为 512 KB。

    数字 / 字母标识Flash 容量
    4 16 KB
    6 32 KB
    8 64 KB
    B 128 KB
    C 256 KB
    D 384 KB
    E 512 KB
    F 768 KB
    G 1024 KB

    为什么 MCU 内部会有 Flash?因为裸机开发时,编译生成的二进制程序直接烧写到 MCU 内部的 Flash 中,由 CPU 执行。不同 Flash 容量代表能烧写的不同程序体积,本质对应不同规模的产品。

    6.5 T:封装类型

    T 表示采用 LQFP 封装(Low-profile Quad Flat Package,低轮廓四边扁平封装)。

    字母标识封装类型英文全称中文含义
    T LQFP Low-profile Quad Flat Package 低轮廓四边扁平封装
    H BGA Ball Grid Array 球栅阵列封装
    U VFQFPN Very Thin Fine-pitch Quad Flat No-lead Package 超薄细间距四边扁平无引脚封装

    6.6 6:工作温度范围

    6 表示工作温度范围 -40℃ 到 +85℃。

    数字标识工作温度范围
    6 -40℃ 到 +85℃
    7 -40℃ 到 +105℃

    为什么型号中把温度作为核心指标?

    • 可靠性:夏天暴晒的户外(70-80℃)或靠近发热元件,必须选择 7(105℃)甚至更高级别
    • 性能降级:温度超过 85℃时,普通 6 型号可能最高主频降低、ADC 精度下降、内部 LDO 或 Flash 擦写可靠性受影响

    特殊领域(如石油钻头勘探)有极端温度场景,所以 MCU 需要标识清楚工作温度范围。

    7:STM32F103ZET6引脚详解

    7.1引脚布局与编号

    引脚布局属于硬件,在《数据手册》的 "Pinouts and pin description" 章节可以找到。

    实物图上有一个实心圆点,通过这个圆点明确引脚从哪里开始编号:从圆点最近的引脚开始,编号从 1 开始,逆时针递增。

    引脚分为两类:

    • 特殊功能引脚:功能由 MCU 芯片硬件永久固定,不可通过软件更改。必须按数据手册规定连接(电源、地、时钟、复位),MCU 才能正常启动
    • 普通引脚:MCU 的 "可编程接口",功能完全由软件决定。可配置为输入(读按键)、输出(控 LED)或复用为 UART/I2C/SPI/PWM/ADC 等

    后续编程主要设置的是普通引脚。

    7.2 特殊功能引脚

    7.2.1 VDD与VSS

    • VDD(Voltage Drain Drain):芯片正电源输入引脚,STM32F103 系列通常连接 +3.3V
    • VSS(Voltage Source Source):芯片公共地,连接到 GND(地线)

    其中存在退耦电容,用于保持供电稳定。

    为什么单片机供电是 3.3V? 3.3V 是为适应芯片工艺进步和低功耗需求而历史形成的行业标准。

    7.2.2NRST复位引脚

    通常接一个按钮。"复位"(Reset)指让单片机强制回归初始状态,相当于 "重启"。

    • NRST = Not Reset(或 Negative-Reset),N 代表 Negative/Not,强调低电平有效
    • 引脚为低电平(0V,接地)时:处于复位状态
    • 引脚为高电平(3.3V)时:正常运行

    未来把程序烧写到 MCU 内部后,需要按下复位按键来完成启动新程序的效果。

    7.2.3 VBAT备用电池

    当 VDD 异常(掉电)时,VBAT 自动为 MCU 供电(主要是 RTC 实时时钟和备份寄存器),确保时间不丢失、数据不丢失,但 MCU 整体停止运行。

    类似电脑关机拔掉电源后,主板电池仅维持 BIOS 时钟和设置,电脑本身不能运行,但下次开机时间还是准的。

    7.2.4 BOOT0启动模式选择

    启动模式描述了单片机复位后,从谁提供的软件指令开始执行。

    BOOT0 状态作用通俗理解
    接 GND 运行已烧录的程序 正常开机,执行你烧录的程序。99% 场景都是这个
    接 3.3V 进入 Bootloader,等待串口下载 进入刷机模式,执行意法提供的 Bootloader。无法烧录时可强制烧写

    Bootloader是 ST 公司固化在芯片系统存储器里的不可修改程序,作用是用串口等接口烧录 / 恢复固件。

    NRST vs BOOT0 的区别:

    • NRST 复位引脚:不改变启动源,只是从头开始运行指定的软件
    • BOOT0 启动模式选择:不触发重启,只决定重启后运行谁
    • 类比 Windows:NRST 决定是否重启,BOOT0 决定开机从哪个盘启动

    BOOT1 也存在,但一般做板子时直接焊死接地,永远是低电平 0。

    7.2.5 其他特殊引脚

    • OSC_IN / OSC_OUT:外部高精度时钟输入 / 输出引脚
    • VREF 系列:高精度 ADC/DAC 的参考电压
    • NC(No Connect):未进行任何连接的引脚

    7.3 普通引脚

    通过字母对普通引脚分组,再使用数字对每组引脚编号:

    分组引脚范围引脚数量说明
    PA PA0 – PA15 16 个 完整引脚组
    PB PB0 – PB15 16 个 完整引脚组
    PC PC0 – PC15 16 个 完整引脚组
    PD PD0 – PD15 16 个 完整引脚组
    PE PE0 – PE15 16 个 完整引脚组
    PF PF0 – PF15 16 个 完整引脚组
    PG PG0 – PG15 16 个 完整引脚组

    A-G = 7 组,0-15 = 16 个,一共 7 × 16 = 112 个普通引脚。

    注意:这些引脚在 MCU 上的排列不一定是连续的。"完整引脚组" 指该组字母拥有从 0 到 15 的全部 16 个编号引脚。

    144 pin 总数 = 112 个普通引脚 + 32 个特殊功能引脚。

    后续编程中,主要就是控制这些引脚来输入 / 输出电信号。

    8:开发工具

    方案评价
    C 语言 + Keil MDK + 标准外设库(SPL) 标准库 2017 年已弃用,陈旧做法,不建议
    C 语言 + Keil MDK + STM32CubeMX + HAL 库 Keil 写代码难受,不建议
    C 语言 + Keil MDK + VSCode + STM32CubeMX + HAL 库 企业大量在用,我们采用这种方式
    C 语言 + STM32CubeIDE + HAL 库 集成化太高,不利于学习,不建议
    C 语言 + IAR + STM32CubeMX + HAL 库 IAR 正版授权贵,不适合新手

    我们采用的方案:C 语言 + Keil MDK + VSCode + STM32CubeMX + HAL 库

    工具公司主要解决问题
    Keil MDK Arm 公司 编译、链接、调试,生成机器码
    VS Code 微软 现代化代码编辑器,通过插件扩展开发环境
    STM32CubeMX 意法半导体(ST) 图形化配置引脚、时钟,自动生成初始化代码
    HAL 库 意法半导体(ST) 提供硬件抽象层 API,屏蔽寄存器操作,提升代码可移植性

    关于 HAL 库:

    • 标准库已经淘汰,手写配置只出现在维护老项目中
    • HAL 库根据配置自动生成配置代码(注意是配置代码,不是业务代码),提高开发效率
    • 但图形化界面导致配置细节没有直接体现,会提高理解成本
    • 解决方案:通过穿插 HAL 库生成的源码阅读,解决配置陌生问题

    9:仿真器与硬件链接

    9.1 仿真器简介

    仿真器是一种硬件调试工具,通过仿真器连接开发板和 PC,从而通过 PC 上的开发工具对 MCU 进行烧录、调试。

    烧录本质:把编译生成的可执行程序,通过仿真器写入到 STM32 片上 Flash 中。

    常见仿真器:

    仿真器厂商特点
    ST-Link ST 官方 STM32&STM8 的官方仿真器,闭源,较贵
    J-Link SEGGER 业界标准专业调试器,正版上千元
    DAP(DAPLink) ARM 开源 完全开源免费,我们课程使用
    U-Link ARM/Keil 主要配合 Keil MDK 开发环境

    9.2 DAPLink详解

    DAP 仿真器的官方名称叫 DAPLink(旧称 CMSIS-DAP),是由 Arm 公司官方主导并维护的开源项目。

    • DAP全称:Debug Access Port(调试访问端口),是一个物理仿真器
    • 开源体现在两个层面:
      • 软件 / 固件开源:全部固件源码在 GitHub 公开(Apache-2.0 许可证)
      • 硬件开源:官方提供参考电路设计

    官方开源仓库:

    • GitHub:https://github.com/ARMmbed/DAPLink
    • Gitee 镜像:shturl.cc/xFy9QX1LPEW2UupuABd9C

    DAPLink 自己本身就是一个单片机系统。正因为开源,很多人可以自己做 DAPLink。

    为什么使用 DAP 而不是 ST-Link/J-Link?

    • DAP 完全开源免费,ST-Link/J-Link 正版动辄上千元,不适合初学者
    • DAP 用法和 ST-Link 非常相似,熟悉 DAP 后未来企业中使用 ST-Link 几乎不需要学习成本

    为什么用仿真器烧写而不是 BOOT0 串口烧写? 因为仿真器最核心的价值在于在线调试(断点、单步、监控变量等),而不仅仅是烧写。

    10:首次实验:编译和烧录

    10.1 下载测试工程

    访问码云仓库:shturl.cc/15I8BS0zMwF0MQQts7HxLNlDO7ZqLWNM3lS

    通过 git 克隆到本地:

    git clone shturl.cc/15I8BS0zMwF0MQQts7HxLNlDO7ZqLWNM3lS.git

    不熟悉 git 的也可以直接下载 zip 压缩包。

    10.2 打开测试工程

    下载到本地后,进入 MDK-ARM 目录,使用 Keil 运行该工程文件。

    10.3 编译

    点击工具栏中的 Build 按钮触发编译。

    如果提示 0 Errors, 0 Warnings,说明编译成功。此时在 MDK-ARM 目录下会生成二进制可执行程序和一系列.o、.d 等中间代码文件。

    .hex 就是未来烧写到 MCU 内部的二进制程序。

    常见报错及解决: 如果报错提示目标程序默认需要 AC5(ARM Compiler 5)但当前不可用:

    • 在魔术棒(Options for Target)中修改 ARM Compiler 为 version 6(使用 default 编译器 AC6)

    10.4 烧录配置

    在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开 Keil,在魔术棒(Options for Target)中配置:

  • Debug 标签页:右上角选择 CMSIS-DAP Debugger
  • Debug 标签页 → Settings → Flash Download:勾选 "Reset and Run"(烧录完成后不必按复位按钮即可直接执行)
  • 点击工具栏中的 Download 按钮,烧录程序到 MCU 内置 Flash 中
  • 如果一切顺利,会提示烧录成功。

    所谓烧录:把编译生成的.hex 二进制程序,通过 DAP 传输到 STM32 内置的 Flash 中。于是 STM32 就可以读取 Flash 中的程序并执行了。

    10.5 运行结果

    烧录成功后,可以看到开发板上的 LED 开始闪烁,说明首次实验成功完成!

    11:STM32文档体系

    11.1理解文档化逻辑

    产业世界建立在分工和协作之上。分工产生知识壁垒,文档打破知识壁垒。看懂文档,就是嵌入式的通用语言。

    文档化是嵌入式行业的常态,阅读文档是工程师必然的学习过程。

    11.2各层级提供的文档

    提供方文档用途
    ARM 《技术参考手册》(TRM) 告诉 MCU 厂商如何集成 ARM 核心,偏硬件设计,普通开发者通常不需直接查阅
    MCU 厂商(ST) 《数据手册》(Datasheet/DS) MCU 芯片 "体检表"(引脚、电压、地址),硬件工程师画板用
    MCU 厂商(ST) 《参考手册》(Reference Manual/RM) MCU 操作说明书(寄存器每位含义),软件工程师写驱动用,后续深度关心
    板级设计公司 《板原理图.pdf》 表明 MCU 芯片引脚与板级外设如何连接,后续深度关心

    我们作为基于板子的软件 / 驱动开发者,最关心的是 MCU 提供的《参考手册》和比特提供的《原理图》,其他按需参考。

    11.3文档分类详解

    文档核心内容谁看、何时看一句话解释
    数据手册(DS) 物理规格、引脚排列、电气特性、内存大小、封装信息 硬件工程师选型和画原理图时 告诉硬件工程师 "这芯片长什么样,怎么通电才不会烧"
    参考手册(RM) 所有外设的功能详解、工作模式、寄存器地址和每一位含义 软件工程师写底层驱动时 告诉软件工程师 "芯片里每个零件该怎么操作"
    勘误手册(ES) 芯片已知问题列表和避坑指南 软件工程师调试遇到诡异现象时 官方承认的设计缺陷清单,告诉你 "这事儿得这么绕过去"
    编程手册(PM) 内部 Flash 的操作指南(解锁、擦除、写入) 底层工程师实现 IAP 或保存参数时 指导如何安全地给芯片内置 "硬盘" 读写数据
    应用笔记(AN) 特定主题的官方实战教程或设计方案 任何角色需要实现特定功能时 官方手把手教你 "如何用这颗芯片实现某个具体功能"
    用户手册(UM) 开发板操作指南,或 HAL/LL 库的 API 函数字典 软件工程师使用官方开发板或库函数时 配套软硬件的 "开箱指南" 和 API 查询手册
    内核相关文档(ARM) CPU 内核本身的文档(TRM 硬件实现、GUG 内核编程模型) 需要操作 CPU 核心寄存器时 操作 CPU 内部那部分寄存器得看 ARM 家的

    之所以文档这么多,是因为信息必须 "按需定制":数据手册不讲编程只谈物理特性,参考手册不讲 Bug 只谈理想逻辑,勘误手册只告诉你哪里会翻车。

    11.4意法半导体相关官网

    官网网址说明
    意法全球官网 www.st.com 面向全世界用户,全部产品线
    意法中文官网 www.st.com.cn 中国区官方网站,ST 全线产品
    ST MCU 中文官网 www.stmcu.com.cn

    ST MCU 产品中文技术门户,专注 STM32/STM8,工程师重点看

    12:总结

    12.1知识体系回顾

    行业宏观认知
    ├── 计算机发展驱动力(冷战 → 军转民 → 摩尔定律)
    ├── 通用 vs 专用计算机
    └── 嵌入式系统的本质(专用、实时、低功耗、低成本)

    计算机形态与定位
    ├── PC / 手机 / 服务器 / 单片机
    └── 嵌入式四大方向(MCU / 应用处理器 / FPGA / DSP)

    生态与供应链
    ├── ARM发展史与IP授权模式
    ├── SoC的概念
    ├── ARM CPU IP核矩阵(A/X/M/R)
    └── 意法半导体的行业基准地位

    芯片与选型
    ├── MCU的本质(低成本实时控制)
    ├── STM32家族(F/G/L/U/H系列)
    └── STM32F103ZET6命名与规格

    硬件细节
    ├── 引脚分类(特殊功能 / 普通)
    ├── 特殊引脚(VDD/VSS/NRST/VBAT/BOOT0)
    └── 普通引脚(PA-PG,共112个)

    开发环境
    ├── 工具链选型(Keil MDK + VSCode + CubeMX + HAL)
    ├── 各工具安装与配置
    └── 芯片包与固件包

    首次实践
    ├── DAPLink仿真器
    ├── SWD硬件连接
    └── 编译 → 烧录 → LED闪烁(首次实验成功)

    12.2 核心要点

  • 嵌入式的本质:专用计算机,为低成本实时控制而生,"蹲在里面替你干的"
  • ARM 的模式:只设计 CPU IP 核不制造芯片,通过授权盈利,Cortex-M 是我们的主战场
  • 意法的地位:行业基准,STM32 生态最完整,学 MCU 从 STM32 开始是主流选择
  • MCU != CPU:MCU 内部除了 CPU 还有 Flash、RAM、各种外设,是一台微型计算机
  • STM32F103ZET6:Cortex-M3 内核、144 pin、512KB Flash、LQFP 封装、-40~85℃
  • 开发方式:裸机开发,C 语言编写,编译生成.hex 烧录到内部 Flash
  • 仿真器价值:不仅是烧写,更核心的是在线调试(断点、单步、变量监控)
  • 文档是通用语言:分工产生知识壁垒,文档打破壁垒,参考手册和原理图是我们最关心的
  • 12.3 后续展望

    • 深入学习 STM32 的各种片上外设(GPIO、USART、I2C、SPI、ADC、Timer 等)
    • 学习 HAL 库的使用与源码阅读
    • 学习中断与 DMA
    • 后续引入实时操作系统(FreeRTOS 等)
    • 逐步从裸机开发向更复杂的嵌入式系统进阶
    赞(0)
    未经允许不得转载:171主机测评 » 嵌入式入门(一)宏观生态到首次烧录
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址