1. MCU 在行业中的位置
1.1 MCU 定义
MCU(Microcontroller Unit)又称单片微型计算机,是将 CPU(中央处理器)频率 / 规格缩减后,整合内存(memory)、计数器(Timer)、USB、A/D 转换、UART、PLC、DMA 等外围接口(部分型号甚至集成 LCD 驱动电路)的芯片级计算机,广泛应用于手机、PC 外围、遥控器、汽车电子、工业步进马达控制等场景。
1.2 MCU 能做什么?
MCU是一种集成了处理器、存储器、输入输出接口等多种功能于一体的芯片,在嵌入式系统中犹如“大脑”,负责整个系统的控制和数据处理。例如,在智能手环这个嵌入式系统中,MCU会接收加速度计、心率传感器等的数据,并进行分析处理,然后控制显示屏显示相应的信息。
接下来会以stm32芯片展开讲解。
STM32 终端产品覆盖多领域,包括工业控制类、医疗器械、智能家居、消费电子、军工、汽车电子、农林植保等,可满足不同场景下的智能控制需求。
1.2.2 Cortex-M3芯片结构

1.2.3 ARM 内核介绍
- 核心能力:按处理数据能力分为 8 位、16 位、32 位、64 位,位数越高,数据处理效率和精度通常越强;
-
架构演进:经历 V5/V5E → V7 → V8 阶段架构升级伴随性能与功能优化;
-
内核分类:
-
- A (Application,应用处理器)系列:主打消费电子领域,多为 64 位,支持复杂操作系统(如IOS、安卓、Linux);
-
- R (RealTime,实时处理器)系列:适用于对可靠性、可用性和实时性要求较高的领域,如汽车电子、工业自动化、航空航天、硬盘、4G通信模块、相机等;
-
- M (Microcontroller,微控制器)系列:专为低功耗嵌入式系统设计,旨在提供高效的能耗管理和丰富的外设支持,适用于物联网(IoT)设备、传感器、医疗设备等资源受限的领域。如 M0、M0+、M3、M4、M7,兼顾性能与功耗,适合嵌入式控制;
-
常见芯片厂商:海思(中国、型号HiXXX)、乐鑫(中国、型号ESP32)、兆易(中国、型号GD)、三星、高通、ST(意法半导体)、NXP (恩智浦)等等
-
示例型号:STM32F103ZET6、STM32F103RCT6 均属于 V7 架构 M3 系列,是嵌入式开发中常用的型号。
1.3 常见的 MCU
1.3.1 按功能分类
-
控制为主:NXP(恩智浦)、ST(意法半导体)、兆易创新等,擅长工业控制、家电控制等场景;
-
无线通信为主:TI(德州仪器)、乐鑫(ESP8266、ESP32 系列)等,集成 Wi-Fi、蓝牙等无线模块,适合物联网设备;
-
低功耗为主:STM32L 系列,功耗低至微安级,适用于电池供电的便携式设备(如智能手环、传感器节点)。
更多国产MCU品牌:感兴趣可以参考国内MCU品牌和国内MCU信息汇总
1.3.2 国产 MCU 应用领域及厂商
| 应用领域 | 主要厂商 |
|---|---|
| 家电和消费电子 | 中微、中颖、宏晶、雅特力、芯圣、汇春、灵动、晟矽 |
| 物联网 | 芯海、乐鑫、贝特莱、兆易、云间、健天、炬芯 |
| 智能表计、IC 卡及安全 | 国民、复旦、贝岭、钜泉 |
| 计算机和网络通信 | 国芯、东软、沁恒、华芯、希格玛 |
| 工业控制 | 华大、万高、时代、航顺、赛元、峰昭、极海 |
| 汽车电子 | 赛腾、杰发、芯旺、比亚迪半导体、琪浦维半导体 |
1.3.3 国产 GD32 与 STM32 的区别
参考资料:https://jishu.proginn.com/doc/29506477906be233d
核心差异点:
-
兼容性:GD32 引脚、内核架构与 STM32 高度兼容,可实现大部分场景下的直接替换,但部分外设寄存器细节存在差异;
-
性能:GD32 部分型号主频更高(如 GD32F4 系列最高主频 200MHz,STM32F4 系列最高 168MHz),性价比更优;
-
供应链:GD32 作为国产芯片,供应链稳定性受国际环境影响较小,适合对供应链安全有要求的项目;
-
生态:STM32 生态更成熟,开发资料、例程、第三方工具更丰富,GD32 近年生态建设加速,差距逐步缩小。
2. STM32 的介绍
2.1 STM32 简介
2.1.1 基本定义
STM32 是 ST(意法半导体,由意大利 SGS 微电子与法国 Thomson 半导体合并而成)采用 ARM 内核设计的 32 位单片机系列,凭借高性能、低功耗、丰富外设等特点,成为嵌入式开发领域的主流选择。
2.1.2 官方资源链接
-
ST 中文社区:https://www.stmcu.com.cn/(提供中文技术文档、论坛交流、资源下载);
-
ST 官网:https://www.st.com.cn/content/st_com/zh.html(获取最新产品信息、官方手册、固件库);
-
ST 手册下载(以 STM32F103 为例):https://www.stmcu.com.cn/Designresource/list/STM32F1/document/document(包含参考手册、数据手册等核心资料)。
2.1.3 手册类型及用途
| 手册名称 | 用途 | 下载说明 |
|---|---|---|
| 参考手册(Reference Manual) | 软件工程师开发核心手册,详细描述芯片各模块功能、寄存器配置、工作原理(内容最全面,厚度最大) | 中文手册需在 ST 中文社区文档页搜索 “参考手册”;英文手册需在官网选择对应芯片型号 +“Reference Manual”,输入 “STM32F103” 即可筛选 |
| 数据手册(Data Sheet) | 硬件工程师必备,包含引脚定义、电气特性(如电压 / 电流参数)、机械封装、晶振 / 复位 / 电源电路设计规范 | 输入芯片型号 “STM32F103” 可在官网或中文社区切换中英文版本下载 |
| 勘误手册(Errata Sheet) | 说明芯片量产过程中发现的功能局限性、异常场景及官方解决方案,避免开发踩坑 | 下载路径与数据手册一致,建议开发前查阅最新版本 |
| 编程手册(Programming Manual) | 涵盖内核系统控制块寄存器描述、闪存(Flash)读写操作指南、读写保护设置方法 | 同数据手册下载路径,适合需要底层操作闪存或内核寄存器的开发场景 |
| 应用笔记(Application Note) | 针对特定应用场景(如低功耗设计、通信协议实现)的技术文档,常搭配固件例程,降低开发难度 | 可按应用主题(如 “低功耗”“SPI 通信”)在官网搜索,部分笔记附带代码示例 |
| 用户手册(User Manual) | 主要介绍 STM32 相关软件库(如 HAL 库、标准库)的使用方法、API 说明 | 通常随软件库一同下载,或在官网 “软件与工具” 栏目查找 |
2.1.4 命名规范(以 STM32F103ZET6 为例)

