Keil5安装卸载避坑指南:MDK与C51双工具链配置及彻底清理
2026/9/19 17:23:39 网站建设 项目流程

1. 为什么 Keil5 的安装卸载值得单独写一篇避坑指南

搞嵌入式开发的人,电脑里大概率都躺着一个叫 Keil 的软件。学生时代第一次点亮流水灯用的是它,工作以后调 STM32、写 8051 也还是它。但就是这么一个人人都要装的工具,安装和卸载环节却常年是新手翻车的高发区——装完发现没有 C51 芯片包、编译提示代码超过 2K 限制、卸载之后注册表残留导致重装失败、MDK 和 C51 装在不同盘符互相打架,这些问题我几乎每年都要帮人处理几次。

这篇内容就是把我这些年反复踩过的坑、帮别人擦过的屁股,整理成一套从零开始、能直接照着做的完整流程。核心围绕Keil5(也就是 Keil MDK-ARM 5)的下载、安装、激活、C51 兼容配置,以及彻底卸载清理这几件事展开。适合三类人看:一是刚接触单片机、第一次装 Keil 的学生;二是需要在一台电脑上同时开发 51 和 STM32 的工程师;三是被残留文件折磨过、想搞清楚卸载到底该删哪些目录的老手。

我会把每一步背后的原因讲清楚,比如为什么安装路径不能带中文、为什么 C51 和 MDK 要装到同一个目录、为什么卸载完还得手动清注册表。这些细节在官方文档里往往一笔带过,但恰恰是决定你装得顺不顺、卸得干不干净的关键。下面按“装之前想清楚、装的时候别手抖、装完怎么配、出问题怎么救、卸的时候怎么清”这条线往下走。

2. 装之前必须想清楚的几件事

2.1 Keil5、MDK、C51 到底是什么关系

很多人一上来就被这几个名词绕晕,先把概念理清楚,后面才不会装错。Keil是公司名,也是这一系列开发工具的统称。MDK(Microcontroller Development Kit)是它面向 ARM 内核芯片的开发套件,我们平时说的“Keil5 装 STM32”,用的就是 MDK-ARM。而C51是它面向 8051 内核单片机的老牌工具链,版本号还停留在 C51V9xx 那个年代。

关键点在于:MDK 和 C51 是两个独立的安装包,但可以共存于同一个安装目录下。Keil 的 uVision 集成开发环境本身是通用的,它通过加载不同的工具链(ARMCC/ARMCLANG 或 C51 编译器)来支持不同架构。所以正确的做法是:先装 MDK,再装 C51,并且把 C51 的安装路径指到 MDK 的同一个目录里。这样打开一个 uVision,既能建 STM32 工程,也能建 51 工程。

注意:如果你先装了 C51 再装 MDK,或者两者装到了不同目录,uVision 可能会只认其中一个工具链,表现为新建工程时找不到对应芯片,或者编译时报找不到编译器。这不是软件坏了,是路径没统一。

2.2 安装路径和系统环境的硬性要求

安装路径这件事,我见过太多人栽跟头。路径里绝对不能出现中文、空格和特殊符号。原因很简单,Keil 的编译工具链底层调用的一些命令行程序对非 ASCII 路径支持很差,路径里有中文时,编译会莫名其妙报错,错误信息还特别隐晦,你根本想不到是路径的锅。

推荐的做法是直接用默认路径C:\Keil_v5,或者自己建一个纯英文短路径,比如D:\Keil_v5。别图省事装到“桌面”“我的文档”这种带中文的目录下,也别装到Program Files里——那个路径带空格,同样可能出问题。

系统方面,Win10 和 Win11 都能正常跑,32 位和 64 位系统都支持。但要注意,安装和激活的时候最好右键“以管理员身份运行”,否则写注册表、写系统目录可能被权限拦住,装到一半失败。另外装之前把杀毒软件临时关一下,Keil 的激活环节涉及对可执行文件的修改,容易被误报拦截,导致激活不成功。

2.3 版本选择:别盲目追最新

MDK 的版本更新挺频繁,但并不是越新越好。新版本可能对老芯片的支持包(Device Family Pack)有调整,也可能改变了一些默认编译选项,导致你从别人那拿来的老工程编译不过。如果你是跟着教程学 STM32,建议选一个教程里明确用过的版本,比如 MDK 5.36 这种被大量教程验证过的稳定版。

C51 这边版本号变化不大,常见的就是 C51V960 这类。下载的时候认准官方渠道或者可靠的镜像,别随便从不明来源下,安装包被篡改过的话,激活环节容易出问题,甚至带进来一些不干净的东西。

3. MDK-ARM 的完整安装流程

3.1 下载与安装包校验

拿到安装包之后,先做一件事:核对文件大小和数字签名。官方发布的 MDK 安装包通常在 700MB 到 1GB 之间,如果你下到的只有几十兆,那多半是下载中断或者被替换过的残缺包。右键安装包看属性,如果有“数字签名”选项卡且签名有效,基本可以放心。

