做单片机开发或者嵌入式学习的朋友,对Keil这个名字一定不陌生。哪怕现在Keil5、Keil6都已经很成熟了,但高校教材、老开发板教程、以及大量企业存量项目,仍然跑在Keil4这套环境上。很多刚接触51单片机或者STC系列的朋友,拿到手的网盘资料里往往就是一个Keil4的压缩包,加上一篇文章标题式的说明“含激活步骤”。实际装的时候却发现,要么装完编译报license错误,要么根本不知道C51版和MDK版有什么区别,折腾一下午还是没能正常跑起来。
所以这篇东西,我会把Keil4从版本选择、安装包准备、系统兼容、安装流程、激活步骤,到编译报错排查、与Keil5共存等一整套常见问题,全部串在一起讲清楚。不卖关子,也不整那些花里胡哨的截图说明,直接按我这些年装过几十次Keil的经验,把每一步的原因和坑都给你讲明白。不管你是刚入门需要装环境,还是帮同学、同事解决安装问题,这篇都够用。
1. 为什么还在用Keil4?先搞清楚C51与MDK的区别
很多人拿到安装包就开始一路下一步,结果装完了打开软件,发现新建工程里面找不到AT89C51、STC89C52这些芯片,或者打开一个STM32的工程发现没有对应的Device选项,第一反应是“软件坏了”。其实大多数情况下不是安装包有问题,而是版本选错了。
1.1 Keil4到底是什么
Keil其实是一套完整的嵌入式软件开发工具,早期叫Keil C51,专门针对8051内核的单片机。后来ARM公司收购了Keil,推出了MDK-ARM产品线,用于开发基于ARM内核的芯片,比如STM32、LPC、NXP等。uVision是它的集成开发环境(IDE),从uVision3、uVision4到uVision5,界面和功能一直在迭代。
我们平时口头上说的“Keil4”,本质上是uVision4这个IDE版本,但它内部承载了两套完全不同的工具链:
- 一套是C51工具链,用来编译8051系列单片机程序,安装包通常是类似“C51V954A”这种命名。
- 另一套是ARM工具链,用来编译ARM内核芯片程序,安装包名字是“MDK474”这种,也就是常说的MDK4.74a。
这两套东西虽然都叫Keil,安装界面也长得很像,但内核、编译器、芯片支持库完全不一样。最直观的区别就是,C51版打开后,Device数据库里全是8051内核的芯片;MDK版则包含STM32、LPC、SAM等ARM芯片。所以安装之前第一件事,就是确认你到底要用它做什么。
1.2 C51版和MDK版不是一回事
这里需要重点强调一下:C51和MDK不是同一个软件的两个版本号,而是两套独立的软件。它们可以同时安装在同一台电脑上,而且互不影响。安装顺序上也没有强制谁先谁后,因为各自有独立的安装目录和注册信息。
很多刚入门的同学容易踩的坑是:手头有个Keil4的安装包,自己以为是全能的,装完却发现按教程找STC芯片找不到。其实如果你用的是STC89C52这种51单片机,那你必须装C51版;如果你是用STM32F103,那你必须装MDK版。两者不能互相替代。
还有一点要注意,同一个IDE版本下,C51和MDK的激活是分开的。你激活了C51,不代表MDK也能用。如果你两套都装了,那么两套都要各自激活一次。这个问题我在后面激活步骤里会详细说。
1.3 什么时候必须用Keil4
既然Keil5已经出了那么多年,为什么还有这么多人回头找Keil4?我总结下来,大致是这么几类情况:
- 学校教材和开发板教程还在用Keil4。很多经典的单片机教材,例如郭天祥老师的《十天学会单片机》、各种51开发板的配套视频,里面的操作界面截图全部是uVision4。如果自己装了Keil5,界面差异会导致照着做很别扭,尤其是新建工程、设置Options这些入口位置不一样。
- 老项目维护需要。很多企业的存量产品,代码工程是从多年前的Keil4建立起来的,用Keil5打开虽然能自动转换,但有时候会碰到编译器版本差异导致的警告、行为变化,甚至一些老编译器插件无法兼容。为了稳定维护,有些人宁愿在电脑里留一个Keil4。
- 老电脑、老系统环境。Keil4对硬件要求极低,在Windows XP、Windows 7这种老系统上跑得非常流畅。有些实验室的电脑配置很老,跑Keil5会比较卡,Keil4反而是最优解。
- 某些芯片的工具链支持停在Keil4时代。虽然这个情况现在很少了,但个别比较偏门的老芯片,官方SDK和开发工具就是基于Keil4写的,用Keil5反而需要自己折腾器件包,非常麻烦。
搞清楚了C51和MDK的区别,接下来就要解决一个实际问题:安装包从哪里来,怎么保证安全。
2. 安装前的准备:安装包、系统兼容性与工具
不要小看这一步。很多人最后安装失败,就是因为在准备阶段就埋了雷。比如下载的安装包本身不完整,或者杀毒软件把关键文件隔离了,又或者系统不兼容导致安装程序中途闪退。
2.1 从哪里搞到靠谱的安装包
安装包的来源,直接决定了后面顺不顺利。我的建议是遵循一个优先级:
第一优先:开发板/资料包自带。绝大多数国产开发板,比如普中、正点原子、野火等,标配的资料包里都带了Keil4安装包和激活工具,而且往往是经过他们验证的版本,和教程对得上。这是最推荐的来源。
第二优先:Keil官网下载。官网目前仍然提供历史版本的下载入口。搜索Keil official website,进入Downloads页面,可以在Product Downloads或者Legacy Products里找到C51和MDK的历史版本。但官网那个服务器在国外,国内下载速度看缘分,有时候几十MB要下载很久。
第三优先:国内一些嵌入式技术论坛、博客提供的网盘链接。这种方式能解燃眉之急,但一定要注意安全。下载后最好核对文件大小和解压是否正常,安装包如果是压缩包,解压报错就别硬装,很可能文件缺损。
不管从哪里下载,建议都做一件事:核对文件的哈希值。大一点的技术论坛分享安装包时,通常会附上MD5或者SHA-1。下载完用工具核对一下,如果对不上,说明文件被改动过或者下载过程中损坏,这种包直接删掉,不要冒险安装。另外,安装包下载好后,安装前最好暂时关闭杀毒软件的实时防护,原因我后面说。
2.2 系统兼容性问题
Keil4是2010年左右发布的IDE,年代确实比较久远了。在Windows 7、Windows XP上运行最稳定,这没什么好说的。但今天很多人电脑已经是Windows 10甚至Windows 11,安装Keil4照样能用,只是要注意几个细节:
- Windows 10/11安装时,建议右键安装程序,选择“属性”->“兼容性”->“以兼容模式运行这个程序”,选Windows 7,并且勾选“以管理员身份运行此程序”。这一步能避免很多莫名其妙的安装中断和权限问题。
- Keil4的License管理工具在Windows 10/11下有时候会出现“打开License Management无响应”的情况。遇到这个,把uVision的快捷方式同样设置成以管理员身份运行,一般就能解决。
- 如果系统是64位,完全不用担心,Keil4虽然是老软件,但它是32位程序,在64位系统上通过WOW64机制能正常运行。
- 还有一类情况是软件装好了,但连接单片机开发板的时候,USB转串口驱动或者ST-Link、J-Link驱动在Windows 10/11下装不上。这跟Keil本身没关系,而是驱动签名问题。如果碰到“驱动安装失败,提示数字签名”,需要在系统启动时禁用驱动程序强制签名,方法是在设置-恢复-高级启动里,进入疑难解答-高级选项-启动设置,重启后按数字键选择“禁用驱动程序强制签名”。这个技巧在做51开发板串口下载时尤其常用。
2.3 安装前必备工具和资料
除了安装包本身,还有几样东西最好提前准备好,免得安装到一半到处找:
- 激活工具。也就是常说的keygen(注册机)。这个工具负责根据你的电脑生成的CID码算出对应的激活码。注意,注册机这玩意儿杀毒软件基本都会报毒,因为属于破解工具。用的时候要提前在杀毒软件里加白名单,或者临时退出。我强调一下:如果你有正版序列号,那就走官方在线激活,最安全。注册机只建议在学习环境下使用,商业项目请务必支持正版。
- 开发板的USB驱动。比如STC系列单片机的USB转串口驱动、CH340/CP2102驱动。不少同学Keil装好了,程序也编译通过了,结果烧录的时候下载器不识别设备,卡在这一步。提前把驱动装好,后面会省很多事。
- 一个简单的测试工程。不要等到真要用的时候才想到测环境。准备一个点灯程序,装了Keil之后马上编译一下,能确认环境是否正常。如果你手头有开发板,烧进去看效果最好。
到这里准备工作算做完了,接下来进入正式的安装流程。
3. Keil4完整安装流程与注意事项
Keil4的安装过程本身不算复杂,基本就是一路Next,但里面有几个细节会影响后面的使用体验,我拆开讲。
3.1 安装向导详解
以C51版为例,双击安装程序后,首先看到的是欢迎界面,点击Next进入License Agreement,选择同意后继续。这里要注意,有些安装包可能是中文汉化版,界面文字会不太一样,但流程是一致的。
接下来会要求填写用户信息(Name和Company),随便填就行,但不要留空。再往后是选择安装路径,这一步是整个安装过程中最关键的地方。
安装完成后,默认会勾选“Add to PATH”之类的选项?其实uVision没有这个选项,不用管。最后勾选“Run uVision4”,安装程序会在结束后自动启动软件,这时候先别急着关,因为马上要进入激活步骤。
如果你需要同时安装C51和MDK,那先把一套装完并激活,再装另一套。安装顺序上,我建议先装C51,再装MDK,因为C51版对系统环境的要求更单纯一些,不容易受干扰。
3.2 选择安装路径的正确姿势
关于安装路径,我的建议可以用四个字概括:全英文、无空格。
不要安装在中文目录下,比如“D:\软件\Keil”,也不要装在带空格的路径,比如“D:\Program Files (x86)\Keil”。有些教程说带空格没问题,但实际碰到过不少工程编译时因为路径解析出错,报找不到文件名的错误。报错信息往往很诡异,比如“cannot open file ‘.\obj\main.axf’”,你查半天才发现是编译器对路径里的空格处理不友好。
另外,不建议装在C盘系统盘默认路径。虽然默认路径“C:\Keil”本身是合法的,但考虑到以后会安装各种芯片包、工程文件,C盘空间紧张的同学容易吃亏。我自己的习惯是单独建一个目录,比如“D:\Embedded\Keil4”,以后所有的开发工具都统一放在这个目录下,环境管理和备份都方便。
还有一点,安装路径不要和Keil5重叠。如果你之后还要装Keil5,最好让Keil4和Keil5分别在不同目录。比如Keil4装在D:\Keil4,Keil5装在D:\Keil5,这样两套软件的芯片支持包、配置文件互不干扰,共存最稳定。
3.3 安装过程中的坑
安装程序跑的时候,有几类情况需要留意:
第一,杀毒软件拦截。Keil4安装包内部的一些文件,特别是激活工具,经常被杀毒软件当成风险软件处理。轻则弹窗警告,重则直接隔离文件,导致安装出来的软件不完整。所以安装前建议把实时防护关掉,或者至少把安装目录加入白名单。激活工具单独存放的文件夹也要加白名单,否则激活到一半工具被删了,就很尴尬。
第二,安装进度条卡住。这种情况在Windows 10/11上偶发,多是因为安装程序需要写入某些系统目录,但没有管理员权限。解决办法就是提前右击安装程序,选择“以管理员身份运行”。
第三,覆盖安装旧版本时残留问题。如果电脑上已经装过其他版本的Keil,尤其是老旧的uVision3,再装Keil4时最好先卸载干净,并清理注册表残留。否则安装完成后,可能出现双击uVision图标没反应,或者License Management里显示的还是旧版信息。清理方法可以借助一些卸载工具,不想那么麻烦的话,至少要把安装目录整个删除,并运行注册表编辑器搜索“Keil”和“uVision”相关项,手动删除。注册表操作有风险,删除前务必先备份。
安装完成,顺便也激活了,但有些朋友到这一步就以为完事了,结果打开软件新建工程发现芯片列表是空的,或者编译就报毒。其实这是把后面的一些步骤漏掉了。接下来重点说激活。
4. 激活与License管理:从注册到验证
激活这一步是很多人卡得最久的地方,也是最容易出玄学问题的地方。我把整个激活的原理和操作流程拆开,讲清楚为什么这样做,再动手。
4.1 激活前必须知道的事
先理解Keil的授权机制。Keil软件在安装后默认是评估模式,不激活的情况下也能打开,但编译时有代码大小限制(C51版好像超过8KB还是4KB就会报错),而且无法正常使用全部功能。激活的本质,就是把你的电脑硬件指纹(CID)和许可证密钥绑定,生成一个授权码,让编译器解禁。
CID是什么?CID就是Computer ID,每个用户电脑上运行uVision时,根据网卡、CPU等硬件信息生成的一个唯一ID。在激活窗口里,你会看到一长串字母数字混合的CID码,这个码是激活的唯一凭据。换一台电脑,CID就不一样,激活码也就要重新生成。
所以激活时一定要用当前电脑的CID,不要照搬教程截图里的CID。这也是很多人激活失败的原因:拿别人的激活码填进去,显示“Invalid License Key”,因为那个Key和他自己电脑的CID不匹配。
4.2 在线激活:用正版序列号注册
如果你有正版的Keil产品序列号,那激活过程其实很简单。打开uVision,点击菜单栏的“File”->“License Management”,在弹出的窗口里能看到三个关键信息:当前使用的产品(如PK51 Professional Developer's Kit)、CID码、以及当前授权状态。
在线激活的操作是:
- 在License Management窗口点击“Get License via Internet”按钮。
- 浏览器会打开Keil的授权页面,填入你的序列号、CID、个人信息(比如邮箱、公司名),提交后,Keil官网会把对应的License授权码发到你的邮箱,或者直接显示在页面上。
- 把获取到的License授权码复制回License Management窗口的“New License ID Code”输入框,点击“Add License”。
- 窗口下面的授权列表会出现一条记录,包含Product、License ID、Support until等信息。
这种方式需要联网操作,而且前提是你手里有合法的序列号。对于绝大多数学习场景,我们手里是没有序列号的,那就走下面这种离线激活。
4.3 离线激活:CID与注册码实操
离线激活是中文互联网上流传最广的方法,操作起来也不难,但有几个细节值得注意。
第一步,打开uVision4,菜单栏“File”->“License Management”,把窗口里显示的CID码完整复制下来。注意,CID是全英文字符加数字,没有连字符,复制时不要遗漏任何一位,否则后面生成出来的激活码大概率无效。
第二步,运行激活工具。这个工具通常是英文界面,里面同样有一个CID输入框,把你从uVision里复制的CID粘贴进去。注意看工具的Target下拉框,里面会有C51和ARM等选项,你要根据自己安装的版本选择对应的Target。比如你装的是C51版,就选C51;如果你装的是MDK,就选ARM。选错的话生成的激活码填进去会提示无效。
第三步,点击Generate按钮,工具会立刻生成一个License Key,也就是激活码。把这段激活码完整复制,不要手动抄,一定要用Ctrl+C/Ctrl+V,因为字符很容易看错,尤其是数字0和字母O、数字1和字母l。
第四步,回到uVision的License Management窗口,把激活码粘贴到“New License ID Code”输入框,点击“Add License”。此时下方授权列表里如果出现了一条记录,并且状态正常,说明激活成功。
我实际用下来,有一个问题经常发生:添加激活码的时候,uVision提示“The license is already in use”或者“Invalid License”。这种情况十有八九是激活工具里Target选错了(比如C51的CID拿ARM的keygen去生成),或者CID复制前后多了空格。可以把两个窗口都关掉重开一次,重新复制CID再试。
还有一个需要特别提醒的点:不要在同一个CID上反复生成太多次激活码。有些注册机生成的Key会携带一个“生成计数”的参数,同一个CID生成太多次以后,新生成的Key反而可能被判定为无效。我一般建议,一个CID如果需要重试,就固定使用第一次生成的Key,除非确认Key错了,再重新生成。
4.4 如何验证激活是否成功
有不少人激活时看到窗口里出现一条记录,以为万事大吉,结果一编译还是报license错误。这是因为没有正确验证授权是否真的生效。
正确验证方法:
- 看License Management窗口里的授权记录,这一条记录左侧会有个绿色的勾或者类似已激活的标识,Product栏会显示你激活的是C51还是ARM,右侧会有到期日期。如果显示“Evaluation Version”或者“Expired”,说明还是没激活成功。
- 编译一个带实际代码的工程,随便写一个点灯程序,点击Build(魔术棒图标旁边那个编号为0的图标,或者快捷键F7)。如果能正常生成HEX文件,输出窗口没有“Error: C9555E: Failed to check out license”之类的报错,说明license已经被正确识别。这一步最靠谱。
- 如果编译时出现“Target not created”或者“error: #575: out of range for memory”,且代码逻辑没问题,也极可能是license问题,而不是内存配置问题。这点我印象很深,很多新手在菜单里调了半天Memory设置,其实根因只是license没激活成功。
激活完成后,把激活工具和安装包一起放在一个安全的地方存好。因为如果重装系统或者换电脑,需要重新激活,到时候找不到了就要全网重新搜索,很折腾。
5. 常见错误与问题排查实录
装Keil4、用Keil4的过程中,几乎每个人都会遇到几个报错。我挑几个最常见的,按“错误现象-可能原因-解决办法”整理成清单,方便你遇到问题的时候直接对号入座。
5.1 最常见的报错和解决方法速查表
| 错误现象 | 可能原因 | 解决办法 |
|---|---|---|
| 双击uVision图标没反应 | 安装文件被杀毒软件隔离或安装不完整 | 重新安装,安装时关闭杀毒软件;检查安装目录是否还有ubv4.exe |
| 启动提示“Failed to check out license” | License未激活或已过期 | 重新激活;确认之前没有手动改过系统时间 |
| 编译报错“Product is not licensed” | C51和MDK搞混,激活了A但编译用的是B | 打开License Management确认当前激活的产品,补激活另一个 |
| 新建工程找不到STC/AT89C51芯片 | 装了MDK而不是C51版 | 安装C51版Keil4 |
| 烧录时找不到COM口 | USB转串口驱动没装或驱动签名问题 | 安装CH340/CP2102驱动;禁用驱动程序强制签名后重装 |
| 调试连接不上目标芯片 | 调试器设置错误或驱动不兼容 | 检查Options for Target里的Debugger选项,选对仿真器类型和端口 |
| 中文注释显示乱码 | 文件编码不匹配 | Edit->Configuration->Editor->Encoding改为Chinese GB2312 |
| 编译时提示“cannot open file” | 路径中包含中文或空格 | 把工程文件迁移到全英文路径,或者重新建工程 |
这个表格是应急用的,下面几个问题值得单独展开说,因为它们藏得比较深。
5.2 编译报错找不到目标芯片
有同学问我:我装的是C51版,也能打开软件,但Type选择芯片的时候翻遍列表没看到STC89C52。这个问题很典型,原因不一定是安装包问题,而是Keil的芯片数据库默认不包含STC系列。
STC系列是国产宏晶科技的单片机,兼容8051指令集,但基础Keil4 C51版的Device列表里默认是没有STC选项的。要解决,一般有两种方式:
- 如果你的STC单片机可以用AT89C52替代,那新建工程时直接选Atmel下的AT89C52,照样能编译运行。大部分STC89C52的教程代码都是这么操作,下载的时候再用STC-ISP软件选择具体型号烧录。
- 从STC官网或开发板资料包里下载STC的Keil插件(STC-ISP软件里自带“添加STC仿真器驱动到Keil中”的按钮),安装后Device列表里会出现STC系列芯片。
有些网友反映装了STC插件后,打开Keil弹出一个“Error: ***”的提示框,多半是插件版本和Keil版本不匹配,或者安装时Keil没有以管理员身份运行。重装插件时注意用管理员运行。
5.3 兼容模式和“以管理员身份运行”
这个问题不解决,很多老软件在Win10/11上就是会出现各种诡异问题。比如Keil4在Windows 10下,明明装好了,激活也好好的,但一打开就无响应;或者菜单栏点击没反应;又或者拖拽文件进编辑窗口时直接卡死。这些大多跟权限或DPI缩放有关。
解决办法是给uVision.exe设置兼容性属性:
- 找到Keil安装目录下的uVision4.exe(文件名可能叫UV4.exe),右键->属性->兼容性。
- 勾选“以兼容模式运行这个程序”,下拉框选Windows 7。
- 勾选“以管理员身份运行此程序”。
- 如果界面字体发虚或者很小,再到“更改高DPI设置”里,勾选“替代高DPI缩放行为”,缩放执行选“系统(增强)”,能让界面清晰不少。
设置完后重新打开Keil,绝大多数玄学问题都能消失。注意,如果你是通过开始菜单的快捷方式打开的,那快捷方式也要同样设置一遍,或者直接对安装目录里的主程序设置,快捷方式继承主程序设置。
5.4 老工程打不开或中文乱码问题
老工程打不开,常见原因是我前面提到的版本不匹配。比如你拿C51版去打开一个MDK创建的工程文件,uVision会提示找不到设备类型。这种只能装对应的版本,没有别的办法。
还有一个情况是,用Keil5打开Keil4工程时提示“The project was created with an older version of the toolchain”,问你是否转换。转换后大概率能编译,但转换后的工程文件,再拿回Keil4就打不开了,因为工程文件格式已经被升级。所以维护老项目的时候,尽量不要来回切换版本,要么固定用Keil4,要么固定用Keil5。
中文乱码的问题,十有八九是文件编码不一致。Keil4默认的ANSI编码,在中文Windows下就是GBK/GB2312。如果你用VS Code、记事本把代码文件另存为UTF-8格式,再拿回Keil4打开,中文注释就会变成一堆乱码。解决办法有两个方向:
- 让Keil4能正确显示UTF-8:在Edit->Configuration->Editor->Encoding里把编码改成UTF-8。但Keil4对UTF-8的支持并不完美,有些场景下还是会显示异常。
- 反过来,把所有源码统一用GB2312/ANSI编码保存。这个对老工程最省事,只要你自己注意别用现代编辑器随意改编码就行。
我个人的习惯是,老工程一律保持原始编码不要动,新工程全部用Keil5或VS Code + GCC那套工具链,编码统一UTF-8。两个时代的产物就不要硬拧在一起了。
6. 进阶技巧:从Keil4平滑过渡到Keil5
装好了Keil4、激活完、测试通过,到这儿其实已经能正常使用了。但很多朋友装Keil4只是为了应急,后面还是要面对Keil5。所以再说说这两者怎么共存、怎么平滑迁移,省得以后又踩坑。
6.1 Keil4和Keil5能共存吗
能。而且共存这事儿比想象中简单,前提是各装各的目录,不要覆盖安装。我电脑上目前就是D:\Keil4和D:\Keil5共存的状态,平时新项目用Keil5,碰到老工程维护就开Keil4,互不干扰。
需要注意的几个点:
- 安装顺序没有硬性要求,但建议先装Keil4再装Keil5,这样Keil5默认可以识别Keil4的工程文件格式,转换时更方便。反过来也不会出问题,只是某些文件关联可能被后者覆盖。
- 编译时需要区分当前用的是C51还是ARM工具链。Keil5里C51和MDK是作为两个单独的Pack或工具链安装的,而Keil4里两套是完全独立的安装包。在两套软件并存时,不建议同时打开同一个工程目录,避免工程文件被不同版本分别写入配置,造成冲突。
- 默认文件关联会被后装的软件抢走,所以双击.uvproj工程文件时,系统会用后装的Keil打开。如果想固定用某版本打开,可以右键工程文件,选择“打开方式”,手动指定uv4.exe或uv5.exe。
6.2 多工程管理技巧
Keil4的工程管理能力放到今天看比较简陋,但有几个实用技巧:
- 用相对路径组织工程。Keil4默认生成的工程文件会把头文件、源文件路径写成绝对路径,一旦整个工程文件夹挪了位置,再点开工程就报找不到文件。解决办法是编辑.uvproj工程文件,把所有路径改成相对路径,或者在建立工程时就把工程文件放在所有源文件的上一级目录,用“.\Src”这种方式管理。
- 常用的启动文件、头文件单独放一个目录,比如“D:\Embedded\Common”。在工程配置里通过Include Paths引用这个公共目录。这样你新建工程时,只需要改源文件,不需要重复添加一堆公共头文件。
- 用Options for Target里的“Output”选项卡,把编译生成的HEX文件统一指定到一个输出目录,比如“D:\Embedded\Output”。这样下载固件的时候,不需要去每个工程目录里翻HEX文件,对批量维护十几个工程的情况特别省事。
6.3 在线调试和仿真器的配置经验
Keil4自带在线调试功能,配合仿真器(比如ST-Link、J-Link)可以单步、断点调试。但配置的时候有几个容易忽略的地方:
- 打开Options for Target->Debug,右侧选择使用哪种仿真器。左侧是软件仿真(Simulator),右侧是硬件仿真。很多人上来就选错,选了Simulator,然后连接开发板发现没用。
- 仿真器选好后,点击旁边“Settings”,确认能识别到设备。如果识别不到,检查仿真器驱动是否装好,连线是否正确。ST-Link和J-Link的驱动在Win10下有时需要手动安装。
- 如果开发板使用的是STC系列单片机和串口下载,很多STC芯片是不支持在线调试的,只能编译成HEX后用STC-ISP软件烧录。这时候就不要去折腾仿真器了,纯下载流程即可。
说句实在话,做51开发的学习阶段,编译能过、HEX能烧进去、程序跑起来,已经解决了90%的问题。在线调试功能更多是在调试复杂逻辑时才用得上,新手阶段不需要纠结。
最后再分享一点我自己的习惯。这颗Keil4环境装好以后,建议把这几样东西统一打包放在一个专用目录里:安装包、对应版本的激活工具、STC-ISP软件、CH340驱动、常用头文件模板、本身的一个测试点灯工程。这样哪怕以后换电脑、重装系统,拿到这个目录就能在半小时内恢复整套开发环境,不用再去网上东翻西找。踩过几次重装系统的坑之后,你就会明白这个习惯有多值得。