前言:为什么要用官方社区版?
使用官方正版是保证开发环境稳定、无毒且能获得持续更新的最佳途径。
Arm 公司已于 2022年3月 正式为个人开发者和教育用途推出了 免费的 MDK 社区版 (MDK-Community)。
相比老旧的破解版,新版优势明显:
- 零成本:无需破解,官方授权,无版权风险。
- 更高效:新版编译器 (AC6) 编译速度大幅提升(实测老版本编译器需15秒的工程,新版仅需2秒)。
- 更智能:代码提示更全,语法检查更严格,有助于减少 Bug。
缺点也很明显,无法直接编译用标准库写的代码,但本文章有讲怎么配置标准库需要的老编译器环境
第一部分:Keil MDK 软件安装
1. 获取安装包
-
访问官网:打开 Keil MDK 社区版官方下载页:https://www.keil.arm.com/mdk-community/
点击页面下方的下载按钮:
-
填写信息:页面跳转后,需填写基本用户信息。
- Tips:此处信息主要用于统计,非严格验证,填写基本符合格式的内容即可。
提交后即可下载最新的 MDK 安装程序(通常为
MDK5xx.exe)。
2. 执行安装
双击下载好的 MDK5xx.exe 安装程序。
-
欢迎界面:点击 Next。
-
许可协议:勾选 “I agree…” 同意协议,点击 Next。
-
选择路径(关键步骤):
[!WARNING] 重要提示
- 严禁使用中文路径:安装路径中绝对不能包含中文字符或空格,否则会导致编译报错。
- 避免冲突:如果电脑上装有 C51 或旧版 MDK,建议分目录安装。
- 建议保持默认:为了后续配置方便,建议不要修改默认安装路径。
-
用户信息:随便填写任意非空字符即可,点击 Next 开始安装。
-
安装过程:安装期间可能会弹出黑色命令行窗口,这是在配置驱动或环境,请勿关闭,等待其自动结束。
点击 Finish 完成安装。
第二部分:正版激活(社区版)
我们使用 Arm 官方提供的社区版许可证服务器进行激活,无需任何破解工具。
[!IMPORTANT] 权限提示
激活前,建议右键点击 Keil 图标 ->“以管理员身份运行”,避免因权限不足导致激活失败。
-
打开许可证管理:
在 Keil 菜单栏点击 File -> License Management…。 -
选择激活模式:
切换到User-Based License选项卡(最右侧)。
-
输入服务器地址:
点击下方的Activate / Deactivate...按钮,弹出新窗口。
点击新窗口右上角的License Server...,在地址栏输入:1
https://mdk-preview.keil.arm.com
点击
Query查询。 -
激活许可证:
列表中会出现Keil MDK Community...,选中它并点击Activate。
稍等片刻,状态变为 “Activated” 即表示激活成功,拥有一年的免费授权(到期可续)。
第三部分:安装芯片支持包 (Device Family Pack)
Pack 包包含了芯片的启动文件、库文件等。有两种安装方式:
方法一:Pack Installer 在线安装(推荐网速好的用户)
-
点击工具栏的 Pack Installer 图标。
-
点击check for updates图标,更新列表
3.找到并点击对应的单片机型号,点击install,等待更新完成
安装完成,右侧列表(芯片支持包列表)会出现更新的选项“Up to date”
方法二:官网下载离线安装(推荐,更稳定)
如果 Keil 在线下载慢,建议手动下载安装。
- 访问官网:https://www.keil.arm.com/devices/
- 搜索芯片型号(如 STM32F103)。
- 下载对应的 DFP 包(如
Keil.STM32F1xx_DFP)。
- 双击下载好的
.pack文件,它会自动识别路径并安装。
第四部分:解决“旧工程”编译报错问题
1. 为什么会报错?
MDK 5.37 及以上版本默认移除了 AC5 (ARMCC) 编译器,只保留了最新的 AC6。
如果你打开的是基于标准库的老工程,或者代码中使用了旧版 C 语言特性,可能会遇到如下报错:
1 | Target 'xxx' uses ARM-Compiler 'Default Compiler Version 5' which is not available. |
2. 安装 AC5 编译器
我们需要手动下载并挂载 AC5 编译器。
-
下载地址:
-
安装路径设置(关键):
根据官方文档内容,AC5 必须安装在 Keil 根目录下的ARM文件夹内,否则可能无法识别授权。操作步骤:
- 找到 Keil 安装位置(可通过任务管理器右键 Keil 进程 -> 打开文件所在位置)。
例如默认路径为:C:\Users\用户名\AppData\Local\Keil_v5\ - 双击 AC5 安装包,将安装路径修改为:
...\Keil_v5\ARM\ARM_Compiler_5.06u7\ - 完成安装。
- 找到 Keil 安装位置(可通过任务管理器右键 Keil 进程 -> 打开文件所在位置)。
-
在 Keil 中添加编译器:
- 打开 Keil,点击 Project -> Manage -> Project Items。
- 切换到 Folders/Extensions 选项卡。
- 点击右侧的
...按钮,选择 Add another ARM Compiler Version to List。 - 定位到刚才安装的 AC5 文件夹。
此时,Project 选项中应该可以选择 “Use default compiler version 5” 了
3. 解决 “cannot open source input file arm_acle.h” 报错
如果使用了 AC5 编译器但依然报错找不到 arm_acle.h,通常是因为 CMSIS 组件版本过高(v6.x)与旧编译器不兼容。
解决方法:
- 点击工具栏的 Select Software Packs 图标(绿色菱形)。
- 取消勾选
Use latest dependencies。 - 在 CMSIS 选项中,手动选择 5.x 版本(如 5.9.0)。
- 点击 OK 保存。
如果没有版本为5的选项,在以下链接里下载cmsis的旧版,下载好双击安装就行
https://www.keil.arm.com/packs/cmsis-arm/versions/
第五部分:进阶配置(提升开发体验)
0.忽略文件末尾未换行警告
程序编译后,可能会警告
1 | MYCODE\main.c(7): warning: #1-D: last line of file ends without a newline |
意思是 main.c 文件最后一行没有换行,不会影响程序运行,但每次都要警告或者自己手动换行很难受
可以用以下步骤忽略警告,在 编译器选项里添加抑制警告的设置:
-
打开 Project → Options for Target → C/C++。
-
找到 Misc Controls(杂项控制)输入框。
-
添加:
1
--diag_suppress=1
这里的
1就是警告号#1-D。
1. 一键代码格式化 (Clang-format)
Keil 原生编辑器格式化功能较弱,我们可以通过外部工具 clang-format 实现 Google/LLVM 风格的一键美化。
配置步骤:
-
准备工具:Keil MDK V6 版本通常在
ARM/ARMCLANG/bin目录下自带clang-format.exe。如果是老版本,需自行下载。 -
添加菜单:点击 Tools -> Customize Tools Menu…。
-
新建条目:
-
Menu Text:
Clang Format(自定义名称) -
Command: 选择
clang-format.exe的路径。 -
Arguments:
1
-verbose -sort-includes -style=Google -i !E
(参数说明:
-i表示直接修改文件,!E代表当前打开的文件)
-
-
设置快捷键:
进入 Edit -> Configuration -> Shortcut Keys,找到Tools: Clang Format,绑定你习惯的快捷键(如Alt+F)。
[!TIP]
使用前请先保存文件 (Ctrl+S),再按下快捷键,不然直接格式化会丢失没有保存的代码
2. 开启自动保存
防止软件崩溃导致代码丢失,建议开启自动保存。
进入 Edit -> Configuration -> File & Project Handling,勾选以下选项:
结语
至此,一个干净、稳定且功能强大的 STM32 开发环境就搭建完成了。
- MDK Community 解决了授权问题;
- AC5 兼容了老旧代码;
- Clang-format 拯救了代码强迫症。
祝大家开发愉快!如有问题欢迎在评论区留言。






















