2. 开发环境搭建:Keil MDK 安装与破解、STM32CubeMX 配置、串口驱动与调试器连接
说实话,很多初学者一上来就急着写代码,结果卡在环境搭建上大半天。我见过不少同事,工具链没配好就开干,最后发现是编译器版本不对、调试器连不上,白白浪费一整天。这一章,咱们就把这些坑提前填上。
2.1 工具链全景:你需要哪些软件?
在动手之前,先搞清楚我们要装哪些东西。别急着下载,先看这张图,心里有个谱。
简单说,你需要三样东西:Keil MDK(写代码、编译、下载)、STM32CubeMX(图形化配置外设)、调试器驱动(让电脑和开发板说话)。缺一个,你的板子就点不亮。
2.2 Keil MDK 安装与破解
2.2.1 下载与安装
去 Keil 官网下载 MDK-ARM 最新版。注意,别下成 C51 版本,那是给 8051 用的。我见过有人装错了,折腾半天找不到 STM32 芯片选项。
安装步骤很简单,一路 Next 就行。但有几点要注意:
- 安装路径不要有中文。我习惯用
C:\Keil_v5,清爽好找。 - 安装时勾选所有器件支持包。如果漏了,后面还得手动补。
- 安装完成后重启电脑。环境变量才能生效。
💡 我的习惯:装完 Keil 后,第一时间打开软件,点 Pack Installer,把 STM32F1/F4/F7 的器件包全装上。省得后面编译时报错说找不到芯片。
2.2.2 破解(注册)
Keil MDK 不破解的话,代码大小限制在 32KB 以内。做个小实验还行,真干活肯定不够。
破解工具网上很多,但要注意:
- 以管理员身份运行 Keil,然后点
File → License Management。 - 复制 CID 码,粘贴到破解工具里。
- 选择 ARM 编译器(别选错成 C51)。
- 生成 License,粘贴回 Keil,点
Add LIC。
⚠️ 重要提醒:我曾经因为杀毒软件把破解工具当病毒删了,折腾了半小时。建议暂时关闭实时防护,或者把破解工具加入白名单。另外,破解仅供个人学习,商业项目请购买正版。
破解成功后,License Management 窗口会显示有效期到 2032 年。嗯,够你用到退休了。
2.3 STM32CubeMX 配置
STM32CubeMX 是 ST 官方的图形化配置工具。说白了,就是帮你自动生成初始化代码,省得你对着寄存器手册一行行敲。
2.3.1 安装 CubeMX
去 ST 官网下载 STM32CubeMX,需要注册账号。安装过程同样简单,但要注意:
- 需要 Java 运行环境。如果电脑没装 Java,CubeMX 会报错。装个 JDK 8 或 11 就行。
- 安装路径同样不要有中文。
- 首次启动会下载固件包。选你用的芯片系列,比如 STM32F103C8,下载对应的 HAL 库。
2.3.2 创建一个新工程
打开 CubeMX,点 New Project,在 Part Number 里搜索你的芯片。我以最常见的 STM32F103C8T6 为例。
选中芯片后,进入配置界面。这里你会看到芯片的引脚图,所有外设一目了然。咱们先配一个最简单的:串口。
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 点击 USART1,模式选 Asynchronous |
异步串口,最常用 |
| 2 | 在 Configuration 里设置波特率 115200 |
数据位 8,停止位 1,无校验 |
| 3 | 点击 GPIO Settings,确认 TX/RX 引脚 |
PA9 (TX), PA10 (RX) |
| 4 | 点击 Project Manager,设置工程名和路径 |
IDE 选 MDK-ARM V5 |
| 5 | 点击 GENERATE CODE |
生成初始化代码 |
🔑 关键点:CubeMX 生成的代码基于 HAL 库。你不需要自己写 GPIO、时钟、串口的初始化函数。它全帮你搞定了。你只需要在 main.c 里写业务逻辑。
2.4 串口驱动与调试器连接
2.4.1 安装串口驱动
市面上大多数 STM32 开发板用的是 CH340 或 CP2102 芯片做 USB 转串口。你需要安装对应的驱动。
怎么判断?看板子上的 USB 口旁边的小芯片。如果是 CH340G,去网上搜 CH340 驱动。如果是 CP2102,搜 CP210x 驱动。
装好后,插上 USB 线,打开设备管理器,在 端口 (COM 和 LPT) 下应该能看到 USB Serial Port (COMx)。记下这个 COM 号,后面要用。
⚠️ 避坑指南:我曾经遇到一个情况,驱动装好了,设备管理器里也看到了,但串口工具就是打不开。后来发现是 USB 线的问题——有些线只能充电,不能传数据。换一根带数据功能的线就好了。
2.4.2 调试器连接
调试器是连接电脑和开发板的桥梁。最常用的是 ST-Link(ST 官方)和 J-Link(SEGGER)。
连接方式很简单:
- SWD 接口:只需要 4 根线——SWDIO、SWCLK、GND、3.3V。
- JTAG 接口:需要 5 根线,现在用得少了。
我个人习惯用 SWD,省引脚,够用。接线如下:
| 调试器引脚 | 开发板引脚 | 说明 |
|---|---|---|
| SWDIO | PA13 (SWDIO) | 数据线 |
| SWCLK | PA14 (SWCLK) | 时钟线 |
| GND | GND | 共地 |
| 3.3V | 3.3V | 供电(可选) |
2.4.3 在 Keil 里配置调试器
打开 Keil,点 Project → Options for Target,切换到 Debug 选项卡:
- 选择
ST-Link Debugger或J-Link / J-Trace。 - 点
Settings,确认SWD模式,Max Clock选 4MHz(别太高,容易不稳定)。 - 点
Flash Download,勾选Reset and Run。这样下载完程序后,芯片会自动复位运行。
💡 我的经验:如果 Keil 提示 No ST-Link detected,先检查驱动。ST-Link 的驱动通常和 Keil 一起装了。如果还不行,试试换一个 USB 口,或者重启一下开发板。我遇到过好几次,其实就是接触不良。
2.5 验证:点亮你的第一个 LED
环境搭好了,咱们跑个最简单的程序验证一下。用 CubeMX 配一个 GPIO 输出,控制板子上的 LED。
在 CubeMX 里:
- 选一个 GPIO 引脚(比如 PC13,很多板子上的 LED 接这个脚),模式设为
Output Push Pull。 - 生成代码,在
main.c的while(1)里加一句:
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
HAL_Delay(500); // 延时 500ms
编译、下载。如果 LED 以 1 秒的频率闪烁,恭喜你,环境搭建成功了!
✅ 到这里,你已经完成了:
- Keil MDK 的安装与破解
- STM32CubeMX 的配置与代码生成
- 串口驱动的安装
- 调试器的连接与配置
接下来,就可以正式开始写代码了。