2、开发环境搭建:Keil MDK安装、STM32CubeMX安装、驱动安装与配置、第一个LED工程

2.1 写在前面:工欲善其事,必先利其器

说实话,做嵌入式开发这么多年,我见过太多新手在环境搭建这一步就卡住了。

不是装不上,就是装上了发现版本不对,折腾半天连个灯都点不亮。

我自己刚入行那会儿,也踩过不少坑。有一次装Keil,装完发现破解失败,重装了三次系统才搞定——嗯,那滋味真不好受。

所以这一章,我带你一步步走,把坑提前填上。

2.2 Keil MDK安装

Keil MDK是我们写STM32代码的主力工具。说白了,它就是用来编译、下载、调试代码的IDE。

版本选择建议:

我个人习惯用MDK 5.38或5.39。太老的版本不支持新芯片,太新的版本有时候破解麻烦。

如果你手头有正版License,那直接装最新版就行。如果没有,嗯...你懂的,网上找找和谐版。

安装步骤:

  1. 从官网或网盘下载MDK安装包(约1.2GB)
  2. 双击运行,一路Next。注意安装路径不要有中文
  3. 安装完成后,打开Keil uVision5
  4. 点击 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就够了

安装步骤:

  1. 先插上开发板,看电脑设备管理器里有没有黄色感叹号
  2. 有感叹号的话,右键更新驱动,选择你下载的驱动文件夹
  3. 装好后,设备管理器里应该能看到“STMicroelectronics STLink dongle”之类的设备

⚠️ 我曾经遇到的坑:

有一次我装完ST-Link驱动,设备管理器里显示正常,但Keil就是识别不到。

折腾了半天,发现是驱动版本太新,和Keil不兼容。

后来换了个旧版本驱动,立马就好了。所以驱动不是越新越好,稳定兼容才是王道。

2.5 第一个LED工程

好了,环境都搭好了,我们来点个灯吧。

点灯是嵌入式界的“Hello World”,虽然简单,但能验证整个开发链路是否通畅。

步骤一:用CubeMX生成工程

  1. 打开CubeMX,点击“New Project”
  2. 选择你的芯片型号(比如STM32F103C8T6)
  3. 在Pinout视图中,找到LED连接的GPIO引脚,设置为GPIO_Output
  4. 配置时钟(一般选外部晶振8MHz,内部PLL倍频到72MHz)
  5. 点击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
  }
}

步骤三:编译下载

  1. 点击编译按钮(或者按F7),看有没有报错
  2. 没报错的话,接上ST-Link,点击下载按钮(或者按F8)
  3. 下载成功后,板子上的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