Keil4 安装实战:手把手带你搭建 STM32 开发环境(零基础也能懂)
你是不是刚接触嵌入式,面对"Keil4 下载安装"一头雾水?
是不是搜了一堆教程,结果不是链接失效,就是步骤跳跃、报错不断?
别急。这篇文章不讲空话, 从零开始、一步一图、全程避坑 ,带你把 Keil4 成功装上电脑,并让它顺利跑通第一个 STM32 程序。
我们不依赖任何破解工具,重点教你如何用合法方式完成配置------哪怕你是第一次打开 Windows 的注册表编辑器,也不用怕。
为什么还在用 Keil4?它和 Keil5 有什么区别?
很多人问:"现在都 2025 年了,为啥还要学 Keil4?"
答案很简单: 教学延续性 + 兼容老项目 + 资源轻量 。
虽然 Keil5 已经普及,但国内大量高校课程、开源例程、培训资料仍基于 Keil4 + STM32 标准外设库(StdPeriph Lib) 构建。特别是经典的"蓝 pill"开发板(STM32F103C8T6),几乎所有的入门教程都是围绕 Keil4 展开的。
更重要的是:
-
Keil4 使用的是 ARMCC v4 编译器 ,启动快、资源占用小;
-
界面简洁,没有复杂的 RTE(Run-Time Environment)配置;
-
对于只做基础功能验证的学生或初学者来说,反而更直观易上手。
所以,掌握 Keil4 的安装与使用,依然是嵌入式学习路上绕不开的一课。
第一步:下载 Keil MDK-ARM v4.74(推荐版本)
⚠️ 注意:Arm 官方已停止对 Keil4 的更新支持,但仍提供历史版本归档。
✅ 正确下载渠道
前往 Arm 官方旧版软件存档页(需注册账号):
👉 https://developer.arm.com/tools-and-software/embedded/legacy-products/mdk-classic
找到 MDK-ARM Version 4.74 (发布于 2015 年),下载文件名为:
mdk474a.exe
大小约为 500MB 左右。
🔍 小贴士:不要随便在百度搜索"Keil4 下载",很多第三方网站捆绑病毒或修改版注册机!务必通过官方渠道获取原始安装包。
第二步:正式安装 ------ 关键细节一个都不能错!
🛠 准备工作清单
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 7/8/10/11(64位建议兼容模式运行) |
| 权限 | 必须以管理员身份运行安装程序 |
| 防护软件 | 临时关闭杀毒软件、Windows Defender |
| 安装路径 | 绝对不能有中文或空格! 推荐 C:\Keil\ |
▶ 安装流程详解
- 右键点击
mdk474a.exe→ "以管理员身份运行" - 弹出安装向导后,连续点 "Next >"
- 在 Installation Folder 页面,手动改为:
C:\Keil\
❌ 错误示例: C:\Program Files (x86)\Keil\ (含空格!会导致后续编译失败)
-
勾选以下组件:
-
☑ MDK-ARM
-
☑ ULINK Pro Debugger(用于高级调试)
-
☑ Examples and Documentation(可选,建议勾上方便查文档)
-
-
继续下一步直到完成安装。
💡 提示:安装过程可能卡顿几秒,请耐心等待,不要强行终止。
第三步:注册与激活 ------ 合法使用才是长久之计
打开 µVision4,进入菜单栏:
File → License Management
你会看到类似这样的界面:
Product: MDK-ARM Lite
License ID: LXXXXXX
说明你现在处于试用状态, 最大只能编译 32KB 的代码 ,刚好够跑个 LED 闪烁,但无法开发复杂项目。
如何获得免费授权?
方案一:申请学术许可证(适合学生/教师)
访问 Keil 官网教育计划页面:
👉 https://www.keil.com/support/docs/3854.htm
填写学校邮箱(edu.cn)、身份证明等信息,提交后通常 1--3 天内会收到正式 License。
方案二:使用评估模式(临时开发可用)
如果你只是想练手,可以直接使用 32KB 限制下的评估版。只要你的工程不超过这个容量,完全可以正常调试烧录。
⚠️ 一旦编译时报错 "Object code size limited to 32 KB",就说明超限了。此时必须激活才能继续。
第四步:添加 STM32 支持包(关键!否则找不到芯片)
默认安装的 Keil4 并不包含所有 STM32 芯片定义。你需要手动安装对应的 Device Family Pack (DFP) 。
下载 STM32F1xx DFP 包(以 F1 系列为例)
访问 Keil 官网器件支持包下载页:
👉 https://www.keil.com/dd2/pack/
搜索并下载:
Keil.STM32F1xx_DFP.1.0.8.pack
双击该文件,会自动导入 µVision4 的设备数据库中。
验证是否安装成功
重启 µVision4,新建项目时尝试选择芯片:
Project → New µVision Project → Select Device
输入 STM32F103C8 ,如果能正确显示型号并选中,说明 DFP 安装成功!
第五步:创建你的第一个工程 ------ 实战检验安装成果
我们来做一个最简单的 LED 闪烁工程,测试整个环境是否通畅。
1. 新建工程
- 文件路径:
D:\STM32_Projects\LED_Blink - 芯片选择:
STMicroelectronics → STM32F103C8
2. 添加必要文件
Keil4 不像 CubeIDE 自动帮你生成代码,你需要手动加入以下两个核心文件:
| 文件名 | 来源 | 功能 |
|---|---|---|
startup_stm32f10x_md.s |
Keil 安装目录 \ARM\RV31\Startup\ |
启动文件(中断向量表、复位入口) |
system_stm32f10x.c |
STM32 标准外设库(StdPeriph Lib) | 系统时钟初始化函数 |
📦 如何获取 StdPeriph Lib?
可以从 ST 官网下载 "STM32F10x_StdPeriph_Lib_V3.5.0.zip" 解压后提取头文件和源码。
将这两个文件复制到工程目录下,并在 µVision 中右键 "Add Files to Group..."
3. 设置头文件路径
进入:
Options for Target → C/C++ → Include Paths
添加以下路径(根据实际存放位置调整):
.\Inc
..\Libraries\CMSIS\Device\ST\STM32F10x\Include
..\Libraries\STM32F10x_StdPeriph_Driver\inc
这样编译器才能找到 stm32f10x.h 等关键头文件。
第六步:写代码!点亮第一颗 LED
假设你的开发板上 LED 接在 PB5 引脚,以下是完整 main.c 示例:
c
#include "stm32f10x.h"
void Delay(uint32_t count) {
for (uint32_t i = 0; i < count; i++) {
for (uint32_t j = 0; j < 1000; j++);
}
}
int main(void) {
// 使能 GPIOB 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置 PB5 为推挽输出
GPIO_InitTypeDef gpio;
gpio.GPIO_Pin = GPIO_Pin_5;
gpio.GPIO_Mode = GPIO_Mode_Out_PP;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio);
while (1) {
GPIO_SetBits(GPIOB, GPIO_Pin_5); // LED亮
Delay(1000);
GPIO_ResetBits(GPIOB, GPIO_Pin_5); // LED灭
Delay(1000);
}
}
编译无误后,点击 "Rebuild" ,应输出:
".\Output\LED_Blink.axf" - 0 Error(s), 0 Warning(s).
恭喜!你的 Keil4 环境已经可以正常编译代码了!
第七步:连接 ST-Link 下载程序(在线调试准备)
硬件连接(4根线搞定)
| ST-Link V2 | STM32 最小系统板 |
|---|---|
| SWCLK | PA14 / SWCLK |
| SWDIO | PA13 / SWDIO |
| GND | GND |
| 3.3V | 3.3V(可选供电) |
⚠️ 注意:有些自制板子需要自己焊接排针,确保接触良好。
软件配置
进入:
Options for Target → Debug → Use → ST-Link Debugger
再切换到 "Flash Download" 选项卡,勾选:
- ☑ Programming
- ☑ Reset and Run
点击 "Settings" → "Flash Algorithms" → Add → 选择适合你芯片的算法(如 STM32F103C8Tx Flash)
保存设置。
第八步:一键下载 & 运行!
按下工具栏上的 "Download" 按钮(向下箭头图标),µVision 会自动完成以下动作:
- 编译最新代码;
- 通过 ST-Link 连接目标板;
- 擦除 Flash;
- 写入
.axf中的机器码; - 复位并开始运行。
如果一切顺利,你会发现开发板上的 LED 开始闪烁!
常见问题急救指南(收藏备用)
| 报错现象 | 可能原因 | 解决方法 |
|---|---|---|
cannot open source input file 'stm32f10x.h' |
头文件路径未添加 | 检查 Include Paths 是否包含 StdPeriph Lib 路径 |
No target connected |
接线错误或电源异常 | 查 VCC/GND 是否接好;尝试重新插拔 USB |
Access denied writing to registry |
权限不足 | 以管理员身份运行 µVision |
编译报错 undefined symbol GPIO_Init |
未添加外设库 .c 文件 | 将 stm32f10x_gpio.c 加入工程并编译 |
| 程序下载成功但不运行 | 缺少 SystemInit() 调用 | 确保启动文件调用了 SystemInit,或手动初始化时钟 |
写在最后:Keil4 是起点,不是终点
你可能会问:"现在大家都用 Keil5、VSCode + PlatformIO,我学 Keil4 会不会落后?"
不会。
正如学钢琴要先练《拜厄》,学编程要先写"Hello World", Keil4 就是你嵌入式旅程的第一块踏板 。
它强迫你理解:
-
启动文件的作用;
-
头文件与库的关系;
-
手动管理工程结构;
-
寄存器级操作逻辑;
这些底层认知,是使用更高阶工具时难以触及的宝贵经验。
当你有一天转向 HAL 库、RTOS 或 RT-Thread,你会感谢当初那个一行一行配路径、调寄存器的自己。
💡 互动时间 :你在安装 Keil4 时遇到过哪些奇葩问题?欢迎在评论区留言,我们一起排雷!
📚 下期预告:《从 Keil4 到 Keil5:平滑迁移指南》------如何优雅升级而不破坏旧工程?