参考 STM32 参考手册(中文)P3 页,这个手册放在下载资料的压缩包中了,各字符含义如下:
-
STM32:系列名称,代表 ST 32 位单片机;
-
F:产品类型,“F” 表示基础型(Foundation),此外还有 “L”(低功耗型)、“H”(高性能型)、“G”(通用型)等;
-
103:子系列,代表芯片的功能等级和外设配置,不同子系列支持的外设数量、性能存在差异;
-
Z:引脚数,“Z” 对应 144 脚,其他常见代号:“R”(64 脚)、“C”(48 脚)、“T”(36 脚)等;
-
E:Flash 容量,“E” 对应 512KB,其他常见代号:“C”(256KB)、“B”(128KB)、“A”(64KB)等;
-
T:封装类型,“T” 表示 LQFP(薄型四方扁平封装),适合 PCB 板焊接;
-
6:温度范围,“6” 代表工业级(-40℃~85℃),“7” 代表车规级(-40℃~105℃),“5” 代表商业级(0℃~70℃)。
2.1.5 芯片核心资源(以 STM32F103xC/D/E 为例)
中文数据手册P1页,放压缩包了

-
内核:32 位 Cortex-M3 CPU,支持 Thumb-2 指令集,兼顾代码密度与执行效率;
-
最大工作频率:72MHz,可满足多数嵌入式控制场景的实时性需求;
-
存储:
-
- SRAM(随机存取存储器):48~64KB(如 STM32F103RCT6 为 48KB,STM32F103ZET6 为 64KB),用于临时存储程序运行数据;
-
- Flash(闪存 / 只读存储器):256~512KB(如 STM32F103RCT6 为 256KB,STM32F103ZET6 为 512KB),用于存储程序代码和固化数据;
-
低功耗模式:支持睡眠模式(Sleep)、停机模式(Stop)、待机模式(Standby),可根据设备功耗需求选择,待机模式功耗最低(仅数微安);
-
Debug 模式:支持 SWD(串行调试)和 JTAG(联合测试行动小组)接口,SWD 仅需 2 根线,适合 PCB 板空间有限的场景;
-
模拟功能:3 个 12 位 ADC(模数转换器,采样率最高 1MHz)、2 个 12 位 DAC(数模转换器),可实现模拟信号采集与输出;
-
I/O 接口:高达 112 个快速 IO 通道,支持推挽输出、开漏输出、上拉输入、下拉输入等多种工作模式,部分 IO 支持 5V 容忍;
-
定时器:11 个定时器,包含 2 个高级定时器(支持 PWM 互补输出、死区控制)、4 个通用定时器、2 个基本定时器、2 个看门狗定时器、1 个 SysTick 定时器(系统滴答定时器,用于延时或操作系统时钟);
-
通信接口:13 个通信接口,包括 2 个 I2C(集成电路总线)、5 个 USART(通用同步异步收发器)、3 个 SPI(串行外设接口)、1 个 CAN(控制器局域网)、1 个 USB(通用串行总线)、1 个 I2S(音频串行接口);
-
其他:内置 CRC(循环冗余校验)计算单元(用于数据校验)、芯片唯一 ID(可用于设备身份识别)。
2.1.6 总线框图(数据手册P13 页)
总线框图(数据手册P13 页):

