❶ keil编译错误如何解决
AT89S52共有256Bytes RAM,10个unsigned char型数据肯定没问题了,但是10个unsigned char型数组,如果每个数组维数为20,那就20*10=200bytes。
不知到LZ的情况是咋样的
建议:
1、如果数据>128Bytes <256Bytes 将数组定义添加idata
2、如果数据>256Bytes可选择带XRAM的单片机,将数组定义到xdata
3、尽量减少数据量,优化程序。
情况不明,只能考虑到这些了
如:
unsigned char idata a[]={0x00,.........};
unsigned char xdata a[]={0x00,.........};
❷ Keil的编译错误问题
根据LENGTH:082BH(2K)分析,ERROR L107错误的出现应该是你使用的Keil软件是一个评估软件(对代码有2K长度的限制)。
至于在选择的目标文件(就是存放这些C程序代码的文件)里面多了很多无用的C、H、LIB文件,只要里面的函数名和全局变量不同名并且不违背C51的语法,是不会影响程序的编译和运行的。C5会自动的把未被调用的函数和未使用的变量删除以减小代码的长度。
❸ keil编译的时候提示错误
keil中没有添加START_V3.A66文件,提示错误:No Algorithm found for Address 0x000000
❹ 用Keil编程序时编译有错误,怎么才能知道错误是什么呢
每个错误都有自己的标号,你可以根据标号在keil提供的帮助文件中搜索有关的详细内容,按下F1会弹出帮助文档,文档都是英文写的。
另外你双击错误时光标会自动跳到keil认为的错误行,实际错误就在那一行的附近
或者你可以把你的错误放在网络里面搜一搜,一般都会得到。
❺ 单片机keil编程出现错误,无法编译怎么办
#include <reg52.h>
sbit la=P2^6;
sbit wela=P2^7; ///////////////
void main()
{
wela=1;//锁存器打开
P0=0xfe;
wela=0;
la=1;
P0=0x06;
la=0;//前三行是段选,后三行是位选
while(1);
}
在编译的时候就会显示
LESSON.c(3):error c231:'al':redefinition
LESSON.c(8):erroe c202:'wela': undefined identifier
LESSON.c(10):error c202:'wela': undefined identifier
Target not created
❻ keil 编译错误信息
keil 如果你的函数名有被用到就不会出现这东西.
你肯定是这个函数名任何时候都没有用.
包括你的子函数里面..也没有调用.
所以才会出现这个.问题..
如果你这个代码 眼下还不想用..想先留着的话.
那就直接这样好了.
没有关系的..
如果不想出现碍眼的 警告.
就在连接器设置的地方设置为不报这个警告就好了.
不过建议还是不要这个干比较好
ls的这种方法不可取.让编译器/连接器 明显提示你有警告或错误那是个好现象
❼ keil 编译时出现这样的错误,怎么回事
这个问题分别是重复定义了么,怎么能是没注册呢!!!
对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern int i;这一句只是对变量i进行声明,在c文件的程序之前必须加上int i进行定义。extern int i=0;这一句声明和定义都做了。
对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明(不需要初始化),然后在一个c文件中定义(该初始化的要初始化)。如果在头文件中定义,则编译的时候会出现重复定义的错误。如果只有头文件中声明就会出现没有定义有警告。
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: K
MODULE: 222.obj (222)
出现上述错误则是因为变量k重复定义,把你的头文件中的变量定义前加extern(只是变量声明不用初始化),再在某一个你要调用该变量的c文件的程序之前再定义(注意第一个调用的c文件要负责附带初始化该变量,其他调用的c文件就不需要初始化过程啦)
❽ keil 4如何编译看程序有没有错误
没有逻辑错误的话,编译就会成功。编译的话点菜单的project->rebuild all target files
❾ keil软件怎么编译程序无结果显示
你的两个文件中可能都有main函数。
在keil编译器中,main函数是C函数的入口点,有且只有一个。所以你的程序在链接阶段发现了两个同名函数定义,所以给出了一个警告,又发现这两个同名函数还是main函数,所以错误提示。删掉一个就可以了。
❿ keil中编译错误,为什么呢
你这C语言的基础有点薄弱啊,出错是因为C语言规定,在函数体内,变量定义语句应该在最前边,结果你给放在中间了. 正确的写法如下:
#include<math.h>
#include<stdio.h>
#include<reg51.h>
void main(void)
{
float x;
float y;
SCON=0x52;
TMOD=0x20;
TH1=0xf3;
TR1=1;
for(x=-1.0;x<=1.0;x+=0.1)
{
y=acos(x);
printf("ACOS(%f)=%f\n",x,y);
getchar();
}
}