安装包的文件名一般形如MDK536.exeMDK5xx.exe,双击之前先右键选择“以管理员身份运行”。这一步很多人忽略,结果装到写注册表环节弹权限错误,又得从头来一遍。

3.2 安装向导逐项说明

进入安装向导后,前面几步是许可协议和安装路径。许可协议直接勾选同意,到了路径选择这一步,把默认的C:\Keil_v5记牢,后面装 C51 要用到同一个路径。

接下来会有一个填写用户信息的界面,姓名、公司、邮箱随便填,不影响功能。再往后是选择需要安装的软件组件,这里会列出 MDK-ARM 核心、以及一些可选的包。核心组件必须装,其他的比如示例工程、中间件可以按需勾选。如果你不确定,全选也不会有大问题,就是占点磁盘空间。

安装过程大概几分钟到十几分钟,取决于机器性能。装完之后会弹出一个“Pack Installer”的提示,问你要不要现在安装器件支持包。这里可以先跳过,因为器件包体积大,而且可以后面按需在线装,先把主程序装好、激活好再说。

3.3 激活环节的关键操作

MDK 装完是评估版,编译代码有 32KB 限制,超过就编译不过。激活流程是:打开 uVision,点File菜单里的License Management,复制里面的 CID 码,然后用对应的注册机生成 License,再填回去。

这里有几个坑要提醒。第一,注册机本身可能被杀毒软件报毒,这是误报,但你需要把它加到白名单,否则生成不了 License。第二,复制 CID 和粘贴 License 的时候注意别多复制了空格或换行,否则会提示无效。第三,激活成功后,License Management 界面里会显示过期时间,看到那个日期就说明成功了。

提示:激活信息是写在注册表里的,所以如果你后面要重装系统或者换电脑,需要重新激活。建议把 CID 和对应的 License 记下来存好,省得每次都要重新生成。

4. 让 Keil5 同时支持 C51 和 STM32

4.1 C51 安装包的正确安装姿势

C51 的安装包通常叫C51V960.exe这类名字。安装的时候,路径一定要手动改成和 MDK 完全一致的目录,也就是前面记下的C:\Keil_v5。安装向导默认可能会给你一个别的路径,比如C:\Keil,这时候必须手动改掉,否则两个工具链就分家了。

安装过程中如果弹出“检测到已安装 Keil,是否合并”之类的提示,选择合并/继续。装完之后,C51 的编译器文件会被放进C:\Keil_v5\C51目录下,而 MDK 的在C:\Keil_v5\ARM目录下,两者井水不犯河水,但 uVision 能同时识别。

4.2 验证双工具链是否生效

装完之后打开 uVision,点Project菜单里的New uVision Project,在器件选择对话框里看两边的芯片列表。如果左边能展开ARM系列看到 STM32,同时也能展开AtmelNuvoton等看到 8051 内核的芯片,说明双工具链配置成功。

如果只看到一边,先检查安装路径是否一致,再检查 uVision 的Project->Manage->Project Items里工具链设置。还有一种情况是 C51 装了但没装对应的器件支持包,这时候需要单独装 C51 的器件包,或者手动指定芯片型号。

4.3 解除 C51 的 2K 代码限制

C51 的评估版有个 2K 代码限制,编译超过 2KB 的 51 程序会报错。解除方法和 MDK 类似,也是通过 License Management 激活。但要注意,C51 和 MDK 的 License 是分开的,你激活了 MDK 不代表 C51 也激活了。需要在 License Management 界面里分别对两个工具链进行激活操作。

具体操作是:在 License Management 里,先选中ARM那一栏激活 MDK,再选中C51那一栏激活 C51。两栏都显示有效期之后,2K 限制就解除了。如果只激活了一边,另一边编译大程序时还是会报限制错误。

5. 安装后必做的配置与验证

5.1 器件支持包的安装

MDK 装好只是有了编译器,具体某款 STM32 芯片的寄存器定义、启动文件、外设库,都在器件支持包(DFP)里。打开 uVision 后点工具栏上的“Pack Installer”图标,或者菜单Project->Manage->Pack Installer,在里面搜索你用的芯片型号,比如STM32F103,找到对应的 DFP 点安装。

器件包体积不小,一个系列可能几百兆,建议按需装,别一股脑全下。装完之后,新建工程时才能在器件列表里找到你的芯片。如果找不到,多半是包没装或者装错了系列。

5.2 编译环境的基本设置

新建工程后,有几个编译选项建议检查一下。在Options for Target里,Target选项卡的Xtal频率要和你板子上的晶振一致,否则仿真时序会不对。Output选项卡里勾上Create HEX File,这样编译后会生成可烧录的 hex 文件。C/C++选项卡里确认Include Paths包含了你的头文件目录。

