一、STM32 的文档与社区生态
1.理解文档化逻辑
产业依靠分工运转:CPU 设计、芯片制造、PCB 绘制、软件编程由不同人员各司其职;同时产业链需要紧密协作,不同领域人员想要配合,就必须依靠文档 打通知识壁垒。 不懂硬件结构、引脚功能、寄存器定义时,查阅配套文档是唯一方式。 文档化是嵌入式行业常态,阅读芯片手册是嵌入式工程师必备能力;文档消除不同岗位的知识隔阂,看懂各类手册是嵌入式领域通用语言。
2.嵌入式开发必备各类文档
-
ARM 内核侧:《技术参考手册》 ARM 售卖 CPU 内核 IP 时,会提供该手册,指导芯片厂商集成 Cortex 系列内核;ARM 架构参考手册下载地址:https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m3
这份手册面向硬件底层设计,普通软件开发者一般无需查阅。
-
ST 意法半导体(MCU 厂商)输出两份核心手册
- 《数据手册》:单片机芯片参数体检表,记录引脚定义、电压参数、外设地址等,供硬件工程师绘制原理图、PCB; 链接:
https://www.stmcu.com.cn/Designresource/detail/document/696097
STM32F103 | 产品 | STM32 | MCU单片机 | 意法半导体STM | STMCU中文官网 - 《参考手册》:单片机完整操作说明书,标注所有寄存器每一位功能,软件工程师编写驱动必备; 链接:https://www.stmcu.com.cn/Designresource/detail/document/699481
学习文档心态说明
前期不用通读所有海量文档,入门阶段只聚焦STM32 参考手册 + 开发板原理图两份资料即可
3. 意法半导体相关官网生态
意法全球官网:www.st.com,全球公司官网,面向全世界用户,涵盖意法半导体全部产品线(不只是 MCU)
中文官网:www.st.com.cn,意法半导体中国区官方网站,收录 ST 全线产品,面向中国用户
ST MCU 中文官网:www.stmcu.com.cn,ST MCU 产品中文技术门户,专注于 STM32/STM8 微控制器和微处理器(不含 ST 其他产品线如功率芯片、传感器等),是我们工程师重点查看的网站。

二、STM32 开发工具链生态
MCU 的裸机开发。
裸机开发指的是:在没有任何操作系统(如 FreeRTOS、Linux)支持的情况下,直接在微控制器(MCU)上编写程序。
根据我们之前 C 语言的学习,再结合 MCU 的生态理解,我们后续写的代码,是一定要在 MCU 内部的 Cortex-M3 CPU 内核上运行的,也就是说,我们主要的开发语言是 C 语言,而且需要编译器把 C 语言编译成为二进制,在 MCU 内部运行。
1. STM32 完整开发流程

2. STM32 主流工具链方案对比
MCU 开发中,常见的工具链组合非常多:
-
C 语言 + Keil MDK + 标准外设库 (Standard Peripheral Library,简称 SPL) 标准外设库官方已经在 2017 年弃用了,陈旧做法,不建议使用。
-
C 语言 + Keil MDK+STM32CubeMx+HAL 库 Keil MDK 编写代码特别难受,不建议纯这套组合使用
-
C 语言 + Keil MDK + vscode +STM32CubeMx + HAL 库 企业大量在用 Keil MDK,使用 vscode 的代码编辑能力来补充编码体验,采用这种开发方式
-
C 语言 + STM32CubeIDE+HAL 库 STM32CubeIDE 集成度太高,不利于新手吃透底层原理,目前不建议入门选用
-
C 语言 + IAR+STM32CubeMx+HAL 库 IAR 在企业内使用份额很高,但 IAR 无免费社区版本,正版授权费用昂贵,不适合新手学习
- Keil MDK(Microcontroller Development Kit,微控制器开发套件),也称 MDK-ARM,是 ARM 公司收购 Keil 之后推出,专门面向 ARM Cortex-M、Cortex-R、Cortex-A 系列处理器的嵌入式软件开发工具。
- 归属 ARM 核心原因:适配 ARM 指令集 下载地址:https://www.keil.arm.com/mdk-community/
STM32CubeMx 与 STM32CubeIDE 区别
- STM32CubeMx:硬件可视化配置、芯片初始化代码生成工具;
核心作用:图形化配置外设与时序,自动生成底层初始化源码
官网:https://www.st.com/en/development-tools/stm32cubemx.html - STM32CubeIDE:意法官方一体化集成开发环境,集代码编写、编译、调试、程序烧录功能于一体
官网:https://www.st.com/en/development-tools/stm32cubeide.html
3. C 语言 + Keil MDK + VSCode + STM32CubeMx + HAL 库
| 工具 | 所属公司 | 主要作用 |
|---|---|---|
| Keil MDK | ARM 公司 | 程序编译、链接、调试,生成可烧录机器码 |
| VS Code | 微软 | 现代化轻量化代码编辑器,依靠插件拓展开发环境 |
| STM32CubeMX | 意法半导体 (ST) | 图形化配置引脚、系统时钟,自动生成芯片初始化代码 |
| HAL 库 | 意法半导体 (ST) | 硬件抽象层 API,屏蔽底层寄存器细节,大幅提升代码可移植性 |
4. 核心问题:HAL 库适合入门学习吗?
- SPL 标准库早已被 ST 官方全面淘汰,如今只有老旧遗留项目还在维护,新项目统一使用 HAL 库,AI 开发时代更不会选用标准库;
STM32 标准库什么时候被淘汰的
https://www.doubao.com/thread/x2zz91fabcTVxLhUF - CubeMX 可根据用户配置一键生成初始化配置代码(仅底层配置代码,不包含业务逻辑代码),极大提升项目开发效率;
- 弊端:纯图形化点选配置容易脱离硬件底层原理,界面不会展示寄存器细节,初学者容易只会拖拽不懂内核逻辑。
解决方案: 穿插研读 HAL 库自动生成的源码,逐行拆解底层寄存器逻辑,打通图形配置和硬件原理之间的隔阂。 吃透 HAL 库开发方式后,其余各类开发工具链都能快速上手。
三、开发环境安装与介绍
1. VSCode 介绍
VSCode 是程序员圈子里主流开发工具之一,嵌入式领域越来越多公司也开始转向 VSCode。
**核心定位:**代码编辑器

