1. 课程导入
1.1 为什么我们需要工程模板?
做嵌入式开发这些年,我见过太多新手一上来就新建一个空工程,然后从零开始配置时钟、GPIO、中断向量表……折腾半天,代码还没写几行,先被工程配置搞崩溃了。
说白了,工程模板就是一套“半成品”项目骨架。它帮你把那些每次都要重复做的事情——芯片初始化、时钟树配置、外设驱动框架、工程目录结构——提前做好。你拿到手,直接往里填业务逻辑就行。
我在项目中遇到过好几次这样的情况:团队里不同人建的工程,头文件路径不一样、优化等级不统一、启动文件版本对不上。联调的时候,问题一个接一个。后来我强制要求所有人用同一套模板,这些破事儿再没出现过。
工程模板的核心价值:
- 一致性——团队所有成员使用相同的工程结构,避免“在我电脑上能编译”的尴尬
- 可复用——一个调好的模板,后续项目直接复制,省去重复配置时间
- 可维护——统一的目录规范、命名规则,三个月后自己回来改代码也能看懂
你想想看,每次新建项目都要配一遍时钟树、调一遍串口参数、写一遍系统滴答定时器——这些工作跟你的业务逻辑半毛钱关系都没有。模板就是把这些“体力活”打包好,让你专注在真正创造价值的事情上。
1.2 Keil MDK 安装与破解
Keil MDK 是我们最常用的 STM32 开发 IDE。说实话,它的界面确实有点老气,但胜在稳定、生态好、调试器支持完善。我个人的习惯是,只要不是做 Linux 嵌入式,单片机项目一律用 Keil。
安装步骤
- 下载安装包——去 Keil 官网下载 MDK-ARM 最新版本。注意区分版本号,我建议用 5.38 或更新的版本,对 Cortex-M33 内核支持更好。
- 运行安装程序——一路 Next,安装路径不要有中文和空格。我曾经因为路径里带了个“项目”两个字,编译死活报错,查了半天才发现是路径问题。
- 安装器件包——安装完成后打开 Keil,点击
Pack Installer,找到你的 STM32 型号对应的 Device Family Pack。比如 STM32F103 系列,就装Keil.STM32F1xx_DFP。
小技巧:Pack Installer 下载速度可能很慢。你可以去 Keil 官网手动下载 DFP 包,然后双击安装,比在线等快得多。
破解说明
嗯,这里要讲清楚。Keil MDK 是商业软件,不破解的话代码限制在 32KB 以内,对于 STM32 项目基本不够用。破解工具网上很多,但我要提醒你:
重要提醒:
- 破解工具容易被杀毒软件误报,建议暂时关闭实时防护
- 以管理员身份运行 Keil 和破解工具
- 破解后检查 License 状态,确保显示
LIC=... 有效期到 2032 年 - 公司项目请购买正版授权,个人学习可以酌情处理
我曾经帮一个朋友远程调试,他破解完 Keil 后 License 显示正常,但编译到 40KB 就报错。后来发现是破解工具版本太老,不支持新版的 Keil。所以记住:破解工具要和 Keil 版本匹配。
1.3 STM32CubeMX 安装
STM32CubeMX 是 ST 官方出的图形化配置工具。说白了,它就是帮你生成初始化代码的。你点点鼠标,配置好时钟树、外设参数、引脚映射,它直接给你生成一套完整的 HAL 库工程。
我个人觉得,CubeMX 最大的价值不是“偷懒”,而是“可视化”。你可以在图形界面里看到时钟树的每一级分频、倍频关系,看到引脚冲突的实时提示。这些在纯代码里很难一眼看出来。
安装要点
- Java 环境——CubeMX 基于 Java 运行,需要先安装 JRE 8 或更高版本。我建议装 OpenJDK 11,稳定且免费。
- 下载安装——去 ST 官网下载 CubeMX,安装过程很简单,一路 Next 就行。
- 固件包管理——打开 CubeMX,进入
Help → Manage embedded software packages,下载你需要的 STM32 系列固件包。比如 STM32F1 的 HAL 库。
避坑指南:固件包下载路径不要改,默认在 C:\Users\你的用户名\STM32Cube\Repository。改路径可能导致后续 Keil 工程找不到固件库。
1.4 串口驱动安装
串口是嵌入式开发最常用的调试接口。没有串口,你连 printf 都打不出来,调试基本靠猜。我刚开始做 STM32 时,有一次板子焊好了,串口死活没输出,折腾了两天发现是驱动没装……
常见串口芯片驱动
| 串口芯片型号 | 驱动名称 | 适用场景 |
|---|---|---|
| CH340G | CH340 驱动 | 国产开发板最常见,便宜好用 |
| CP2102 | CP210x 驱动 | Silicon Labs 方案,稳定性好 |
| FT232RL | FTDI 驱动 | 工业级,价格贵,抗干扰强 |
| PL2303 | PL2303 驱动 | 老款芯片,Win10 以上可能不兼容 |
安装步骤
- 确认芯片型号——看你的开发板或 USB 转串口模块上印的芯片型号。最常见的是 CH340G。
- 下载对应驱动——去芯片厂商官网下载。不要用第三方驱动精灵之类的工具,容易装错版本。
- 安装并验证——插上设备,打开设备管理器,看“端口(COM 和 LPT)”下面是否出现对应的 COM 口。如果出现黄色感叹号,说明驱动没装好。
常见问题:
- Win10/Win11 需要禁用驱动程序强制签名才能安装某些旧版驱动
- CH340 在 Win10 下有时会被识别为“未知设备”,手动更新驱动指向 CH340 的 inf 文件即可
- 如果插上后没任何反应,换根 USB 线试试——我遇到过 USB 线只能充电不能传数据的坑
1.5 开发环境验证
所有工具装完后,我们来做个快速验证。确保环境能正常工作,再开始后面的课程。
验证清单
| 验证项 | 操作方法 | 预期结果 |
|---|---|---|
| Keil 编译 | 新建空工程,写一个 main 函数,编译 | 0 Error, 0 Warning |
| CubeMX 生成 | 选一个 STM32 型号,配置串口,生成 Keil 工程 | 生成 .uvprojx 文件,打开后代码完整 |
| 串口通信 | 用串口助手打开对应 COM 口,短接 TX 和 RX | 自发自收正常,数据无乱码 |