-
- 核心结构:左上角为 Cortex-M3 内核及 JTAG/SWD 下载接口,是芯片的 “大脑” 和调试入口;
-
- 数据总线:通过双向箭头连接的 AHB(先进高性能总线)、APB1(先进外设总线 1)、APB2 总线,CPU 需通过总线与外设通信;
关键注意点:使用任何外设前,必须先开启该外设对应的总线时钟(如 GPIO 挂载在 APB2 总线,需先使能 APB2 时钟),否则外设无法工作。
2.1.7时钟树(数据手册P14 页):

-
- 作用:为芯片内核、外设提供同步时钟信号,时钟周期决定指令执行速度和外设工作频率,主频越高,芯片性能越强;
-
- 时钟源分类:
-
-
- 外部时钟源(HSE、LSE):精度高、稳定性好,HSE 为高速外部时钟(4~16MHz,常用 8MHz),LSE 为低速外部时钟(32.768KHz,专为 RTC 实时时钟供电);
-
-
-
- 内部时钟源(HSI、LSI):无需外部晶振,成本低但精度稍差,HSI 为高速内部时钟(8MHz),LSI 为低速内部时钟(40KHz,供看门狗定时器使用);
-
2.1.8系统时钟来源:
可选择 HSI、HSE 或 PLLCLK(锁相环时钟),常用配置为 HSE(8MHz)→ 经过 PLL 9 倍频 → 72MHz 系统时钟;HSI 需先除以 2 再经过 PLL 16 倍频,最大可得到 64MHz 系统时钟。如下图所示(选择第一种):


2.1.9内存映射(数据手册P28 页):

-
- 地址空间:STM32 将程序存储器(ROM/Flash)、数据存储器(RAM)、寄存器、I/O 端口统一组织在 4GB 线性地址空间中,分为 8 个 512MB 块,每个区域对应固定地址范围;
-
- 数据存储格式:采用小端模式(高位字节存于高地址,低位字节存于低地址),每个内存地址对应 1 字节数据,32 位数据需占用 4 个连续地址;
开发意义:了解内存映射可快速定位寄存器地址,实现底层硬件操作(如直接通过地址访问 GPIO 寄存器)。
2.2 STM32 开发硬件环境
2.2.1 MCU 最小系统电路(核心组成)
STM32 最小系统是确保芯片正常工作的基础电路,包含以下 4 部分,设计需严格参考数据手册参数:
- 供电电路(参考数据手册 P5.1.6):


