新人求助!关于LCD1602的驱动程序
时间:10-02
整理:3721RD
点击:
初学单片机,在清屏函数上出错了不知道怎么改,望大神指点!谢谢~
错误:
main.c(35): error C202: 'Blue2': undefined identifier
代码:
#include <AT89C52.h>
#include <stdio.h>
#include "LCD1602.h"
#include "ov7670_fifo.h"
#include "UART.h"
//#define Blue2 0x051F
void CLR_Screen(unsigned int Blue2);
void main_init()
{
EX0=1; //oìía?D??
IT0=1; //???μ??óDD§
}
unsigned char bn=0;
void main(void)
{
unsigned int a,b;
unsigned int c_data;
unsigned char tmp;
main_init();
UART1_init();
UART1_Send_String("UART初始化成功!\r\n");
ILI9325_Initial();
UART1_Send_String("LCD初始化成功!\r\n");
/*???áBlue2*/
CLR_Screen(Blue2);
FIFO_CS_L();
FIFO_WE_L();
do
{
tmp = Sensor_init();
}
while(!tmp);
UART1_Send_String("OV7670初始化成功!\r\n");
EA=1; //总中断
while(1)
{
while(bn!=2)
{
}
FIFO_RRST_L(); //复位FIFO读指针
FIFO_RD_L();
FIFO_RD_H();
FIFO_RD_L();
FIFO_RRST_H();
FIFO_RD_H();
LCD_SetPos(0,239,0,319);
EA=0;
for(a=0;a<320;a++)
{
for(b=0;b<240;b++)
{
FIFO_RD_L();
c_data = CAMERA2MCU_Data;//读高位
c_data <<= 8;
FIFO_RD_H();
FIFO_RD_L();
c_data |= CAMERA2MCU_Data;//读低位
FIFO_RD_H();
Write_Data_U16(c_data);
}
}
EA=1;
bn=0;
}
}
void int0() interrupt 0
{
if(bn==0)
{
FIFO_WRST_L(); //复位FIFO写指针
FIFO_RD_L();
FIFO_RD_H();
FIFO_RD_L();
FIFO_WRST_H();
FIFO_RD_H();
bn=1;
FIFO_WE_H();
}
else if(bn==1)
{
FIFO_WE_L();
bn=2;
}
}
错误:
main.c(35): error C202: 'Blue2': undefined identifier
代码:
#include <AT89C52.h>
#include <stdio.h>
#include "LCD1602.h"
#include "ov7670_fifo.h"
#include "UART.h"
//#define Blue2 0x051F
void CLR_Screen(unsigned int Blue2);
void main_init()
{
EX0=1; //oìía?D??
IT0=1; //???μ??óDD§
}
unsigned char bn=0;
void main(void)
{
unsigned int a,b;
unsigned int c_data;
unsigned char tmp;
main_init();
UART1_init();
UART1_Send_String("UART初始化成功!\r\n");
ILI9325_Initial();
UART1_Send_String("LCD初始化成功!\r\n");
/*???áBlue2*/
CLR_Screen(Blue2);
FIFO_CS_L();
FIFO_WE_L();
do
{
tmp = Sensor_init();
}
while(!tmp);
UART1_Send_String("OV7670初始化成功!\r\n");
EA=1; //总中断
while(1)
{
while(bn!=2)
{
}
FIFO_RRST_L(); //复位FIFO读指针
FIFO_RD_L();
FIFO_RD_H();
FIFO_RD_L();
FIFO_RRST_H();
FIFO_RD_H();
LCD_SetPos(0,239,0,319);
EA=0;
for(a=0;a<320;a++)
{
for(b=0;b<240;b++)
{
FIFO_RD_L();
c_data = CAMERA2MCU_Data;//读高位
c_data <<= 8;
FIFO_RD_H();
FIFO_RD_L();
c_data |= CAMERA2MCU_Data;//读低位
FIFO_RD_H();
Write_Data_U16(c_data);
}
}
EA=1;
bn=0;
}
}
void int0() interrupt 0
{
if(bn==0)
{
FIFO_WRST_L(); //复位FIFO写指针
FIFO_RD_L();
FIFO_RD_H();
FIFO_RD_L();
FIFO_WRST_H();
FIFO_RD_H();
bn=1;
FIFO_WE_H();
}
else if(bn==1)
{
FIFO_WE_L();
bn=2;
}
}
呵呵,没看到你的CLR_Screen函数在哪里啊,而且你的是TFT屏吧,并不是1602屏嘛
把//#define Blue2 0x051F恢复了,不要屏蔽试试
提示未定义Blue2啊,根据错误提示改改吧,看起来问题不大。
看一下这三个。H文件里是否有定义
#include "LCD1602.h"
#include "ov7670_fifo.h"
#include "UART.h"
错误提示不是挺明显的嘛
你使用了未定义的blue2,找头文件定义应该就能解决
、
#define Blue2??0x051F;