第一章:开发环境搭建(上)——Keil MDK安装与破解、STM32CubeMX安装、驱动安装与调试
各位同学,欢迎来到《从零搭建血压计嵌入式开发环境》的第一课。
做嵌入式开发,第一步就是把家伙事儿备齐。我见过太多新手,一上来就急着写代码,结果环境没配好,折腾半天连个灯都点不亮。嗯,咱们别走弯路。今天这一章,我带你把 Keil MDK、STM32CubeMX 和驱动这三样东西,一次性搞定。
1.1 Keil MDK 安装与破解
Keil MDK,说白了就是 ARM 内核芯片的标配 IDE。我最早用 Keil 还是 C51 时代,那时候界面土得掉渣,但胜在稳定。现在 MDK 版本已经到 5.38 了,功能强了不少,但安装流程其实没太大变化。
核心要点:Keil MDK 是编译 STM32 代码的必备工具。没有它,你写的 C 语言只是一堆文本。
1.1.1 下载与安装
去 Keil 官网下载 MDK-Arm 版本。注意,别下成 C51 了,那是给 8051 用的。我个人习惯下载最新稳定版,但如果你用的是老款开发板,比如 STM32F103,那 5.30 左右的版本反而更省心。
安装步骤很简单,一路 Next 就行。但有几个坑,我帮你标出来:
- 安装路径不要有中文——Keil 对中文路径支持很差,我曾经因为把工程放在「桌面」上,编译报了一堆莫名其妙的错。
- 建议默认路径——C:\Keil_v5 就挺好,别瞎改。
- 安装时勾选所有组件——尤其是「Device Family Packs」,后面省得你手动补。
警告:安装过程中如果杀毒软件弹窗,请选择「允许所有操作」。Keil 的破解工具会被误报,但咱们用的都是官方渠道,放心。
1.1.2 破解(License 注册)
Keil 不破解只能用 2KB 代码,连个点灯程序都写不完。破解流程其实很简单:
- 以管理员身份运行 Keil MDK
- 点击 File → License Management
- 复制 CID 码
- 运行注册机(keygen.exe),粘贴 CID,生成 License
- 把 License 粘贴回 Keil,点击 Add LIC
这里有个细节:注册机必须以管理员身份运行。我遇到过好几次,明明 CID 没错,但就是提示无效,最后发现是权限问题。你想想看,Windows 的 UAC 有时候就是会捣乱。
小技巧:破解成功后,License 有效期一般是到 2032 年。如果提示过期,重新生成一次就行,不用重装。
1.2 STM32CubeMX 安装
STM32CubeMX 是 ST 官方出的图形化配置工具。说白了,就是帮你自动生成初始化代码的。以前我们写 STM32 程序,得手动翻参考手册配寄存器,一个 GPIO 就要写十几行。现在用 CubeMX,点几下鼠标,代码就出来了。
我个人觉得,CubeMX 最大的价值不是省时间,而是避免低级错误。时钟树配错了、引脚冲突了,它都会直接报错。我早期做项目时,就因为时钟分频算错,折腾了两天才找到原因。
1.2.1 安装步骤
- 去 ST 官网下载 STM32CubeMX,需要注册账号,免费的
- 安装时需要 Java 运行环境(JRE),它会自动提示你装
- 安装路径同样不要有中文
- 安装完成后,第一次启动会下载一些固件包,耐心等
注意:CubeMX 的固件包下载速度可能很慢。我建议你提前把需要的固件包(比如 STM32F1xx 或 F4xx)下载好,放到 C:\Users\你的用户名\STM32Cube\Repository 目录下。这样就不用现场等了。
1.2.2 与 Keil 的联动
CubeMX 生成的代码可以直接导出为 Keil 工程。在 Project Manager 选项卡里,Toolchain / IDE 选择 MDK-ARM V5,然后点 GENERATE CODE,一个完整的 Keil 工程就出来了。
嗯,这里要注意:每次修改 CubeMX 配置后,重新生成代码会覆盖你手动修改的部分。所以我的习惯是:把用户代码写在 /* USER CODE BEGIN */ 和 /* USER CODE END */ 之间,这样 CubeMX 就不会动它们。
1.3 驱动安装与调试
驱动装不好,开发板连不上电脑,这是新手最容易卡住的地方。我当年第一次用 ST-Link,插上电脑没反应,还以为板子坏了,后来发现是驱动没装。
1.3.1 安装 ST-Link 驱动
STM32 开发板通常自带 ST-Link 调试器。驱动安装分两种情况:
| 操作系统 | 驱动安装方式 |
|---|---|
| Windows 10/11 | 通常自动识别,插上就能用。如果不行,去 ST 官网下载 ST-Link 驱动包 |
| Windows 7 | 需要手动安装,下载驱动后右键「以管理员身份运行」 |
驱动装好后,打开设备管理器,应该能看到「STMicroelectronics STLink dongle」之类的设备。如果显示黄色感叹号,那就是驱动没装对。
避坑指南:我曾经遇到过 ST-Link 驱动被其他软件(比如 VirtualBox)抢占了端口。解决办法是:拔掉开发板,重新插,或者换个 USB 口。如果还不行,重启电脑。
1.3.2 调试连接测试
驱动装好后,打开 Keil,点击魔术棒图标(Options for Target),在 Debug 选项卡里选择 ST-Link Debugger,然后点击 Settings。如果能识别到设备,说明连接成功。
这里有个常见问题:识别不到设备怎么办?
- 检查开发板供电——有些板子需要外部供电,光靠 USB 不够
- 检查接线——SWD 接口的 SWCLK 和 SWDIO 有没有接反
- 检查 Boot 跳线——有些板子默认 Boot 模式不对,会导致芯片不工作
我记得有一次,一个学员折腾了一下午,最后发现是 ST-Link 的排线松了。嗯,硬件问题往往比软件问题更隐蔽。
1.3.3 第一个点灯程序
环境搭好了,咱们跑个点灯程序验证一下。用 CubeMX 新建工程,选好芯片型号,配置一个 GPIO 为输出模式,生成代码。然后在 main 函数里加上:
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
HAL_Delay(500);
编译下载,如果灯开始闪烁,恭喜你,环境搭建成功了!
小提示:第一次下载时,Keil 可能会提示「Flash Download failed」。别慌,去 Utilities 选项卡里点 Settings,把 Reset and Run 勾上,再试一次。
本章小结
这一章我们干了三件事:装了 Keil MDK 并破解、装了 STM32CubeMX、装了 ST-Link 驱动并验证了调试功能。说白了,就是给咱们的血压计项目搭好了地基。
下一章,我会带你搭建工程模板,把时钟、GPIO、串口这些基础模块都配好。到时候咱们就能真正开始写血压计的代码了。
记住:环境搭建别着急,一步一个脚印。有问题随时在群里问我,我看到就会回。
公众号:蓝海资料掘金营,微信deep3321