附录B KeilC51编译常见错误与警告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

317
附录B Keil C51 编译常见错误与警告
在利用Keil C51进行单片机软件程序的编写、调试过程中,经常会出现这样的现象,因为疏忽大意或是对于程序编写规则的不熟悉等原因,工程编译不能正常通过,导致最终未能生成单片机用于下载烧片所需的.hex 文件。

以下列举出了一些在工程编译过程中,常见的警告或错误的提示信息,以及解决这些警告或错误的具体方法;给出了常见编译器错误信息的查找方法和Keil C51编译器常见错误与警告提示信息中英文对照表,供读者在工程调试和编译过程中参考。

一、常见错误与警告现象
现象一:部分程序如下:
{

ET0=1 ET1=1; … }
错误编号:C141
原因:程序LED.C 第49行语句前缺少分号。

解决方法:语句 ET0=1后加";"即:ET0=1; 现象二:部分程序如下
:
{ …
ET0=1; ET1=1; … }
错误编号:C100、C141
原因:程序LED.C 里53行有中文标点符号“;”。

解决方法:将中文符号改变成英文符号“;” 现象三:
318
警告编号:L16
原因:delay2( )函数未被其它函数调用,它会占用程序存放空间。

解决方法:
(1)删除delay2( )函数;
(2)检查程序,某调用该子函数;
(3)利用注释“/* … */”将整个delay2()函数体包含,可保留该函数但不被编译。

现象四:
警告/错误编号:C206,C267,C231
原因:‘delay ’函数未定义,即未编写程序内容或函数已定义但未作声明。

解决方法:(1)将该子函数放在调用它的主调函数前;
(2) 在调用它的主调函数前,对该函数进行声明。

现象五:
警告编号:C318
原因:在编译main.c 程序过程中由于main.c 使用了头文件包含#include “buzzer.h ”,
但编译器却找不见buzzer.h 头文件。

解决方法:找到相应的buzzer.h 或编写buzzer.h 文件,并存入到c:\keil 的相关目录中。

现象六:
319
错误编号:C237
原因:‘delay ’函数名称重复定义,即有两个重名的函数。

解决方法:改变其中一个函数的名称,使两个函数名称不相同。

现象七:
错误编号:C202
原因:变量‘sh ’未作定义声明,可能是拼写错误或是未区分大小写。

解决方法:(1)在使用该变量前对该变量定义声明;
(2)在确定该变量不使用时,将其删除; (3)改正错误的拼写。

二、Keil C51错误与警告的查询
前述列举的警告和错误,仅仅是编译软件给出错误或警告的一个部分,对于大多数的错误和警告对应的原因及解决实例,读者可以参照下面的过程自行查找Keil C51自带的帮助文件,以求解决可能出现的问题。

Keil C51错误与警告包含在名为errors.chm 的文件中,该文件一般存放在keil 安装目录中,其路径为…\Keil\C51\HLP\errors.chm ,如下图所示。

打开该文件,其中列出了600
多条错误与警告的帮助信息,读者可以自行参阅。

三、Keil C51编译器常见错误与警告提示信息中英文对照表
320
321
322。

相关文档
最新文档