-
- 核心电源:VCC 引脚接入 3.3V 直流电压,为 MCU 内核和数字外设供电;
-
- 滤波电容:在 VCC 与 GND 之间并联多个 104(0.1μF)陶瓷电容(如 C29、C30),用于滤除电源噪声,稳定电压;
-
- 模拟电源:Vref+ 引脚接 3.3V、Vref- 引脚接 GND,VDDA 引脚接 3.3V、VSSA 引脚接 GND,为 ADC、DAC 等模拟外设提供独立电源,减少数字电路对模拟信号的干扰。
- 复位电路(参考数据手册 P5.3.14 NRST 引脚特性):


-
- 工作原理:采用上电复位 + 按键复位设计,复位键未按下时,NRST 引脚通过上拉电阻保持高电平(芯片正常工作);按下复位键时,NRST 引脚接地变为低电平,触发芯片复位(程序从头开始执行);
-
- 电阻电容选型:通常搭配 10KΩ 上拉电阻和 10μF 电容,确保复位信号稳定。
- 时钟电路(参考数据手册 P5.3.6):

-
- 高速晶振电路(HSE):在 OSC_IN 和 OSC_OUT 引脚之间接入 8MHz 石英晶振,两端各串联 1 个 22pF 匹配电容(如 C23、C25)并接地,为芯片提供高速时钟源;

- 高速晶振电路(HSE):在 OSC_IN 和 OSC_OUT 引脚之间接入 8MHz 石英晶振,两端各串联 1 个 22pF 匹配电容(如 C23、C25)并接地,为芯片提供高速时钟源;
-
- 低速晶振电路(LSE,可选):在 OSC32_IN 和 OSC32_OUT 引脚之间接入 32.768KHz 晶振,搭配 12.5pF 匹配电容,仅用于需要 RTC 实时时钟的场景。
- 下载电路(SWD 接口,常用):

SWD 接口是目前主流的调试下载接口,仅需 4 个引脚(2 个核心信号 + 电源 + 地),接线如下:
| SWD 引脚 | 对应 STM32 引脚 | 备注 |
|---|---|---|
| JTMS | PA13(105 脚) | 对应 SWDIO 信号,用于数据传输 |
| JTCK | PA14(109 脚) | 对应 SWCLK 信号,用于时钟同步 |
| GND | GND | 接地,确保信号参考电平一致 |
| VCC(可选) | VCC3.3V | 为下载器供电,部分下载器(如 ST-LINK V2)可独立供电,此脚可悬空 |
2.2.2 最小系统开发板说明
-
定义:仅包含上述供电、复位、时钟、下载电路的开发板,不含额外外设(如 LCD、传感器),是学习 STM32 底层驱动的基础硬件;
-
设计依据:需严格遵循 STM32 数据手册中的电气参数和推荐电路,或参考 ST 官方 Demo 板(如 STM32F103VET6 评估板)的设计方案,避免因电路设计错误导致芯片损坏;
-
用途:用于验证芯片基本功能(如 GPIO 输出、定时器中断)、调试底层驱动程序,也可作为自定义项目的核心控制板,外接所需外设。
2.3 STM32 开发软件环境
2.3.1 常用 IDE(集成开发环境)
IDE 是 STM32 程序开发、编译、调试的核心工具,不同 IDE 适用场景不同,选择需结合项目需求和个人习惯:
| IDE 名称 | 特点 | 适用场景 |
|---|---|---|
| KEIL(MDK-ARM) | 行业主流,支持绝大多数 STM32 型号,集成编译器、调试器、仿真器,插件丰富;需付费(有学习版) | 中小型项目开发、教学场景,兼容性强 |
| IAR | 专业级 IDE,编译效率高、代码优化效果好,调试功能强大;需付费,学习版有代码大小限制 | 对代码效率要求高的工业项目、军工项目 |
| STM32CUBEIDE | ST 官方免费 IDE,基于 Eclipse 开发,集成 STM32CubeMX(可视化配置工具),支持图形化外设配置 | 官方方案开发、新手入门,减少手动写配置代码 |
| VSCODE + 插件 | 轻量级编辑器,通过安装 C/C++、STM32 插件(如 Cortex-Debug)实现开发;免费、可自定义程度高 | 习惯 VSCODE 操作的开发者,适合配合 Makefile 或 CMake 构建项目 |
2.3.2 Keil 软件安装步骤(详细流程)
Keil(MDK-ARM)是教学和开发中最常用的 IDE,以下为完整安装与配置步骤
需注意路径无中文:
1. 安装前准备
- 必备文件:放压缩包了,分开压缩了,只需要破解的或者芯片支持包的选择自己需要的下载
那个破解的软件可能会被360等杀毒软件或者系统隔离,可以提前退出杀毒或者被隔离了自己找找看怎么恢复到原文件夹

