2、开发环境搭建:Keil MDK安装、STM32CubeMX安装、驱动安装与配置、第一个LED工程
2.1 写在前面:工欲善其事,必先利其器
说实话,做嵌入式开发这么多年,我见过太多新手在环境搭建这一步就卡住了。
不是装不上,就是装上了发现版本不对,折腾半天连个灯都点不亮。
我自己刚入行那会儿,也踩过不少坑。有一次装Keil,装完发现破解失败,重装了三次系统才搞定——嗯,那滋味真不好受。
所以这一章,我带你一步步走,把坑提前填上。
2.2 Keil MDK安装
Keil MDK是我们写STM32代码的主力工具。说白了,它就是用来编译、下载、调试代码的IDE。
版本选择建议:
我个人习惯用MDK 5.38或5.39。太老的版本不支持新芯片,太新的版本有时候破解麻烦。
如果你手头有正版License,那直接装最新版就行。如果没有,嗯...你懂的,网上找找和谐版。
安装步骤:
- 从官网或网盘下载MDK安装包(约1.2GB)
- 双击运行,一路Next。注意安装路径不要有中文
- 安装完成后,打开Keil uVision5
- 点击 File → License Management,输入破解码
⚠️ 我曾经踩过的坑:
安装路径千万别放C盘默认路径以外的中文文件夹!
有一次我图省事,直接装在了“D:\软件\Keil”,结果编译一直报错找不到头文件。
查了半天,原来是“软件”两个字是中文,编译器不认。后来改成“D:\Keil_v5”就没事了。
2.3 STM32CubeMX安装
STM32CubeMX是ST官方出的图形化配置工具。你想想看,以前配置时钟、GPIO、外设,全得手写寄存器,那叫一个痛苦。
现在有了CubeMX,点几下鼠标就能生成初始化代码,省事多了。
安装要点:
- 需要先安装Java运行环境(JRE 8以上)
- CubeMX版本建议用6.10或6.11,比较稳定
- 安装时同样注意路径不要有中文
💡 我的小技巧:
CubeMX安装完后,记得去Help → Manage embedded software packages里下载你需要的芯片包。
比如我们做美容仪常用的STM32F103系列,下载对应的F1包就行。
下载速度慢的话,可以挂个代理,或者去ST官网手动下载后导入。
2.4 驱动安装与配置
驱动装不好,板子连不上电脑,代码写得再好也白搭。
我们需要装哪些驱动?
| 驱动名称 | 用途 | 备注 |
|---|---|---|
| ST-Link驱动 | 调试器驱动,用于下载和调试 | Keil安装时可选装,建议单独装最新版 |
| CH340/CP2102驱动 | USB转串口驱动 | 看你开发板用的是哪种芯片 |
| J-Link驱动(可选) | 如果使用J-Link调试器 | 一般用ST-Link就够了 |
安装步骤:
- 先插上开发板,看电脑设备管理器里有没有黄色感叹号
- 有感叹号的话,右键更新驱动,选择你下载的驱动文件夹
- 装好后,设备管理器里应该能看到“STMicroelectronics STLink dongle”之类的设备
⚠️ 我曾经遇到的坑:
有一次我装完ST-Link驱动,设备管理器里显示正常,但Keil就是识别不到。
折腾了半天,发现是驱动版本太新,和Keil不兼容。
后来换了个旧版本驱动,立马就好了。所以驱动不是越新越好,稳定兼容才是王道。
2.5 第一个LED工程
好了,环境都搭好了,我们来点个灯吧。
点灯是嵌入式界的“Hello World”,虽然简单,但能验证整个开发链路是否通畅。
步骤一:用CubeMX生成工程
- 打开CubeMX,点击“New Project”
- 选择你的芯片型号(比如STM32F103C8T6)
- 在Pinout视图中,找到LED连接的GPIO引脚,设置为GPIO_Output
- 配置时钟(一般选外部晶振8MHz,内部PLL倍频到72MHz)
- 点击Project → Generate Code,选择MDK-ARM V5,生成工程
步骤二:在Keil中编写代码
生成后,用Keil打开工程。在main.c的while循环里,加上点灯代码:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); // 亮
HAL_Delay(500); // 延时500ms
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); // 灭
HAL_Delay(500); // 延时500ms
}
}
步骤三:编译下载
- 点击编译按钮(或者按F7),看有没有报错
- 没报错的话,接上ST-Link,点击下载按钮(或者按F8)
- 下载成功后,板子上的LED应该开始闪烁了
💡 如果灯不亮怎么办?
别慌,先检查这几样:
- 开发板供电了吗?(USB线插好了吗?)
- ST-Link连接正确吗?(SWD的四个引脚:VCC、GND、SWDIO、SWCLK)
- Keil里的Debug设置选对了吗?(选ST-Link Debugger)
- LED引脚配置对了吗?(看原理图,确认是哪个GPIO)
我当年第一次点灯,折腾了半小时才发现是ST-Link的线松了...嗯,这种低级错误谁都犯过。
2.6 本章小结
这一章我们干了三件事:装Keil、装CubeMX、装驱动,最后成功点了个灯。
你想想看,从零开始,到现在能让板子上的灯按你的指令闪烁,这本身就是个不小的进步。
下一章,我们会正式开始讲STM32的GPIO原理,以及怎么用寄存器操作来控制更多外设。
到时候你会发现,点灯只是开始,后面还有更多好玩的东西等着你。
📌 课后作业:
试着修改延时时间,让LED以不同的频率闪烁。
比如:亮100ms,灭900ms,看看效果有什么不同。
再试试用两个LED,实现交替闪烁的效果。
公众号:蓝海资料掘金营,微信deep3321