1. keil编译问题,如下图
多数情况是,不用关心警告,一般不影响跑程序
1、也许你写了一段程序,没用上
2、也许你放了个标号,不必要
3、也许有个变量多余了
4、创建项目时的STARTUP.A51是不需要的,在C语言也许有用(都不要)
2. 在Keil编译过程中出现问题
你这段代码错误太多了.
何止上面一个错误啊...........
给你指出几个吧
#include <reg52.h>
#include<stdio.h>
//首先--------加入------------------
#include <INTRINS.H>
//----------------------------------
#define uchar unsigned char
#define uint unsigned int
//全局运算变量
uint Speed = 40;
uint width = 12;
uint Factflux = 80;
uint Wantflux = 80;
bit Setwidth = 0;
bit Setflux = 0;
uchar Numcount = 0;
uchar Keynum;
sbit E=P3^0;
sbit RST=P0^3;
sbit RW=P0^4;
sbit RS=P0^5;
sbit L=P0^6;
sbit R=P0^7;
sbit Busy=P2^7;
//字模
uchar code Shi[]={/*实 CCAB5 */
0x00,0x10,0x0C,0x04,0x4C,0xB4,0x94,0x05,
0xF6,0x04,0x04,0x04,0x14,0x0C,0x04,0x00,
0x00,0x82,0x82,0x42,0x42,0x23,0x12,0x0A,
0x07,0x0A,0x12,0xE2,0x42,0x02,0x02,0x00};//这里少一个分号------
//函数声明
void Delay(uint m);
void Checkbusy(void);
void Sdata(uchar ddata);
void Scmd(uchar command);
void Init(void);
void Displayword(uchar page,row,uchar code *word,uint lengh);
void Displaynum (uchar page,row,uchar code *num,uint lengh);
//函数编程
void Delay(uint m)
{ uint i,j;
for(i=0;i<m;i++)
for(j=0;j<109;j++)
_nop_();
}
void Checkbusy(void)
{
E=1;
RS=0;
RW=1;
P2=0xff;
//这里的busy ,大小写错误
// while(!busy);
while(!Busy);
}
//这里也有问题..你括号是中文的
//void Sdata(uchar ddata )
void Sdata (uchar ddata)
{
Checkbusy();
RS=1;
RW=0;
P2=ddata;
E=1;
E=0;
}
void Scmd(uchar command)
{
//这里的不是分号是;号
// Checkbusy():
Checkbusy();
RS=0;
RW=0;
P2=command;
E=1;
E=1;
}
void Init(void)
{
RST=0;
Delay(150);
RST=1;
Delay(100);
L=1;
R=1;
Scmd(0x3f);
Scmd(0xc0);
Scmd(0x80);
Scmd(0x40);
}
//这种函数有问题uchar是define的,
//void Displayword(uchar page,row,*word,uint length)
void Displayword(uchar page,uchar row,uchar *word,uint length)
{
uchar i,j;
L=1;
R=0;
Wcmd(page);
Wcmd(row);
for(i=0;i<length/2;i++)
Sdata(word[i]);
Scmd(page+1);
Wcmd(row);
for(j=length/2;j<length;j++)
Sdata(word[j]);
}
main()
{
Init(void);
while(1)
{
void DisplayWantflux(void);
void DisplayFactflux(void);
void DisplayWidth(void);
void DisplaySpeed(void);
void Display80(void);
void Display12(void);
void DisplayDanwei(void);
}
//////////////////////////////////
中间还有很多,,,懒得给你弄了
3. KEIL 编译 程序没问题就是编译出错
程序是没问题,关于楼上说的死循环是正常的。我编译不会出错。你出错提示是什么?你这样很难猜啊。如果你只想解决问题,可以新建一个项目,可能是项目配置错误。当然你也可以将所以项目设置恢复为默认值试试。右击项目,选择option for target,在弹出的对话框最下方的default按钮,注意这样要每个选项页都要点一次。 建议还是新建项目。
4. keil c编译问题
把新问件保存,把原文件移除,然后打开新文件,添加到工程里,再编译。选中“生成HEX文件”。
5. keil编译过程中的问题
图片是KEIL的HLEP文件截图,I/OERRORONINPUTFILE一般是板型选错了导致找不到对应的IO口,或者是头文件中没有做相应定义。
重入问题,看一下的代码编辑工具中除了KEIL还使用了什么其他代码编辑工具。
如果是在KEIL中打开了.LIST或者.M51文件,每一次修改.C文件后.LIST和.M51文件都会重新生成,所以也会提示重新装入,但是这个没影响。
6. keil编译中出现错误怎么办
1、打开软件project-new project创建一个工程,并为其选择一个存放目录。
2、对工程进行一些配置(project-options for target ‘target 1’)在output选项下的“create HEX file”前打上对号,工程编译之后能够输出一个可以下载的“HEX”文件。
3、为工程添加.C,.h文件,右键单击“source group 1”,应该就可以了。
7. keil编译过程中出现问题,不知道为什么
问题我已经远程帮你解决了,你之所以不能生成HEx,是你程序有个语法错误,在程序上面有点小数点字符,而不是因为这个警告,这类的警告不影响程序的Hex文件的生成。另外,你的C语言有点弱,你那个叫函数的定义,而非调用,把C语言复习一下,做一个优秀的单片机工程师,C语言必须做到精通。
8. keil4编译问题
你是说整个工程在E盘下无法正常build,但是移到C盘就可以吗?
9. Keil编译问题
连接错误,只声明了这几个函数,但是没有真正的实现。
如 void EXTI_Init(); 是声明
// 下面这个才是函数实现,你的工程中没有该函数的实现
void EXTI_Init()
{
// todo something
}
10. keil编译问题
从stm32f10x.h所在的位置,无法打开core_cm3.h这个文件,也就无法继续进行编译。
这种情况一般是工程的选项设置不完整,没有把对应的 include path 添加进去。