
一、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/696097STM32F103 | 产品 | 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.cnST 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 MDKSTM32CubeMxHAL 库 Keil MDK 编写代码特别难受不建议纯这套组合使用C 语言 Keil MDK vscode STM32CubeMx HAL 库 企业大量在用 Keil MDK使用 vscode 的代码编辑能力来补充编码体验采用这种开发方式C 语言 STM32CubeIDEHAL 库 STM32CubeIDE 集成度太高不利于新手吃透底层原理目前不建议入门选用C 语言 IARSTM32CubeMxHAL 库 IAR 在企业内使用份额很高但 IAR 无免费社区版本正版授权费用昂贵不适合新手学习Keil MDKMicrocontroller 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.htmlSTM32CubeIDE意法官方一体化集成开发环境集代码编写、编译、调试、程序烧录功能于一体官网https://www.st.com/en/development-tools/stm32cubeide.html3. C 语言 Keil MDK VSCode STM32CubeMx HAL 库工具所属公司主要作用Keil MDKARM 公司程序编译、链接、调试生成可烧录机器码VS Code微软现代化轻量化代码编辑器依靠插件拓展开发环境STM32CubeMX意法半导体 (ST)图形化配置引脚、系统时钟自动生成芯片初始化代码HAL 库意法半导体 (ST)硬件抽象层 API屏蔽底层寄存器细节大幅提升代码可移植性4. 核心问题HAL 库适合入门学习吗SPL 标准库早已被 ST 官方全面淘汰如今只有老旧遗留项目还在维护新项目统一使用 HAL 库AI 开发时代更不会选用标准库STM32 标准库什么时候被淘汰的https://www.doubao.com/thread/x2zz91fabcTVxLhUFCubeMX 可根据用户配置一键生成初始化配置代码仅底层配置代码不包含业务逻辑代码极大提升项目开发效率弊端纯图形化点选配置容易脱离硬件底层原理界面不会展示寄存器细节初学者容易只会拖拽不懂内核逻辑。解决方案穿插研读 HAL 库自动生成的源码逐行拆解底层寄存器逻辑打通图形配置和硬件原理之间的隔阂。 吃透 HAL 库开发方式后其余各类开发工具链都能快速上手。三、开发环境安装与介绍1. VSCode 介绍VSCode 是程序员圈子里主流开发工具之一嵌入式领域越来越多公司也开始转向 VSCode。核心定位代码编辑器优势现代化开发界面强大代码编辑支持快速代码补全、高亮、跳转等功能插件体系丰富环境搭建简单便于和 AI 结合开源免费劣势部分场景下调试能力不如 Keil2. 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) 的在线组件和芯片包管理工具用于下载各种芯片的 DFPDevice 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 - STMicroelectronics6.1 固件包安装可以自己设置固件包安装的位置知根知底下载固件包点击红色框中的按钮找到对应的STM32的型号安装即可安装完成后在固件包的位置处即有对应的文件