从零开始搭建嵌入式开发环境:Keil5 安装实战全记录
你是不是也曾在搜索“keil5安装”时,被五花八门的教程搞得一头雾水?
官网下载按钮藏得像迷宫,注册流程莫名其妙收不到邮件,好不容易装上了却提示“Demo Mode”,连不上ST-Link、编译报错头文件找不到……
别急,这些坑我都踩过。作为一名带过上百名学生的嵌入式讲师,我深知新手在搭建开发环境时最怕什么——不是技术多难,而是第一步就卡住,还没开始写代码,热情就被耗光了。
今天这篇教程,不讲空话,只讲真正能让你把Keil5跑起来的实操细节。无论你是高校学生、电子爱好者,还是刚转行做嵌入式的工程师,只要你按步骤来,一定能顺利完成Keil5的安装与配置。
为什么是 Keil5?它凭什么成为入门首选?
在ARM生态中,开发工具不少:IAR、GCC+Eclipse、STM32CubeIDE、VS Code + PlatformIO……但为什么很多人学STM32都从Keil5开始?
因为它“够傻瓜,也够专业”。
- 界面直观:点几下就能建工程、选芯片、烧程序。
- 生态完整:ST、NXP等大厂都为Keil提供官方支持包(DFP)。
- 调试强大:看寄存器、变量跟踪、内存dump,甚至RTOS感知调试都不在话下。
- 学习资源多:中文社区里90%的STM32例程都是基于Keil写的。
更重要的是,它的免费版允许生成最大32KB的可执行代码——这意味着你做LED闪烁、串口通信、传感器读取这类基础项目完全够用。
✅ 所以说,Keil5不是最先进的工具,但它是最适合新手快速上手的那个。
开始之前:先搞清楚你要装的是什么
很多人以为“Keil5”就是一个IDE,其实不然。它是一整套工具链的组合体,主要包括:
| 组件 | 作用 |
|---|---|
| uVision5 | 图形化编辑和项目管理界面 |
| Arm Compiler 5/6 | 编译C/C++代码的核心引擎 |
| Device Family Pack (DFP) | 芯片厂商提供的启动文件、外设库、烧录算法 |
| Debug Driver | 支持J-Link、ST-Link等调试器的驱动模块 |
所以你看到的.uvprojx工程文件、编译出的.axf或.hex文件、通过SWD接口下载到MCU的过程,背后全是这套系统在协同工作。
而我们安装的目标,就是让这四个部分都能正常运行,并且能顺利连接你的开发板。
第一步:去哪下?怎么下?别再用盗版了!
打开浏览器,输入这个地址:
👉 https://www.keil.arm.com
点击顶部菜单中的Products → MDK → Download MDK
接下来会跳转到一个表单页面,要求填写:
- 姓名
- 邮箱(建议使用常用邮箱)
- 公司/学校名称
- 国家/地区
填完提交后,Arm官方会发送一封包含下载链接的邮件到你的邮箱。
⚠️ 注意事项:
- 请务必使用真实信息,否则可能收不到邮件。
- 不要尝试找所谓的“百度网盘资源包”,那些往往捆绑病毒或修改版注册机。
- 下载的是一个名为mdk5xx.exe的自解压程序(如 mdk539.exe),大小约800MB~1GB。
📌小技巧:将安装包保存到纯英文路径下,比如C:\Keil_v5\Install\,避免中文或空格导致后续异常。
第二步:安装过程详解——每一步都不能错
双击运行mdk5xx.exe,进入安装向导。
1. 接受协议
勾选“I agree to the terms…”,点击 Next。
2. 选择安装路径
推荐设置为:
C:\Keil_v5不要改到 D:\Program Files (x86)\XXX 这种带空格或括号的路径,容易引发权限问题。
3. 选择组件(关键!)
默认是全选状态,建议保留以下三项:
- ✅MDK-Core(必须)
- ✅CMSIS(必须,Cortex内核标准接口)
- ✅STMicroelectronics STM32xxx_DFP(如果你要用STM32)
其他厂商的DFP可以后期再装,这里先选ST的能省不少事。
💡 提示:即使你现在用的是GD32或者华大半导体,初期也可以借助STM32的库结构练手,原理相通。
点击 Next,开始安装,等待5~10分钟即可完成。
第三步:授权许可(License)配置——告别“Demo Mode”
安装完成后首次启动uVision5,会弹出License管理窗口。
此时如果没配置好,你会看到:
Product: MDK-Lite Edition Limited to 32KB code size Mode: Demo这不是永久限制,而是因为你还没绑定合法授权。
如何获取免费正式License?
- 打开软件,菜单栏 →File → License Management
- 复制右侧的Product ID (PID)字段内容
- 访问 Arm 官方授权申请页:
👉 https://developer.arm.com/tools-and-software/embedded/keil-mdk/get-a-license - 登录你的 Arm Developer 账户(没有就注册一个,免费)
- 在 “Manage Products” 页面找到对应的 PID,点击生成 License Key
- 回到Keil5的License窗口,粘贴Key并点击 “Add LIC”
✅ 成功标志:
- 显示 “Licensed to: [你的名字]”
- 版本变为 “MDK Professional” 或 “MDK Plus”
- 有效期通常为1年,到期前可再次续期
🛑 切记不要使用网上流传的“注册机”!轻则激活失败,重则触发反病毒机制,导致编译器功能受限甚至系统中毒。
第四步:安装设备支持包(DFP)——让你的芯片被识别
Keil5安装完并不意味着万事大吉。如果你想开发STM32F103C8T6、STM32F407等具体型号,还需要安装对应的设备支持包(Device Family Pack, DFP)。
操作方法很简单:
- 打开 uVision5
- 点击工具栏上的云朵图标(Pack Installer)
- 左侧搜索框输入芯片关键词,例如 “STM32F1”
- 找到Keil.STM32F1xx_DFP包,点击 Install
- 等待自动下载并安装完成
🔧 安装成功后,在新建工程时就可以选择具体的MCU型号了。
🔁 建议定期打开Pack Installer检查更新,新版DFP常修复旧版库函数的bug,提升稳定性。
第五步:连接调试器(以ST-Link为例)——打通最后一公里
现在软件装好了,License也有了,DFP也装了,下一步就是把程序下载到开发板上。
假设你手里有一块STM32最小系统板和一个ST-Link仿真器。
接线方式(SWD模式):
| ST-Link | 开发板 |
|---|---|
| SWCLK | SWCLK |
| SWDIO | SWDIO |
| GND | GND |
| 3.3V | 3.3V(可选供电) |
接好后插上电脑USB口。
Keil5中配置调试参数:
- 打开任意工程 → Project → Options for Target
- 切换到Debug选项卡
- 在右下拉菜单中选择:ST-Link Debugger
- 点击Settings
- 进入Flash Download选项卡
- 勾选编程算法,例如:“STM32F10x Medium Density”
- 确保勾上了 “Download to Flash”
点击 OK 保存设置。
如果出现“No target connected”怎么办?
别慌,常见原因如下:
| 可能原因 | 解决办法 |
|---|---|
| 接触不良 | 重新拔插SWD线,确保GND共地 |
| 目标板未上电 | 检查开发板是否通电 |
| 驱动未安装 | 下载 STSW-LINK007 驱动包手动安装 |
| 时钟太快 | 在 Settings → Clock 中降低至 1MHz 尝试连接 |
✅ 正常连接后,会在Settings窗口看到芯片型号和Core ID,说明通信成功。
实战演练:用Keil5点亮第一个LED
让我们来走一遍完整的开发流程,验证环境是否真的可用。
目标:控制STM32F103C8T6的PA5引脚,驱动LED闪烁。
步骤一:创建新工程
- Project → New μVision Project
- 保存路径设为英文目录,如
C:\Projects\Blink_LED - 选择芯片型号:STMicroelectronics → STM32F103C8
步骤二:添加必要文件
- 启动文件(startup_stm32f103xb.s)——Keil会自动添加
- 系统初始化文件(system_stm32f10x.c)——可在模板中找到或手动添加
步骤三:编写主函数
#include "stm32f10x.h" // 简单延时函数 void Delay(uint32_t count) { while (count--) { __NOP(); // 空指令,防止被编译器优化掉 } } int main(void) { // 使能GPIOA时钟 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // 配置PA5为推挽输出,最大速度2MHz GPIOA->CRL &= ~(GPIO_CRL_MODE5 | GPIO_CRL_CNF5); GPIOA->CRL |= GPIO_CRL_MODE5_1; // 10: 输出模式,2MHz while (1) { GPIOA->BSRR = GPIO_BSRR_BR5; // PA5输出低电平(LED亮) Delay(0xFFFFF); GPIOA->BSRR = GPIO_BSRR_BS5; // PA5输出高电平(LED灭) Delay(0xFFFFF); } }步骤四:配置工程选项
- Output→ 勾选 Create HEX File(方便后期烧录)
- Debug→ 使用 ST-Link Debugger
- Utilities→ Update Target before Debugging ✔️
步骤五:编译 & 下载
点击Build(快捷键 F7),无错误后点击Load(加载按钮),程序就会被写入芯片。
🎯 结果:板载LED开始闪烁,频率由Delay决定。
恭喜!你已经完成了从零搭建Keil5环境到硬件验证的全过程。
新手必知的五个避坑指南
我在教学过程中总结了初学者最容易栽跟头的几个点,提前知道能少走很多弯路:
❌ 坑点1:安装路径含中文或空格
→ 导致某些组件无法注册,编译时报路径错误。
✅秘籍:一律使用C:\Keil_v5这类简洁路径。
❌ 坑点2:杀毒软件误删关键文件
→ 安装后发现缺少.dll文件或编译器无法调用。
✅秘籍:安装前临时关闭360、腾讯电脑管家等软件。
❌ 坑点3:头文件找不到(cannot open source file)
→ 编译时报错#include "stm32f10x.h"找不到。
✅秘籍:在 Options → C/C++ → Include Paths 中添加头文件所在目录。
❌ 坑点4:频繁更换电脑触发激活限制
→ Arm账户每年有有限次激活额度(约5次)。
✅秘籍:一台电脑搞定所有开发;换机前记得在Arm后台释放授权。
❌ 坑点5:忽略Pack更新
→ 使用老旧DFP导致HAL库有Bug或不支持新芯片。
✅秘籍:每月打开一次Pack Installer检查更新。
工程组织建议:让项目更清晰易维护
随着项目变大,杂乱的文件结构会让你自己都找不到源码。建议从一开始就规范目录结构:
MyProject/ ├── Src/ // C源文件 │ ├── main.c │ └── system_stm32f10x.c ├── Inc/ // 头文件 │ └── stm32f10x.h ├── Lib/ // 库文件(如HAL、LL) ├── Startup/ // 启动文件 └── Project/ // Keil工程文件 ├── Blink_LED.uvprojx └── Blink_LED.uvoptx在uVision中使用Groups功能对文件分类管理,不仅看着舒服,协作时也更容易交接。
写在最后:Keil5只是起点,不是终点
掌握Keil5的安装与使用,是你踏入嵌入式世界的第一道门槛。它教会你如何构建工程、理解启动流程、操作寄存器、烧录调试——这些能力不会因为将来你转向VS Code或CubeIDE而失效。
相反,正是有了Keil这段经历,当你面对更复杂的RTOS移植、低功耗设计、Bootloader开发时,才能更快地上手。
所以,别再犹豫了。
现在就去官网下载Keil5,一步一步跟着本文操作,亲手点亮那颗属于你的LED灯。
当你第一次看到那个小小的灯按照你的代码节奏闪动时,你会明白——
这才是硬件编程的魅力所在。
如果你在安装过程中遇到任何问题,欢迎在评论区留言交流。我们一起解决,一个都不落下。