还有一个容易被忽略的点:Debug选项卡里的仿真器选择。如果你用 ST-Link 或 J-Link,要在这里选对型号,否则点下载会提示找不到设备。选好之后点Settings能识别到芯片 ID,就说明连接正常。

5.3 一个最小工程的验证

配置完之后,建一个最简单的工程验证一下:新建main.c,写一个空的main函数,编译。如果 0 错误 0 警告通过,说明工具链没问题。再建一个 51 的工程,同样写个空 main,编译通过,说明 C51 也正常。两个都过了,这套环境就算搭好了。

6. 常见故障与排查速查

6.1 安装与激活类问题

现象可能原因解决办法
安装到一半报权限错误没用管理员身份运行右键安装包,以管理员身份运行
激活提示 License 无效CID 或 License 复制带了空格重新复制,确保无多余字符
激活后仍提示评估版限制只激活了 ARM 没激活 C51在 License Management 里分别激活
装完找不到芯片型号器件支持包没装用 Pack Installer 安装对应 DFP

6.2 编译与烧录类问题

编译报错里最常见的是“找不到头文件”和“代码超过限制”。找不到头文件,九成是Include Paths没配全,把用到的库目录都加进去。代码超过限制,先确认 License 是否激活成功,再看是不是选错了工具链——比如用 C51 编译 STM32 的代码,那肯定过不了。

烧录失败的话,先检查仿真器驱动装没装、线接没接对、目标板供电正常不正常。ST-Link 的话,在Debug->Settings里看能不能读到芯片 ID,读不到就是硬件连接或驱动问题。还有一种情况是芯片被读保护了,需要先解锁才能烧录。

实操心得:遇到编译报错,先看第一条错误,后面的错误往往是第一条引起的连锁反应。别被满屏红色吓到,解决第一条,很多后面的会自动消失。

7. 彻底卸载 Keil5 的正确步骤

7.1 为什么普通卸载卸不干净

很多人卸载 Keil 就是去控制面板点一下“卸载”,然后发现重装的时候各种问题:提示已安装、激活状态残留、器件包还在。原因是 Keil 的安装信息分散在好几个地方——程序目录、注册表、用户配置目录、以及器件包目录。控制面板的卸载程序只删了主程序,剩下的残留它不管。

所以彻底卸载需要手动清理这几处。顺序很重要:先走正常卸载流程,再手动清残留,反过来容易删不干净。

7.2 分步清理流程

第一步,控制面板卸载 MDK 和 C51 两个程序。第二步,删除安装目录,默认是C:\Keil_v5,如果你装到别处就删对应目录。第三步,清理用户配置目录,通常在C:\Users\你的用户名\AppData\Roaming\KeilAppData\Local\Keil下,这两个目录里存的是 uVision 的界面配置和最近工程记录。

第四步,清理注册表。按Win+R输入regedit打开注册表编辑器,找到HKEY_CURRENT_USER\Software\KeilHKEY_LOCAL_MACHINE\SOFTWARE\Keil(64 位系统可能还在WOW6432Node下有一份),把整个 Keil 项删掉。删注册表有风险,操作前建议先导出备份。

第五步,清理器件包目录。器件包默认在C:\Users\你的用户名\AppData\Local\Arm\Packs下,如果确定不再用,可以一并删除。这个目录可能很大,删之前确认没有其他 ARM 工具在用。

7.3 卸载后的验证

清理完之后,重新走一遍安装流程,如果能顺利装、顺利激活、新建工程正常,说明卸干净了。如果重装时还提示“已安装”或者激活状态还在,说明注册表或配置目录还有残留,回去再检查一遍上面列的路径。

注意:删注册表之前一定先备份,导出一个.reg文件放桌面。万一删错了,双击导回去就能恢复。这个习惯能救你很多次。

8. 我这些年攒下的几条实操经验

装 Keil 这件事,说难不难,但细节特别多。我自己总结下来,最值钱的经验就三条。第一条,路径统一,MDK 和 C51 装同一个目录,这是双工具链能共存的前提,也是后面少出问题的根本。第二条,激活要两边都做,很多人以为激活一次就完事,结果 C51 那边 2K 限制还在,白白折腾半天。第三条,卸载要清注册表,这是重装能不能成功的关键,光靠控制面板卸载,残留的注册表项会让你下次安装各种报错。

另外分享一个小技巧:装好一套能用的环境之后,把整个C:\Keil_v5目录打包备份一份,连同激活信息一起存到移动硬盘。下次换电脑或者系统崩了,直接解压到同样路径,很多时候连激活都不用重做,省下大量时间。这个办法我在换过三次工作电脑之后一直在用,实测很稳。

至于器件包,建议单独建一个目录管理,别和主程序混在一起。用 Pack Installer 装的时候可以指定路径,统一放到一个地方,重装系统时也好迁移。这些细节看着琐碎,但真到用的时候,能帮你省下不少返工的功夫。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询