前言:为什么要用官方社区版?

使用官方正版是保证开发环境稳定、无毒且能获得持续更新的最佳途径。

Arm 公司已于 2022年3月 正式为个人开发者和教育用途推出了 免费的 MDK 社区版 (MDK-Community)

相比老旧的破解版,新版优势明显:

  • 零成本:无需破解,官方授权,无版权风险。
  • 更高效:新版编译器 (AC6) 编译速度大幅提升(实测老版本编译器需15秒的工程,新版仅需2秒)。
  • 更智能:代码提示更全,语法检查更严格,有助于减少 Bug。

缺点也很明显,无法直接编译用标准库写的代码,但本文章有讲怎么配置标准库需要的老编译器环境


第一部分:Keil MDK 软件安装

1. 获取安装包

  1. 访问官网:打开 Keil MDK 社区版官方下载页:https://www.keil.arm.com/mdk-community/

    点击页面下方的下载按钮:

    Keil MDK社区版下载按钮

  2. 填写信息:页面跳转后,需填写基本用户信息。

    • Tips:此处信息主要用于统计,非严格验证,填写基本符合格式的内容即可。

    提交后即可下载最新的 MDK 安装程序(通常为 MDK5xx.exe)。

    Keil MDK社区版信息填写页面

2. 执行安装

双击下载好的 MDK5xx.exe 安装程序。

  1. 欢迎界面:点击 Next
    Keil安装程序初始界面

  2. 许可协议:勾选 “I agree…” 同意协议,点击 Next
    Keil安装程序许可协议界面

  3. 选择路径(关键步骤)
    Keil安装程序选择安装路径界面

    [!WARNING] 重要提示

    1. 严禁使用中文路径:安装路径中绝对不能包含中文字符或空格,否则会导致编译报错。
    2. 避免冲突:如果电脑上装有 C51 或旧版 MDK,建议分目录安装。
    3. 建议保持默认:为了后续配置方便,建议不要修改默认安装路径。
  4. 用户信息:随便填写任意非空字符即可,点击 Next 开始安装。
    Keil安装程序用户信息填写界面

  5. 安装过程:安装期间可能会弹出黑色命令行窗口,这是在配置驱动或环境,请勿关闭,等待其自动结束。

    Keil安装完成界面

    点击 Finish 完成安装。


第二部分:正版激活(社区版)

我们使用 Arm 官方提供的社区版许可证服务器进行激活,无需任何破解工具。

[!IMPORTANT] 权限提示
激活前,建议右键点击 Keil 图标 ->“以管理员身份运行”,避免因权限不足导致激活失败。

  1. 打开许可证管理
    在 Keil 菜单栏点击 File -> License Management…

  2. 选择激活模式
    切换到 User-Based License 选项卡(最右侧)。
    Keil许可证管理界面

  3. 输入服务器地址
    点击下方的 Activate / Deactivate... 按钮,弹出新窗口。
    点击新窗口右上角的 License Server...,在地址栏输入:

    1
    https://mdk-preview.keil.arm.com

    点击 Query 查询。

  4. 激活许可证
    列表中会出现 Keil MDK Community...,选中它并点击 Activate
    Keil社区版许可证激活界面

    稍等片刻,状态变为 “Activated” 即表示激活成功,拥有一年的免费授权(到期可续)。
    Keil社区版许可证已激活界面


第三部分:安装芯片支持包 (Device Family Pack)

Pack 包包含了芯片的启动文件、库文件等。有两种安装方式:

方法一:Pack Installer 在线安装(推荐网速好的用户)

  1. 点击工具栏的 Pack Installer 图标。
    Keil Pack Installer图标

  2. 点击check for updates图标,更新列表

    在这里插入图片描述

    3.找到并点击对应的单片机型号,点击install,等待更新完成

    image-20230919222701697

    安装完成,右侧列表(芯片支持包列表)会出现更新的选项“Up to date”

    image-20230919223014547

方法二:官网下载离线安装(推荐,更稳定)

如果 Keil 在线下载慢,建议手动下载安装。

  1. 访问官网:https://www.keil.arm.com/devices/
  2. 搜索芯片型号(如 STM32F103)。
  3. 下载对应的 DFP 包(如 Keil.STM32F1xx_DFP)。
    Keil官网芯片支持包详情
  4. 双击下载好的 .pack 文件,它会自动识别路径并安装。
    Keil芯片支持包安装完成

第四部分:解决“旧工程”编译报错问题