-
- mdk527.exe:Keil MDK-ARM 主程序安装包(版本可更新,流程一致);
-
- Keil.STM32F1xx_DFP.1.0.5.pack:STM32F1 系列芯片支持包(使 Keil 识别 STM32F103 等型号);需要先安装keil
-
- Keil.STM32F4xx_DFP.2.14.0.pack:STM32F4 系列芯片支持包(可选,如需开发 F4 系列芯片);需要先安装keil
-
- 注册软件:注册软件-仅限个人学习使用文件夹中的激活工具(注意:仅用于个人学习,商业使用需购买正版)。
2.3.2.1需要其他版本的也可在官网下载:KEIL 官网下载 https://www.keil.com/download/product/


2.3.2.2需要其他芯片支持包下载地址:器件支持包 xx.pack–KEIL 官网下载
官网地址https://www.keil.arm.com/
不会查找在哪可以看这个视频
保安老王头的视频b
2. 安装 Keil 主程序
安装 KEIL 软件,注意不要使用中文路径;

-
双击 mdk527.exe,弹出安装向导,点击 “Next”;
-
勾选 “我接受许可协议”,点击 “Next”;
-
填写用户信息(姓名、公司可自定义),点击 “Next”;
-
选择安装路径(必须为英文路径,如 D:\Keil5),避免中文或特殊字符,点击 “Next”;
-
等待安装进度条完成(约 2~5 分钟),弹出 “安装完成” 提示,点击 “Finish”,暂不打开软件。
2.1zhuce

注册:仅限个人学习使用
选中 Keil 图标,右键以管理员运行,找到菜单栏“license Management”



找到 CID,复制,打开注册软件


成功之后到2032年

3. 安装芯片支持包(Pack 包)
-
作用:Keil 默认不支持 STM32 芯片,需安装对应 Pack 包,才能在新建项目时选择 STM32 型号并编译程序;
-
下载路径:除本地文件外,可在 Keil 官网(https://www.keil.arm.com/)搜索 “STM32F1xx DFP” 获取最新版本;
-
安装方式(推荐第三种,离线安装,稳定高效):
-
- 在线安装:打开 Keil → 点击工具栏 “Pack Installer” → 点击 “Refresh” 刷新包列表 → 找到 “STM32F1xx DFP” → 点击 “Install”,等待下载安装(需联网,速度依赖网络);
-
- 离线安装 1:打开 Pack Installer → 点击 “File → Import” → 选择本地 Keil.STM32F1xx_DFP.1.0.5.pack 文件 → 点击 “Open”,完成安装;
-
- 离线安装 2:直接双击本地 Keil.STM32F1xx_DFP.1.0.5.pack 文件,弹出安装向导,点击 “Next” 直至进度条到 100%,提示 “Install Successful” 即完成。
安装好keil双击安装就行

2.3.3 其他驱动安装
放压缩包了
- ST-LINK 驱动(用于下载调试):
-
- 用途:ST-LINK 是 ST 官方下载器,需安装驱动才能与电脑正常通信,实现程序下载和在线调试;
-
- 安装步骤:双击 ST-LINK_V2_USB_Driver.exe → 按向导点击 “Next” → 完成安装后,将 ST-LINK 连接电脑,打开 “设备管理器”,在 “通用串行总线设备” 中可看到 “ST-LINK/V2”,表示驱动安装成功。
- USB 转串口驱动(用于串口通信):
-
- 用途:若项目需通过串口与电脑通信(如打印调试信息、接收上位机指令),需安装 USB 转串口模块(如 CH340、CP2102)的驱动,USB转TTL电平;
-
- 安装步骤:根据模块型号选择对应驱动(如 CH340 选择 CH341SER.EXE),双击安装 → 连接模块到电脑,在 “设备管理器”“端口(COM 和 LPT)” 中可看到 “USB-SERIAL CH340(COMx)”,表示驱动安装成功。

3万+

被折叠的 条评论
为什么被折叠?



