嵌入式:理解STM32文档和社区生态,工具链的选择与安装

一、STM32 的文档与社区生态

1.理解文档化逻辑

产业依靠分工运转:CPU 设计、芯片制造、PCB 绘制、软件编程由不同人员各司其职;同时产业链需要紧密协作,不同领域人员想要配合,就必须依靠文档 打通知识壁垒。 不懂硬件结构、引脚功能、寄存器定义时,查阅配套文档是唯一方式。 文档化是嵌入式行业常态,阅读芯片手册是嵌入式工程师必备能力;文档消除不同岗位的知识隔阂,看懂各类手册是嵌入式领域通用语言。

2.嵌入式开发必备各类文档

  1. ARM 内核侧:《技术参考手册》 ARM 售卖 CPU 内核 IP 时,会提供该手册,指导芯片厂商集成 Cortex 系列内核;ARM 架构参考手册下载地址:https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m3

    这份手册面向硬件底层设计,普通软件开发者一般无需查阅。

  2. ST 意法半导体(MCU 厂商)输出两份核心手册

学习文档心态说明

前期不用通读所有海量文档,入门阶段只聚焦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 开发中,常见的工具链组合非常多:

  1. C 语言 + Keil MDK + 标准外设库 (Standard Peripheral Library,简称 SPL) 标准外设库官方已经在 2017 年弃用了,陈旧做法,不建议使用。

  2. C 语言 + Keil MDK+STM32CubeMx+HAL 库 Keil MDK 编写代码特别难受,不建议纯这套组合使用

  3. C 语言 + Keil MDK + vscode +STM32CubeMx + HAL 库 企业大量在用 Keil MDK,使用 vscode 的代码编辑能力来补充编码体验,采用这种开发方式

  4. C 语言 + STM32CubeIDE+HAL 库 STM32CubeIDE 集成度太高,不利于新手吃透底层原理,目前不建议入门选用

  5. 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 区别

3. C 语言 + Keil MDK + VSCode + STM32CubeMx + HAL 库

工具 所属公司 主要作用
Keil MDK ARM 公司 程序编译、链接、调试,生成可烧录机器码
VS Code 微软 现代化轻量化代码编辑器,依靠插件拓展开发环境
STM32CubeMX 意法半导体 (ST) 图形化配置引脚、系统时钟,自动生成芯片初始化代码
HAL 库 意法半导体 (ST) 硬件抽象层 API,屏蔽底层寄存器细节,大幅提升代码可移植性

4. 核心问题:HAL 库适合入门学习吗?

  1. SPL 标准库早已被 ST 官方全面淘汰,如今只有老旧遗留项目还在维护,新项目统一使用 HAL 库,AI 开发时代更不会选用标准库;
    STM32 标准库什么时候被淘汰的https://www.doubao.com/thread/x2zz91fabcTVxLhUF
  2. CubeMX 可根据用户配置一键生成初始化配置代码(仅底层配置代码,不包含业务逻辑代码),极大提升项目开发效率;
  3. 弊端:纯图形化点选配置容易脱离硬件底层原理,界面不会展示寄存器细节,初学者容易只会拖拽不懂内核逻辑。

解决方案: 穿插研读 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 安装

温馨前置提示

  1. 软件安装路径绝对不能包含中文,必须全英文路径
  2. 安装目录不能和 C51 版本 Keil 互相冲突,二者文件夹需要分开存放
  3. 使用中出现莫名报错,优先百度或者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 芯片固件包

  1. 在 Pack Installer 界面检索 STM32 系列器件
  2. 选中需要使用的 STM32 型号,点击 Install 等待下载安装完毕
  3. 安装完成后,对应芯片固件包会存放在之前设置的 Pack 目录中,Keil 即可正常创建对应 STM32 工程

5. STM32CubeMX 介绍

软件定位

STM32CubeMX 是 ST 官方推出的可视化硬件配置 + 初始化代码自动生成工具

**核心用途:**图形化配置单片机外设、时钟、引脚,一键生成 Keil 工程初始化代码,大幅降低 STM32 底层配置难度。

获取方式

前往 ST 官方网站下载安装包,可免费获取使用。

6. STM32CubeMX 安装

下载链接: STM32CubeMX | Software - STMicroelectronics

6.1 固件包安装

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

下载固件包

点击红色框中的按钮

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

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

相关推荐
ACP广源盛139246256732 小时前
DeepSeek‑V4‑Flash 公测@ACP#昇腾 950 国产算力组合落地,国产 PCIe 交换芯片 IX9104 有哪些硬件机会
大数据·数据库·人工智能·分布式·单片机·嵌入式硬件·microsoft
铅笔小新z3 小时前
【stm32】RCC 与时钟树
stm32·单片机·嵌入式硬件
时空自由民.3 小时前
STM32 IIC HAL库,LL库
stm32·单片机·嵌入式硬件
辰哥单片机设计4 小时前
STM32智能门禁系统(语音版)
stm32·单片机·嵌入式硬件
映翰通朱工6 小时前
Windows 上位机 + EC3320:USB 转 CAN 通信实测(从接线到 SSH 收包)
windows·stm32·ssh
Industio_触觉智能6 小时前
瑞芯微ISP内核驱动深度解析|RKISP39从架构到Probe初始化全流程(上篇)
linux·嵌入式硬件·硬件架构·摄像头·isp·瑞芯微·rk3576
Funing77 小时前
系列一:STM32 外设初始化
stm32·单片机·嵌入式硬件
XiangrongZ8 小时前
debian中配置stm32的交叉编译环境
运维·stm32·debian
✎ ﹏梦醒͜ღ҉繁华落℘8 小时前
单片机基础知识--LVGL学习-lv_obj_add_flag()
c语言·单片机·学习