作为最常用的单片机程序编辑工具,全球有超过10万的工程师在使用Keil,但初学者很有可能对Keil的各种信息和操作一无所知,我便是其中一员,由于最近看了很多Keil相关的教程,这里想结合自己的实践经验来写一篇汇总式的教程,我觉得几乎包含了在使用Keil的过程中可能出现的各种需求。
使用一个软件,首先是获取这个软件的安装包,而根据我们的习惯,一般会选择在官网下载,一个是保证版本要最新(没有这个需求的当我没说),一个是避免各种奇奇怪怪的问题。
于是,我们来到官网:https://www.keil.com/,点击Download。
选择Product Download。
下载MDK-ARM和C51两个安装文件,如果只需要一个,按需下载
具体操作就不再演示了,下载时应该还需要填写一些信息,按需填写。然后就可以得到两个文件:
注意:版本可能不一样!但问题不大。
由于安装破解一种版本的Keil比较简单,网上教程一大堆,此处不再赘述,而是记录一下自己在实现Keil兼容C51和ARM时的操作。我觉得大部分人应该都会有这个需求。
先说说我找的一些教程吧。在研究这个问题的时候,我也是找了很多教程的,但我发现教程之间差得特别大,有些要求两个软件分开安装,然后复制来复制去的,还需要改变ini文件,确实非常复杂,但也有很简单的操作方式,那就是直接两个安装包装一起就完事,非常简单。我试的就是后一种,而且亲测有效! 下面简单叙述一下过程。
1. 安装MDK,选择一个你喜欢的路径,其他的都是一路next。
需要注意这里有一个小讲究,那就是路径问题,默认路径是C:\Keil_v5,虽然我们可以选择其他路径,但是仔细的话就会发现,在下面有一行蓝色小字,提示你这个路径有严格的管理员权限限制,使得运行需要管理员权限,那不用管理员权限运行就不行了吗?编辑代码还是可以的,但是会出现一些奇怪的问题,后面会有提及,先埋个伏笔。所以这里,我仍然改动了路径。
2. 安装c51v960a
这个具体操作也是一路next,但是一定要注意,安装路径一定要和MDK-ARM安装路径相同!!!。另外,我看到的教程好像都是先安装C51,再安装MDK-ARM,但是我的顺序不一样好像也没有问题~~
3. 效果展示
安装完两个安装包之后会发现,桌面上仍然只有一个快捷方式,因为其实创建了两个,但先创建的被默认替换掉了,可见其执行程序还是一样的。双击快捷方式,打开Keil,新建工程。
如果器件处可以选择,表示兼容ARM和C51的Keil安装成功!
4.如果需要破解,记得分别破解!具体过程就不演示了。可参考链接
Keil本质上只是一个框架,如果不填充内容,编译单片机的程序就是一句空话,而支持包就是这个“内容”。
仍然坚持我们软件优先从官网下载的原则,我们去官网找一下支持包。仍然打开官网:https://www.keil.com,在搜索栏中搜索pack:
回车,显示搜索结果:
很幸运,第一个就是,点击进入。
为方便查找,可以点击Device List,当前看到的是具体板子的型号,点击之后相当于对板子进行分类。
然后下载所需的型号即可。注意:如果需要F1的支持包,可以点击F1系列下任何型号,然后点击右边的下载即可,会自动下载该系列的支持包。对应型号板子的网页内容会提供该型号芯片的信息及相关的例程,辅助学习。
这一步之所以讲得这么细致,主要是想 “授之以渔” ,如果以后需要其他型号的单片机,也可以到这个网站按照这种方式来寻找。
说到安装,其实有两种方式,一种是在线安装,即打开一个基于某个支持包的程序,软件会自动提示你这个程序基于xxx支持包,是否下载安装,然后直接下载即可。(注意联网)
而最为常见是还是离线安装方式。可以直接双击下载的文件安装,也可以在软件界面内点击Package Installer来进行安装,效果一样。
但是在这里往往会遇到一个问题,那就是包安装失败的问题,目前来说,我遇到这个问题100%是管理员权限的问题,正是之前提到的安装路径更换需要管理员权限运行。最简单的方法就是关闭程序,右键,以管理员身份运行,但是每次都点也很麻烦,所以我建议出现问题的可以直接设置快捷方式的属性:
完成了以上内容,Keil的安装基本完成,接下来就是对Keil的配置操作了,这部分内容可以提供你编程的速度和效率。以下操作内容基本是操作该软件的设置。提前告知位置:Edit -> Configuration(在最后)
众所周知,STM32的库函数都特别长,那我怎么保证我没有输入错误呢?主要依靠的就是代码联想和代码补全功能。Keil虽然显得很有年代,但其实Keil是具有代码联想和代码补全功能的!
而且这个设置默认是打开的,查看方法很简单,打开设置,选择Text Completion
用Keil打开一个工程,会看到如下界面:
用四个字来形容,那就是又小又丑,不太适合编程,于是,优化界面就显得很重要了
仍然是打开设置,选择Color&Fonts
有意思的是,虽然每一项都设置了字体的选项,但一旦设置字体,所有的都会改变(这显然得要的嘛)字体大小同理。
另外,需要注意的是,所有主题相关的更改,都会体现在文件global.prop中,而这个文件就在Keil安装根目录下,右键快捷方式选择打开文件所在位置即可找到。因此,如果想要快速更换主题,可以在网上找一些大佬们设置好的主题,直接替换即可。但建议最好替换完全一点。
仍然打开设置,选择Shortcut Keys
然后选择对应的功能进行设置即可。建议将Comment Selection 和Uncomment Selection 设置快捷键,分别是注释选中行和取消注释选中行,但这个功能有点缺陷,就是这个“选中”是真的选中,而不能仅仅是鼠标光标停在某一行,有点奇怪。。。
快速模板提供了一个随时添加一个小模块的功能,可以在一定程度上加快程序的编写。
进入后,右键:
这个功能可以用来编辑函数前的注释,非常好用。
参考链接:https://blog.csdn.net/u012121390/article/details/113861794?utm_source=app&app_version=4.14.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
在使用Keil时,发现一个问题,那就是不同编码格式下的字体不一样(虽然设置的字体是一样的),主要表现为UTF-8格式下可以支持常用的编程字体,比如Fira Code,但是GB2312格式下却不支持,然而现在很多例程都是GB2312的格式,作为一个美化狂,不能忍受这个问题,于是就去找了一些相关的美化操作,没想到,还真找到了,hh,可以参考这个链接。但是很无奈的是,和博主聊过之后才发现,博主电脑上是支持的,但我这就是不行,各种方法都试过了,就很无奈。最后还是无意间找到一个替代品,参考这个链接。虽然不能集成到Keil中,但总的来说使用很方便,就当记录一下了。
之前经过自己的试验,发现将代码文件转化编码格式会出现很多意想不到的问题,比如自带字库的LCD12864模块,需要注意:这个自带的字库的编码方式是GB2312,即Keil默认的中文编码格式,也就是说如果你的.c文件编码格式为UTF-8,那么你写的中文就不能被LCD模块识别,从而导致乱码,这个问题估计没几个人会遇到,但一旦遇到,估计就是卡好几天,还得质疑LCD是不是烧了。。。
在遇到这个问题之后,我在反思为什么我想要将代码文件的编码格式转换成UTF-8,原因就是我想要美化字体,但是中文编码格式下不支持很多编程字体,那么有没有什么办法可以不改变编码格式而且也能有好看的字体呢?还真有。参考MATLAB,我们可以考虑使用混合字体,这里推荐一个混合字体,也是最为常见的混合字体:Consolas+微软雅黑,就不放下载链接了,大家可以上网搜一下,资源很多。
最近使用Keil遇到一个很离谱的事情,那就是发现程序无理报错 undefined identifier,而且程序确定是对的,这就很离谱了,经过一通查找,最后无意间发现,其报错指向的头文件似乎不是我打开的那个,但是名字却是完全一样的,这就很奇怪了,我一开始还以为是写程序的人疏忽了,但是工程文件夹下却只有一个文件。然后我把所有已打开的文档全部关闭,然后再重新打开工程,意外发现,那个头文件,竟然还是我修改之前的文件。。。
到这里,基本明白了是怎么回事,Keil留有一个功能很有意思,那就是会记录你这个工程打开了哪几个文件,然后在你下次打开的时候直接读取“记忆”,这样就方便开发人员,但是实际上它打开的是缓存文件,如果你在关闭工程之后又移动了它的路径,那就完蛋了,它打开了缓冲文件你改动是没办法指向原文件的,也就意味着你改动的其实并不是真正的文件。。。。。
所以,为了避免这种尴尬的事情再次发生,个人觉得应该得改变一下使用习惯。一个就是关闭所有文档之后再关闭工程,一个就是要学会识别这种缓冲文件,其特点就是文件名都大写了。