这个是小弟看TFTLCD显示实验时ILI93xx.c文件里的u16 LCD_RD_DATA(void)的程序,我将原来程序中改成了下面红色字体的成分,编译后他显示
..\HARDWARE\LCD\ILI93xx.c(116): error: #20: identifier "LCD_RS" is undefined
..\HARDWARE\LCD\ILI93xx.c: LCD_RS=1;
..\HARDWARE\LCD\ILI93xx.c: ^
..\HARDWARE\LCD\ILI93xx.c(117): error: #20: identifier "LCD_CS" is undefined
..\HARDWARE\LCD\ILI93xx.c: LCD_CS=0;
..\HARDWARE\LCD\ILI93xx.c: ^
..\HARDWARE\LCD\ILI93xx.c(119): error: #20: identifier "LCD_RD" is undefined
..\HARDWARE\LCD\ILI93xx.c: LCD_RD=0;
..\HARDWARE\LCD\ILI93xx.c: ^
..\HARDWARE\LCD\ILI93xx.c: ..\HARDWARE\LCD\ILI93xx.c: 0 warnings, 3 errors
..\HARDWARE\LCD\ILI93xx.c - 3 Error(s), 0 Warning(s).
可是程序里有 "lcd.h",而lcd.h文件里已经定义了 LCD_RS LCD_CS LCD_RD,为什么会显示这个呢?后来我在ILI93xx.c文件里又定义了一次才可以,求解释!!!
//读LCD数据
//返回值:读到的值
u16 LCD_RD_DATA(void)
{
u16 t;
GPIOB->CRL=0X88888888; //PB0-7 上拉输入
GPIOB->CRH=0X88888888; //PB8-15 上拉输入
GPIOB->ODR=0X0000; //全部输出0
#if LCD_FAST_IO==1 //快速IO
LCD_RS_SET;
LCD_CS_CLR;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD_CLR;
if(DeviceCode==0X8989)delay_us(2);//FOR 8989,延时2us
LCD_RD_SET;
t=DATAIN;
LCD_CS_SET;
#else
LCD_RS=1;
LCD_CS=0;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD=0;
LCD_RD=1;
t=DATAIN;
LCD_CS=1;
#endif
GPIOB->CRL=0X33333333; //PB0-7 上拉输出
GPIOB->CRH=0X33333333; //PB8-15 上拉输出
GPIOB->ODR=0XFFFF; //全部输出高
return t;
}
/////////////////////////////////////////////////////////
if(LCD_FAST_IO==1) //快速IO
{
LCD_RS_SET;
LCD_CS_CLR;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD_CLR;
if(DeviceCode==0X8989)delay_us(2);//FOR 8989,延时2us
LCD_RD_SET;
t=DATAIN;
LCD_CS_SET;
}
else
{
LCD_RS=1;
LCD_CS=0;
//读取数据(读寄存器时,并不需要读2次)
LCD_RD=0;
LCD_RD=1;
t=DATAIN;
LCD_CS=1;
}
|