优势
- 现代化开发界面
- 强大代码编辑支持(快速代码补全、高亮、跳转等功能)
- 插件体系丰富
- 环境搭建简单
- 便于和 AI 结合
- 开源免费
劣势
- 部分场景下调试能力不如 Keil
2. VSCode 安装
2.1 下载 vscode
下载链接:https://code.visualstudio.com/

2.2 安装
跟随安装向导步骤完成即可
3. Keil MDK 介绍
老牌单片机集成开发环境,可兼容市面绝大部分单片机开发。 Keil 是开发这个开发工具的公司名;2005 年 Keil 公司被 ARM 收购,成为 ARM 子公司。
补充:STM32 的 CPU 内核 Cortex 均由 ARM 公司设计。
MDK 全称:Microcontroller Development Kit,即微控制器开发工具包 含义:一套完整开发工具合集,包含代码编辑器、编译器、调试器等。Keil MDK 也叫 MDK-ARM、Keil For ARM
核心定位:Microcontroller Development Kit(开发工具包)集成开发环境
优势
- 兼容性强
- 技术资料极其丰富
- 环境搭建门槛低,适合单片机新手入门
- 企业嵌入式项目使用普及率高
劣势
- 软件界面不够现代化
- 代码编辑相关功能对比现代编辑器偏弱
下载链接:https://www.keil.arm.com/mdk-community/
4. Keil MDK 安装
温馨前置提示
- 软件安装路径绝对不能包含中文,必须全英文路径
- 安装目录不能和 C51 版本 Keil 互相冲突,二者文件夹需要分开存放
- 使用中出现莫名报错,优先百度或者AI查找解决方案,不要随意改动配置
4.1 获取 KEIL5 安装包
要想获得 KEIL5 的安装包,在浏览器里面搜索 "KEIL5 下载" 即可找到很多网友提供的下载文件,或者到 KEIL 的官网下载:https://www.keil.arm.com/mdk-community/。
AI 提示词:
KEIL MDK 官网 社区版本下载链接
4.2 开始安装 KEIL5 完整步骤
跟随安装向导步骤完成即可
安装后弹窗说明
安装结束会弹出 Pack Installer 界面,该工具作用: Pack Installer 是 Keil 官方固件包管理工具,用来在线下载、安装各类 MCU 器件支持包(DFP 器件固件包);STM32、GD32 等芯片的内核启动文件、寄存器配置文件都存放在器件包内。

MCU 的品类型号非常繁多,开发不同 MCU 的时候需要用到的软件组件也各不相同。
Keil 官方帮我们把这些内容都收集好,通过 Pack Installer 帮我们从 Keil 的服务器上下载设备驱动程序,示例程序,中间件,库文件等。
这是 Keil 软件安装完成或首次启动时的正常现象。Pack Installer 是 Keil5 (MDK5) 的在线组件和芯片包管理工具,用于下载各种芯片的 DFP(Device Family Pack,即器件支持包)。 这些支持包包含了如 STM32、GD32 等芯片的核心固件库和启动文件。
4.3 安装 STM32 芯片固件包
- 在 Pack Installer 界面检索 STM32 系列器件
- 选中需要使用的 STM32 型号,点击 Install 等待下载安装完毕
- 安装完成后,对应芯片固件包会存放在之前设置的 Pack 目录中,Keil 即可正常创建对应 STM32 工程

5. STM32CubeMX 介绍
软件定位
STM32CubeMX 是 ST 官方推出的可视化硬件配置 + 初始化代码自动生成工具
**核心用途:**图形化配置单片机外设、时钟、引脚,一键生成 Keil 工程初始化代码,大幅降低 STM32 底层配置难度。
获取方式
前往 ST 官方网站下载安装包,可免费获取使用。
6. STM32CubeMX 安装
下载链接: STM32CubeMX | Software - STMicroelectronics


6.1 固件包安装
可以自己设置固件包安装的位置(知根知底):


下载固件包
点击红色框中的按钮

找到对应的STM32的型号,安装即可

安装完成后在固件包的位置处即有对应的文件