1. 为什么会报错?

MDK 5.37 及以上版本默认移除了 AC5 (ARMCC) 编译器,只保留了最新的 AC6。
如果你打开的是基于标准库的老工程,或者代码中使用了旧版 C 语言特性,可能会遇到如下报错:

1
Target 'xxx' uses ARM-Compiler 'Default Compiler Version 5' which is not available.

Keil编译器错误提示

2. 安装 AC5 编译器

我们需要手动下载并挂载 AC5 编译器。

  • 下载地址

  • 安装路径设置(关键)
    根据官方文档内容,AC5 必须安装在 Keil 根目录下的 ARM 文件夹内,否则可能无法识别授权。

    操作步骤

    1. 找到 Keil 安装位置(可通过任务管理器右键 Keil 进程 -> 打开文件所在位置)。
      例如默认路径为:C:\Users\用户名\AppData\Local\Keil_v5\
    2. 双击 AC5 安装包,将安装路径修改为:
      ...\Keil_v5\ARM\ARM_Compiler_5.06u7\
    3. 完成安装。
  • 在 Keil 中添加编译器

    1. 打开 Keil,点击 Project -> Manage -> Project Items
    2. 切换到 Folders/Extensions 选项卡。
    3. 点击右侧的 ... 按钮,选择 Add another ARM Compiler Version to List
    4. 定位到刚才安装的 AC5 文件夹。

    Snipaste_2025-09-10_07-46-37

    此时,Project 选项中应该可以选择 “Use default compiler version 5” 了

    image-20251119204028260

3. 解决 “cannot open source input file arm_acle.h” 报错

如果使用了 AC5 编译器但依然报错找不到 arm_acle.h,通常是因为 CMSIS 组件版本过高(v6.x)与旧编译器不兼容。

解决方法

  1. 点击工具栏的 Select Software Packs 图标(绿色菱形)。
  2. 取消勾选 Use latest dependencies
  3. 在 CMSIS 选项中,手动选择 5.x 版本(如 5.9.0)。
    image-20251119195520197
  4. 点击 OK 保存。

如果没有版本为5的选项,在以下链接里下载cmsis的旧版,下载好双击安装就行

https://www.keil.arm.com/packs/cmsis-arm/versions/

image-20251119195821395


第五部分:进阶配置(提升开发体验)

0.忽略文件末尾未换行警告

程序编译后,可能会警告

1
MYCODE\main.c(7): warning:  #1-D: last line of file ends without a newline

意思是 main.c 文件最后一行没有换行,不会影响程序运行,但每次都要警告或者自己手动换行很难受

可以用以下步骤忽略警告,在 编译器选项里添加抑制警告的设置:

  1. 打开 Project → Options for Target → C/C++

  2. 找到 Misc Controls(杂项控制)输入框。

  3. 添加:

    1
    --diag_suppress=1

    这里的 1 就是警告号 #1-D

1. 一键代码格式化 (Clang-format)

Keil 原生编辑器格式化功能较弱,我们可以通过外部工具 clang-format 实现 Google/LLVM 风格的一键美化。

配置步骤

  1. 准备工具:Keil MDK V6 版本通常在 ARM/ARMCLANG/bin 目录下自带 clang-format.exe。如果是老版本,需自行下载。

  2. 添加菜单:点击 Tools -> Customize Tools Menu…

  3. 新建条目

    • Menu Text: Clang Format (自定义名称)

    • Command: 选择 clang-format.exe 的路径。

    • Arguments:

      1
      -verbose -sort-includes -style=Google -i !E

      (参数说明:-i 表示直接修改文件,!E 代表当前打开的文件)

    image-20251119200624752

  4. 设置快捷键
    进入 Edit -> Configuration -> Shortcut Keys,找到 Tools: Clang Format,绑定你习惯的快捷键(如 Alt+F)。

[!TIP]
使用前请先保存文件 (Ctrl+S),再按下快捷键,不然直接格式化会丢失没有保存的代码

2. 开启自动保存

防止软件崩溃导致代码丢失,建议开启自动保存。
进入 Edit -> Configuration -> File & Project Handling,勾选以下选项:

image-20251119201508257


结语

至此,一个干净、稳定且功能强大的 STM32 开发环境就搭建完成了。

  • MDK Community 解决了授权问题;
  • AC5 兼容了老旧代码;
  • Clang-format 拯救了代码强迫症。

祝大家开发愉快!如有问题欢迎在评论区留言。