背景:最近使用STC15F2K16S2做个小项目,在使用Keil C51的时候遇到的事情做点总结。
1、已经安装了ARM for Keil,我需要使用51的单片机版本怎么办?
答:
1、已有stm32版本的keil,再安装C51版本的keil。两者需要安装到同一个安装路径内。
网上有说需要先安装stm32版本,再安装C51版本,给的理由是:
如果先安装C51的话,在编译STM32时,语法检测及提示可能会无法正常使用,这对调用库函数的影响是非常大的。
由于我是先安装的stm32,后安装的C51,所以没有尝试先安装C51,再安装stm32是否会出现这种情况。有兴趣的同学可以试一下效果。
1)、C51 for keil 官网下载传送门:
https://www.keil.com/download/product/
2)、官网下载要注册邮件、姓名什么、以及慢的因素。我已经上传了已下载完的版本。
传送门:https://download.csdn.net/download/qq_41359157/15599641
3)、安装与破解。
安装:
右击–》以管理员身份运行
一路next。正常来说,如果你之前装过stm32版本,这个会默认你上次安装stm32的路径,以及使用人。邮箱、公司等。
2、加载STC单片机pack资源。
1)、首先需要下载stc-isp。这个可以网上自行下载。或者传送门:
stc-isp-15xx-v6.88.zip:https://download.csdn.net/download/qq_41359157/15599821
破解:
复制CID到注册机。
2)、添加文件资源
解决warning:
1、最有效的就是直接屏蔽warnning的行号
比如:
*** WARNING L57: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
直接打上对应的行号数字,记得英文逗号
然后编译
剩下两种也可以用,但是没有第一种那么彻底
2、*** WARNING L15: MULTIPLE CALL TO SEGMENT
可重入函数属性允许您声明可能可重入的函数,因此可以递归调用。 例如:
int calc (char i, int b) reentrant {
int x;
x = table [i];
return (x * b);
}
3、勾选Options for Target–>Device(Use Extended Linker (LX51)) instead of BL51
LX51 misc–>Misc controls–>REMOVEUNUSED