第一部分 学习总览与方法1.1 解决三个根本问题学什么以 STM32 为核心的嵌入式 MCU 开发。用什么学C 语言 Keil MDK VS Code STM32CubeMX HAL 库。怎么学工具使用 源码研读 官方文档查阅 工程实践。1.2 核心学习路线建立嵌入式行业认知与岗位图谱。明确工具链选型搭建开发环境。认识 STM32F103ZET6 芯片本体。学会查阅 DataSheet 与原理图。理解裸机开发与 Flash 烧录。掌握特殊功能引脚与普通 GPIO 引脚。后续进入 GPIO、外设、中断、时钟、RTC 等实战。既要懂原理又要懂工具还要懂源码。拒绝培养只会调 API 的“API 调用工程师”。第二部分 嵌入式行业认知与岗位图谱2.1 计算机平台与岗位对应关系平台典型岗位个人电脑客户端开发工程师服务器服务器开发工程师智能手机/平板移动开发工程师如 Android/iOS单片机/MCU嵌入式开发工程师2.2 嵌入式岗位细分2.2.1 硬件工程师负责电路原理图设计、PCB Layout、焊接调试。核心技能数电、模电、EDA 工具、硬件调试。2.2.2 嵌入式系统架构师负责技术方案选型、成本评估、软硬件团队协调。要求全栈视野、丰富项目经验、行业洞察力、带团队能力。定位进阶目标不是入门起点。2.2.3 嵌入式软件工程师MCU 开发工程师本课程核心方向片上开发。Linux 驱动开发工程师基于 Linux 内核做驱动。Linux 应用开发工程师基于操作系统做应用开发。其他细分BSP、FPGA、DSP 等。2.3 岗位分化本质岗位分化是产业成熟度的体现。初学者应聚焦MCU 软件开发这一基石。架构师能力需多年实战沉淀切勿好高骛远。2.4 经典案例智能家居冰箱AI 负责决策预测蔬菜消耗、自动下单。嵌入式设备负责执行数据采集、联网、控制。体现“AI 嵌入式”的产业落地逻辑。2.5 坑不要以为“嵌入式 纯硬件”。不要以为“嵌入式 Linux”。MCU 开发是软硬结合的切入点也是需求量最大的基础岗位。第三部分 行业前景与技术生命周期3.1 增长动力AIoT人工智能物联网。新能源汽车、智能家居、边缘计算等设备量激增。嵌入式设备是数据的“采集端”和指令的“执行端”。AI 需要大量数据做决策嵌入式负责采集、上报、控制。3.2 抗周期性纯软件框架迭代快今天新框架明天新 SDK。嵌入式依赖硬件物理特性底层协议如 USB、CAN、I2C 数十年稳定。技术积累具有复利效应。不易被 AI 自动生成代码完全替代。护城河对“物理世界约束”的理解。3.3 数据支撑国家统计局数据嵌入式行业近五年增速约10%—20%。同期 GDP 增速约5%。嵌入式增速显著高于 GDP。3.4 坑前景光明但入门门槛较高。嵌入式的壁垒在于物理世界约束纯代码生成工具难以跨越。前期学习曲线陡峭需做好心理建设。第四部分 STM32 工具链选型深度解析4.1 什么是工具链工具链是完成嵌入式开发所需的一系列软件组合。选对工具链是高效学习与工作的前提。4.2 工具链方案对比方案组合评价结论传统方案C Keil 标准外设库ST 官方 2017 年弃用资料停更AI 语料缺失淘汰商业方案C IAR ...授权昂贵无社区版不推荐过渡方案C Keil CubeMX HAL官方主流但 Keil 编辑器体验差可用但不优推荐方案C Keil MDK VS Code CubeMX HALKeil 编译/调试VS Code 编辑CubeMXHAL 配置首选一体化方案STM32CubeIDE封装度过高隐藏底层细节不利初学后期可选4.3 各工具定位4.3.1 Keil MDKARM 公司提供。负责编译、链接、烧录、调试。ARM 收购 Keil 公司成为 ARM 生态标配。指令集适配最完美。企业存量项目大量使用兼容性好。缺点编辑器体验差。4.3.2 VS Code微软出品现代编辑器。插件丰富。用于弥补 Keil 编辑体验短板。前期仅作编辑器。后期可通过插件实现编译、调试、烧录全流程。4.3.3 STM32CubeMXST 官方图形化配置工具。自动生成初始化代码。将开发者从繁琐寄存器配置中解放。核心作用代码生成器。配置引脚、外设、时钟、中断等。4.3.4 HAL 库ST 官方硬件抽象层库。与 CubeMX 绑定。提供标准化 API。企业主流开发方式。开源可读源码。4.4 开发流程对比旧模式手动查手册 → 手写寄存器配置代码 → 易错难调。新模式CubeMX 图形界面勾选引脚/外设 → 一键生成初始化代码 → 专注业务逻辑。4.5 为什么推荐“Keil VS Code”混合模式企业存量资产很多公司仍用 Keil 工程。现代开发体验VS Code 编辑效率高。进可攻熟练后用 VS Code 提效。退可守回到 Keil 维护老项目。本质是妥协的艺术也是新人融入职场的安全垫。4.6 坑初学阶段切勿使用 STM32CubeIDE过度封装会阻碍理解底层机制。VS Code 前期仅作编辑器待熟练后再接管编译调试。标准外设库已淘汰新项目严禁使用仅维护旧项目时涉及。IAR 授权昂贵不推荐初学。4.7 工具提供方与生态工具提供方作用Keil MDKARM编译、链接、烧录、调试VS Code微软代码编辑插件扩展STM32CubeMXST图形配置、生成初始化代码HAL 库ST硬件抽象、标准 API第五部分 HAL 库正确学习路径5.1 HAL 库定义HALHardware Abstraction Layer硬件抽象层。ST 提供的开源硬件抽象库。5.2 错误学法把 HAL 当黑盒。只会调 API。不懂底层实现。遇到 Bug 或特殊需求束手无策。5.3 正解HAL 库开发 源码研读利用 HAL 开源特性。对照 CubeMX 生成代码。追踪函数内部如何操作寄存器。理解配置代码与底层寄存器的映射关系。5.4 HAL 源码价值原厂工程师编写。健壮性、规范性远超手写代码。读懂 HAL 源码 学习工业级驱动写法。未来反向理解标准库也很容易。工具使用 源码研读。既要懂原理又要懂工具还要懂源码。5.6 坑不要因为 HAL 好用就放弃原理学习。工具越先进对使用者理解深度要求越高。否则无法应对复杂工程问题。第六部分 其他平台辨析6.1 51 单片机英特尔架构。技术陈旧逐渐淘汰。建议直接 STM32 HAL 入门无需在 51 上浪费时间。6.2 MSP430主打低功耗。与 51 基本同辈。当前已退出舞台不考虑。6.3 GD32国产成本比 STM32 低。与 STM32 高度兼容。掌握 STM32 后自然迁移无需单独开课。6.4 ESP32乐鑫公司推出。主打 Wi-Fi / 蓝牙物联网场景。开发模式比 STM32 简单。后续课程会有专门板卡支持。当前阶段先打好 STM32 基础。6.5 树莓派 Raspberry Pi卡片式计算机。运行 Linux 操作系统。可接显示器、键鼠、以太网。属于应用层开发。与 MCU 裸机/RTOS 开发完全不同。6.6 平台选型结论跳过 51 与 MSP430。直接切入 ARM Cortex-M 架构即 STM32。了解 GD32 作为国产兼容补充。了解 ESP32 作为物联网专用补充。区分 MCU 开发与树莓派 Linux 应用开发。第七部分 STM32F103ZET6 命名规则深度解析7.1 命名总览字段含义STM32ST 公司 32 位微控制器产品系列F通用类型103增强型系列Z引脚数 144 PinE内部 Flash 容量 512KB大容量产品T封装类型 LQFP四边扁平封装6工业级温度范围 -40°C ~ 85°C7.2 各字段深度解释7.2.1 STM32ST意法半导体。MMicrocontroller微控制器。3232 位。合起来ST 公司 32 位微控制器产品系列。7.2.2 F103F通用类型。103增强型。F103 是国民级标杆芯片工程师入门和量产项目常用。7.2.3 Z144 引脚Z 144 Pin。LQFP144 封装四边分布每边 36 个4 × 36 144。选择 Z 系列原因教学板需要足够多外设方便入门覆盖 MCU 基本功能。引脚数决定可连接外设数量。量产产品若只需简单控制可选 36 脚、48 脚等降低成本。引脚越多外设越多成本越高。技术服务于商业目标。深度理解做玩具36 脚足够做汽车核心控制器可能需要 144 脚。选型时要考虑功耗、成本、终端售价、市场竞争力。优秀的嵌入式工程师要有产品经济学视角能说出“为什么不用更贵的型号”。7.2.4 E512KB FlashE 512KB Flash大容量产品。Flash 容量对应程序规模。复杂算法需大容量简单逻辑用小容量。Flash 是程序体积的物理天花板。若代码 常量超过容量必须优化代码或换更大容量型号。选型本质功能需求与物料成本之间找最优解。深度理解Flash 大小决定能烧写多大的程序。程序复杂 → 选大 Flash程序简单 → 选小 Flash 降成本。不同 Flash 容量的 MCU 本质是对应不同规模的产品。7.2.5 TLQFP 封装T LQFPLow-profile Quad Flat Package四边扁平封装。引脚从四周伸出焊到 PCB 焊盘。其他封装H BGA球栅阵列封装。U VFQFPN超薄细间距四边扁平无引脚封装。封装类型描述焊盘形状由芯片工程师决定。LQFP 适合手工焊接与教学。BGA 引脚在底部半球形走线短功耗效率可能更高但难焊接。7.2.6 6工业级温度范围6 -40°C ~ 85°C。7 -40°C ~ 105°C。温度影响可靠性、性能、晶振频偏、逻辑错误。特殊场景石油钻头、室外摄像头、汽车记录仪等。高温可能导致晶振频率偏移影响功能。一般应用 6 已满足正常工况。7.3 对比案例STM32F103C8T6 vs STM32F103ZET6型号引脚Flash适用场景C8T648 Pins64KB简易遥控器、小传感器节点ZET6144 Pins512KB带屏显、多电机控制、复杂网关7.4 文档查阅打开 DataSheet。找到Ordering Information章节。找到 Part Number 解码表。逐一验证 Z/E/T/6 含义。也可查 Reference Manual 了解外设寄存器与软件编程。7.5 避坑指南勿混淆手册命名规则、电气特性、封装、引脚 → DataSheet。外设功能、寄存器、软件编程 → Reference Manual。勿死记硬背理解编码逻辑遇到陌生型号即时查表。注意版本优先英文版 DataSheet。中文手册可能翻译缺失、滞后、错误。7.6 QAQ1型号太多记不住怎么办不需要死记。建立“索引能力”看到型号不害怕知道去哪查、怎么查。高频型号自然记住不常用忘了就查。工程师核心能力是解决问题不是当数据库。Q2硬件参数信源来自哪里硬件规格查 DataSheet外设寄存器与软件编程查 Reference Manual。知识建立在确定性信源上。Q3中文手册找不到引脚定义或封装图英文原版通常最新最全。中文手册可能翻译不全、更新滞后或错误。缺图时切英文 DataSheet如 Chapter 6 Package characteristics。第八部分 裸机开发与 Flash 存储机制8.1 裸机开发定义Bare-metal Development无操作系统环境下应用程序直接在 MCU 硬件上运行由 CPU 从 Flash 中逐条取指执行。8.2 与操作系统开发对比类型代码规模运行方式Windows/Linux/Android/macOS千万行级应用跑在 OS 之上RTOS如 FreeRTOS/RT-Thread万行级轻量级调度裸机开发程序直接跑在 MCU 上CPU 逐行执行8.3 裸机开发流程PC 端编写 C/C 代码。编译链接生成二进制文件.bin/.hex。通过仿真器/下载器烧录至 MCU 内部 Flash。MCU 上电/复位后ARM Cortex-M3 内核从 Flash 起始地址读取指令顺序执行。控制外设完成任务。8.4 Flash 容量意义命名中的 E 512KB。是程序体积的物理上限。代码 常量超过此限必须优化或换型号。Flash 越大可拷贝程序体积越大。8.5 避坑指南区分宿主机与目标机VS Code、Keil 运行在 Windows/Linux。生成的目标代码跑在 MCU 裸机上。RTOS 认知F103 也可跑 FreeRTOS/RT-Thread。初期学习应从裸机入手理解底层硬件交互后再引入 OS 抽象层。第九部分 DataSheet 与 Reference Manual 查阅方法9.1 两类文档分工文档内容DataSheet 数据手册硬件规格命名、引脚、电气特性、封装、订货信息Reference Manual 参考手册外设寄存器、软件编程、功能描述9.2 查阅原则硬件规格参数以英文版 DataSheet 为准。中文手册可能存在翻译缺失或滞后。引脚定义需结合封装类型与俯视图标识点确认。对知识点存疑时第一时间在手册中找到对应章节作为确证。9.3 ST 官网下载路径示例进入 st.com。选择产品 STM32。选择 F1。选择 F103 系列。选择设计文件。下载对应型号 DataSheet如 ZE 系列。英文版通常更全中文版为译文。9.4 命名规则查哪里DataSheet 的Ordering Information章节。找到 Part Number 解码表。例如 STM32F103RC 示例图可查STM32产品型号。F通用类型。103增强型。R64 引脚。C256KB Flash。TLQFP。6工业温度范围。9.5 深度理解新班级同学类比数据手册就好像你刚进入一个新的班级刚开始你跟所有人都是陌生的。但是当你天天跟班级同学打交道时间久了每一个人你都能认识你还会给他起外号。同样参考手册或数据手册我们对它的态度就是它像一个陌生人当我们需要的时候我们就去查它。对应不要试图一次记住整本 DataSheet。用到哪查到哪。查多了自然熟悉。工程师核心能力是“索引能力”不是“背诵能力”。第十部分 LQFP144 引脚布局与编号规则10.1 LQFP144 基本结构STM32F103ZET6 采用 LQFP144。共 144 个引脚四边分布。每边 36 个4 × 36 144。引脚编号遵循 JEDEC 标准。以芯片表面标记点 Dot 为基准。逆时针方向依次为 Pin 1 至 Pin 144。10.2 引脚编号分布Pin 1—36一边。Pin 37—72第二边。Pin 73—108第三边。Pin 109—144第四边。10.3 图纸方向校正10.3.1 实物俯视图规则芯片正面朝上。找到芯片表面的小黑点。小黑点位于左下角。从小黑点开始逆时针编号Pin 1—36下边。Pin 37—72右边。Pin 73—108上边。Pin 109—144左边。10.3.2 DataSheet 图纸问题DataSheet 中的 LQFP144 图Pin 1 可能不在左下角。有时 Pin 1 在左上角或方向旋转了 90°。如果不旋转直接数会把 Pin 1 数成 Pin 36。会把 Pin 37 数成 Pin 72。引脚功能完全错位。10.3.3 旋转方法打开 DataSheet 的 LQFP144 引脚图。将图纸逆时针旋转 90°。使 Pin 1 标识点位于左下角。此时与实物俯视图一致。按逆时针方向数左下角为 Pin 1。下边到右下角为 Pin 36。右边到右上角为 Pin 72。上边到左上角为 Pin 108。左边回到左下角为 Pin 144。10.3.4 旋转前后对比方向Pin 1 位置是否与实物一致DataSheet 原图可能在左上角或其他位置❌ 不一致逆时针旋转 90° 后左下角✅ 一致10.3.5 为什么 DataSheet 要这样画DataSheet 是给工程师看的不是给初学者看的。厂商默认读者有经验不会特意调整方向。不同封装图混在一起排版紧凑。所以需要读者自己校正方向。10.3.6 验证方法打开英文版 DataSheet。找到 Chapter 6 “Package characteristics”。找到 LQFP144 机械尺寸图。对比中文版中文版可能缺失此图。以 Pin 1 物理标记为唯一基准。不要依赖图纸印刷方向。10.4 为什么有多种引脚图DataSheet 通常覆盖同一系列多个型号。如 Z/V/R/C 多种封装。必须精准定位到LQFP144章节。忽略其他封装如 BGA、LQFP100、LQFP64。10.5 引脚分类类型数量特点特殊功能引脚约 32 个硬件功能固定不可重映射普通 GPIO 引脚约 112 个可软件配置为输入/输出/复用功能10.6 内部编号与外部功能名教室座位号类比教室里一共有 50 个座位我们给这 50 个座位编号分别是 1 到 50。1 号座位坐的是班长2 号座位坐的是学习委员3 号座位坐的是卫生委员6 号座位坐的是体育委员。剩下的座位坐的都是普通学生。老师来班里管理学生时通常不会喊“1 号座位的人维持一下纪律”而是喊“班长维持一下纪律”“学习委员把作业收一下”。也就是说日常管理时我们用的是外部功能名称而不是内部编号名称。对应到 MCU教室MCU座位编号 1—50引脚内部编号 1—144班长、学习委员、体育委员特殊功能引脚VDD、VSS、NRST、BOOT0、VBAT普通学生普通引脚PA0—PG15老师喊“班长”工程师用“NRST”“BOOT0”“PA0”老师喊“1 号座位”硬件工程师可能用“Pin 25”“Pin 143”结论内部编号物理位置标识硬件设计、PCB Layout 时用。外部功能名逻辑功能标识写代码、看原理图时用。两者一一对应但使用场景不同。10.7 避坑指南认准封装查图前确认芯片封装后缀T LQFP。方向校验始终以 Pin 1 物理标记为唯一基准。中英文对照中文手册缺图立即切英文手册 Chapter 6。BGA 引脚在底部LQFP 引脚在四周。第十一部分 特殊功能引脚详解11.1 VDD / VSS电源供电网络定义VDD 正电源3.3V。VSS 地GND。多对设计原理家里排插类比你家里供电的时候家里的排插有多少你房间有你爷爷家有你奶奶家有你爸爸妈妈房间有客厅也有。这么多排插为什么不用一个总出口就完了不就是哪方便怎么来嘛。对应到 MCUSTM32F103ZET6 有约11 对 VDD/VSS共 22 个电源引脚。它们用的都是同一个 3.3V 和同一个 GND。但 MCU 内部模块分布在不同位置有的 UART 在芯片右下角。有的 SPI 在芯片左上角。有的 ADC 在芯片底部。如果只有一个电源引脚内部走线会很长走线长 → 阻抗大 → IR 压降大。走线长 → 容易引入 EMI。走线长 → 瞬态电流响应慢。多对 VDD/VSS 的三大作用作用解释缩短内部供电路径每个模块就近取电降低 IR 压降走线短电阻小压损小减少 EMI供电路径短环路面积小电磁干扰低3.3V 标准来源半导体工艺演进。低功耗需求。历史发展形成的行业标准。原理图验证比特灵犀板原理图中所有 VDD 汇聚至 3.3V 网络标号。所有 VSS 汇聚至 GND。就近放置去耦电容滤除高频噪声。电流方向电压形成电流从高电压流向低电压。电流方向与电子流动方向相反。现阶段只需知道 VDD 接 3.3VVSS 接地。11.2 NRST复位引脚定义Negative Reset低电平有效复位输入引脚。Pin 25。N Negative / Not强调低电平有效。若无 N 前缀通常为高电平有效。工作逻辑NRST 电平MCU 状态高电平 3.3V正常运行低电平 GND复位CPU 停止当前操作寄存器/外设恢复初始状态程序计数器归零硬件实现开发板上通过轻触开关连接 NRST 与 GND。默认上拉电阻保持高电平。按下开关则短路至地触发复位。复位按键在板子左下角。深度理解Windows 重启类比NRST 就像 Windows 电脑卡死了你按重启键让它重新以全新的工作方式运行。所有内部数据、寄存器、硬件配置全部初始化从最开始运行。对应NRST 低电平有效。触发 MCU 硬件复位。寄存器/外设恢复初始状态。程序计数器归零。11.3 VBAT备用电源与掉电保护定义Battery Backup Input。主电源掉电时为 RTC、后备寄存器等关键模块供电。防止时间与数据丢失。保持低功耗运行。深度理解水管单向阀类比我们人类花了几千年能够把水控制起来让水能够实现单向流动。比如有一种东西叫指挥阀水从左向右流动时冲开开关它就流出来了。但如果从右向左流动这个开关在水压作用下就自动闭合了。水流越大它闭得越紧。到了近代我们人类控制电的时候也设计出来一种类似于指挥阀的东西它就是二极管。二极管基本符号与特性符号三角形 竖线。三角形一侧阳极正极。竖线一侧阴极负极。电流方向阳极 → 阴极。反向阴极 → 阳极截止不导通。核心特性单向导电性。导通条件普通硅二极管导通压降约0.6—0.7V。肖特基二极管导通压降约0.3—0.4V。导通条件V阳极−V阴极≥VfV阳极​−V阴极​≥Vf​。硬件原理肖特基二极管 OR-ing 电路使用 BAT54C 双肖特基二极管。电池CR1220 纽扣电池3V。电池座BS-12-B3AA003。完整压降计算正常工况VDD 3.3V电池 3.0V上方二极管阳极 3.3V阴极初始 0V压差 3.3V 0.4V导通。导通后阴极电压3.3V−0.4V2.9V3.3V−0.4V2.9V。下方二极管阳极 3.0V阴极 2.9V压差 3.0V−2.9V0.1V3.0V−2.9V0.1V。0.1V0.4V0.1V0.4V下方二极管反向截止。结论由VDD 3.3V供电VBAT 节点约 2.9V。掉电工况VDD 跌落至 0V上方二极管阳极 0V阴极 2.9V反向偏置截止。下方二极管阳极 3.0V阴极因负载下拉瞬间低于 2.6V压差 3.0V−2.6V0.4V3.0V−2.6V0.4V满足导通条件。导通后阴极电压3.0V−0.4V2.6V3.0V−0.4V2.6V。结论毫秒级内自动切换至电池供电VBAT 节点约 2.6V。完整对比表工况上方二极管下方二极管供电源VBAT 节点正常导通截止VDD 3.3V2.9V掉电截止导通电池 3.0V2.6V为什么用肖特基普通硅管 Vf≈0.7VVf​≈0.7V。电池电压 3.0V。若用普通硅管3.0V−0.7V2.3V3.0V−0.7V2.3V。2.3V 可能低于 RTC 工作阈值导致 RTC 停摆。肖特基 Vf≈0.3—0.4VVf​≈0.3—0.4V电池端可用电压 3.0V−0.4V2.6V3.0V−0.4V2.6V满足 RTC 工作需求。电脑纽扣电池类比你的台式机关机了甚至电源线都拔了。过两三天再启动时间还是对的。为什么因为电脑内部有纽扣电池为时钟和基本配置供电。VBAT 就是 MCU 的纽扣电池供电域。实际产品还需考虑电池反接保护。漏电流。电池寿命。二极管反向恢复时间。温度对压降的影响。11.4 BOOT0启动模式选择定义Boot Mode Selection Pin。决定 MCU 复位后的程序入口地址。模式对照BOOT0 电平启动区域用途类比GND (0)Main Flash0x08000000正常运行用户程序从硬盘启动 WindowsVDD (1)System MemoryBootloaderISP 串口/USB 烧录、修复从 U 盘 PE 系统启动硬件实现通过滑动开关 SS12D07 选择接地或接 3.3V。默认应置于 GND 侧。BOOT1 在 LQFP144 中一般直接接地不讨论。开关往上掰接地往下掰接 3.3V。与 NRST 区别NRST重启动作决定“何时开始”。BOOT0启动模式选择决定复位后“从哪里开始执行代码”。操作顺序完整推导为什么先设 BOOT0再按 NRSTBOOT0 是电平敏感引脚。MCU 只在复位释放瞬间采样 BOOT0 电平。复位结束后BOOT0 电平被锁存决定启动区域。如果先按 NRST再改 BOOT0MCU 已经根据旧 BOOT0 电平启动。再改 BOOT0 不会重新采样。必须再次复位才能生效。正确操作顺序设置 BOOT0 为所需电平。按 NRST 复位。MCU 复位释放时采样 BOOT0。根据 BOOT0 电平跳转到对应启动区域。错误操作顺序先按 NRST。MCU 已按旧 BOOT0 启动。再改 BOOT0。无效必须再按一次 NRST。应用场景Flash 程序损坏导致 SWD/JTAG 无法连接时。拨动 BOOT0 至高电平并复位。强制进入 Bootloader 模式进行救砖式烧录。99.99% 情况 BOOT0 默认接地正常运行用户程序。BIOS 启动项类比你想重装系统从 U 盘启动就开机狂按 F2/F12进入 BIOS设置启动设备为 U 盘。下次电脑重启就不再读取磁盘上的操作系统转而读取 U 盘上的系统。BOOT0 就是 MCU 的“启动项选择”。11.5 其他特殊引脚简述引脚功能OSC_IN / OSC_OUT外部高速晶振输入/输出为系统提供精准时钟源VREFADC/DAC 外部参考电压输入提高模拟采样精度NCNo Connect内部未连接PCB 设计可悬空或接地依手册建议BOOT1启动模式相关LQFP144 中默认接地暂不讨论11.6 特殊功能引脚总结LQFP144 下特殊功能引脚约 32 个。VDD/VSS 约 22 个。NRST、VBAT、BOOT0、OSC、VREF、NC 等。硬件功能固定软件不可改。做板子的人通过原理图完成特定控制。第十二部分 普通引脚结构与验证12.1 普通引脚定义普通引脚又称可编程引脚。通过代码控制高低电平输出。实现对外设的协议级别控制。后续编写代码时主要使用这批引脚。具体 GPIO 控制方法在后续课程讲解。八爪鱼类比普通引脚就像八爪鱼一样八爪鱼有各种触角每一个触角将来就可以完成对某种外设的控制。对应普通引脚 可编程引脚。每个引脚可配置为输入/输出/复用功能。分别控制不同外设LED、按键、UART、SPI、I2C 等。12.2 特殊功能引脚 vs 普通引脚类型功能是否可编程特殊功能引脚供电、RESET、启动模式、电源切换等 MCU 自身基础功能硬件固定不可重映射普通引脚控制外设协议级控制可编程可配置输入/输出/复用12.3 引脚命名与数量统计命名规则格式组别字母 编号。如 PA0、PA15、PB0、PB15、PG0、PG15。字母表示分组类别。数字表示组内序号。总量构成STM32F103ZET6 共 144 个引脚。普通引脚 112 个。特殊功能引脚 32 个。144 - 112 32。分组详情分组引脚范围数量PAPA0—PA1516PBPB0—PB1516PCPC0—PC1516PDPD0—PD1516PEPE0—PE1516PFPF0—PF1516PGPG0—PG151612.4 完整引脚组概念ZET6 的 LQFP144 封装下PA 至 PG 各组均为 0—15 完整配置。称为完整引脚组。其他封装或引脚数较少的 MCU 可能存在不完整组PF 组仅 6—8 个。或缺少 PF、PG 组。同系列不同封装引脚个数不同。12.5 物理排布特征印度电线类比正常情况下我们走线应该规规矩矩看起来舒服。但你看印度人走线那些电线完全很凌乱。为什么因为他们实用优先。几十年前中国也一样家里那些线也是随便弄的怎么进怎么来。对应普通引脚在 MCU 四周并非按 PA0—PA15 顺序连续排列。而是完全打散分布。设计原因取决于 MCU 内部设备走线实用优先而非视觉规整。查找建议用 CubeMX 搜索验证不要手动数。12.6 STM32CubeMX 验证操作工具定位STM32CubeMX 为通用开发工具。支持多型号 MCU。当前阶段仅用于引脚可视化查看。操作流程打开 STM32CubeMX。新建项目。输入完整型号STM32F103ZET6。软件自动加载配套固件。呈现芯片引脚图。在搜索框输入组别关键字如 PA、PB。对应引脚自动高亮。逐一核对 0—15 编号完整性。搜索匹配注意事项误匹配案例搜索 PE 时PC13 引脚因名称包含TEMPERATURE RTC字符串而被同时高亮选中。识别方法人工核对高亮引脚的实际标签。排除因字符子串匹配导致的非目标引脚干扰。验证结论经逐组搜索确认STM32F103ZET6 的 PA 至 PG 七组普通引脚均为完整的 0—15 配置。12.7 普通引脚总结普通引脚 可编程引脚。ZET6 共 112 个普通引脚分 7 组每组 16 个。物理排布不连续用 CubeMX 搜索验证。后续写代码主要控制这批引脚。GPIO 控制方法后续课程讲解。第十三部分 工程习惯、避坑与 QA 汇总13.1 工程习惯知识建立在可靠信源上DataSheet、Reference Manual、官方源码。硬件规格查 DataSheet。外设寄存器与软件编程查 Reference Manual。中文手册缺失时切英文原版。遇到陌生型号即时查表不靠死记。读 HAL 源码理解配置代码与寄存器映射。使用 CubeMX 辅助配置与验证引脚。13.2 避坑汇总51 单片机不需要专门学。MSP430 不考虑。GD32 掌握 STM32 后自然迁移。ESP32 先打 STM32 基础后续再学。树莓派不是 MCU是 Linux 卡片计算机。标准外设库 2017 年已弃用。IAR 授权昂贵不推荐。CubeIDE 初学不推荐封装过高。VS Code 前期仅编辑后期再接管编译调试。不要只调 HAL API要读源码。不要混淆宿主机与目标机。不要死记命名要会查。不要混淆 DataSheet 与 Reference Manual。查引脚图认准 LQFP144 与 Pin1。BOOT0 与 NRST 功能不同操作顺序先 BOOT0 再 NRST。VBAT 依赖肖特基二极管低压降实现无缝切换。13.3 QA 汇总问题答案还需要学 51 吗不需要直接 STM32 HAL 入门GD32 要专门学吗不用与 STM32 高度兼容自然迁移ESP32 要专门学吗先打 STM32 基础后续课程有专门板卡树莓派和 MCU 是一回事吗不是树莓派跑 Linux属于应用层开发型号记不住怎么办不死记建立索引能力会查即可硬件参数信源在哪DataSheet 查硬件Reference Manual 查外设寄存器中文手册找不到图切英文原版 DataSheetHAL 库怎么学工具使用 源码研读不能只调 API