报错具体内容:
Hardware\Serial.c(150): error: #928: incorrect use of va_start
va_start (arg, format); //浠巉ormat寮€濮嬶紝鎺ユ敹鍙傛暟鍒楄〃鍒癮rg鍙橀噺Hardware\Serial.c(150): error: #253: expected a ","
va_start (arg, format); //浠巉ormat寮€濮嬶紝鎺ユ敹
Hardware\Serial.c(150): error: #29: expected an expression
va_start (arg, format); //浠巉ormat寮€濮嬶紝鎺ユ敹鍙傛暟鍒楄〃鍒癮rg鍙橀噺
报错原因是以前使用过ADS软件,那么安装新版本的keil(4.6以上)就会有环境变量冲突的问题,ADS与keil5共存,va_start所在的头文件指向了ADS的文件夹。因为无法正常调用vs_start,所以会有error:#29的出现。
解决思路:1、添加新的环境变量,将头文件指向keil安装路径;
2、粗暴的方法:卸载ADS并删除注册表重启电脑,有点麻烦。
解决方法:1、右键“此电脑”,点击“属性”,打开“高级系统设置”,打开“环境变量”,在下面的“系统变量”中添加:(变量名)ARMCC5INC,值选择keil5的安装路径中的ARM\ARMCC\include
(网上也有人添加的变量名是ARMCC5LIB,值选择对应的lib文件夹可以解决)
更改完成后把项目关闭并使用keilkill清理原本生成的文件,重新打开项目并编译即可。
编译结果0 Error (s)!!!!撒花!!