微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > lcd12864程序在keil中出现好多重新定义,尝试了很多办法都改不了,求助大家了

lcd12864程序在keil中出现好多重新定义,尝试了很多办法都改不了,求助大家了

时间:10-02 整理:3721RD 点击:
#ifndef __LCD12864_H
#define __LCD12864_H
#include<reg52.h>
#include<intrins.h>

//---重定义关键词---//
#ifndef         uchar
#define uchar unsigned char
#endif
#ifndef         uint
#define uint unsigned int
#endif
#ifndef data12864
#define  data12864  P0
#endif
sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;
sbit rst_12864 = P2^3;
unsigned char read12684_data(uchar address);//12864读数据
void busychk_12864(void);//12864,忙碌检查
void write12864_comand(uchar comand);//12864写命令
void write12864_data(uchar dat);//12864写数据
void initial_12864(); //12864初始化
void clear_CGRAM12864();//清空CGRAM
void delay_12864(uint a);
void write12864_address(uchar x,uchar y);//地址设置  第x行 第y列
void ShowStringPos(uchar x, uchar y,uchar *s);//写英文字符串,一行写满自动换行
void ShowGBString(uchar x, uchar y, uchar *s);//显示多个汉字
uchar code wendu[] = {"温度:  66.6 ℃"};
uchar code shidu[] = {"湿度:  66.6 %"};
uchar code mima[] = {"请输密码"};
uchar code succeed[]={"密码输入正确"};
uchar code fail[]={"密码输入错误"};
uchar code kaiji[]={/*--  调入了一幅图像:C:\Users\Administrator\Pictures\无标题.bmp  --*/
/*--  宽度x高度=128x64  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
0x00,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,
0x0F,0xCF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF3,0xE0,
0x06,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,
0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x00,
0x01,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x00,
0x01,0xCE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x00,
0x03,0x03,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x80,
0x00,0x04,0x00,0x00,0x00,0x18,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,};
uchar code ren[]={/*--  调入了一幅图像:C:\Users\Administrator\Pictures\user9_16x16.bmp  --*/
/*--  宽度x高度=16x16  --*/
0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x18,0x38,0x18,0x38,0x1C,0x78,0x1F,0xF8,0x0F,0xF0,
0x07,0xE0,0x0F,0xF0,0x14,0x38,0x13,0xF8,0x10,0x78,0x10,0x78,0x10,0x78,0x0F,0xF0}

#endif




#include "lcd12864.h"
void busychk_12864(void)  //忙碌检测
{
        uchar busytemp = 0x80;
          E = 0;
         RW = 1;
         RS = 0;
         E = 1;
        while((busytemp & data12864));
        E = 0;
}

Build target 'Target 1'
compiling iMAIN.c...
DHT11.H(16): error C141: syntax error near 'void'
iMAIN.c(80): warning C316: unterminated conditionals
compiling LCD12864.c...
LCD12864.C(2): error C141: syntax error near 'void'
LCD12864.C(3): error C231: 'busychk_12864': redefinition
LCD12864.C(3): error C141: syntax error near '{'
LCD12864.C(5): error C231: 'E': redefinition
LCD12864.C(5): error C231: 'E': redefinition
LCD12864.C(6): error C231: 'RW': redefinition
LCD12864.C(6): error C231: 'RW': redefinition
LCD12864.C(7): error C231: 'RS': redefinition
LCD12864.C(7): error C231: 'RS': redefinition
LCD12864.C(8): error C279: 'E': multiple initialization
LCD12864.C(8): error C231: 'E': redefinition
LCD12864.C(8): error C231: 'E': redefinition
LCD12864.C(9): error C141: syntax error near 'while'
LCD12864.C(9): error C141: syntax error near '&', expected ')'
LCD12864.C(9): error C129: missing ';' before ')'
Target not created
不是所有程序,第一段是头文件,第二段是lcd12864程序的第一个子程序,在这个子程序开始就报错了


对头文件不熟,是不是跨文件调用没有加extern

尝试过了,还是不行啊

while((busytemp & data12864));多了一对括号

redefinition的错误是你在多个文件里定义了同样的一个名称,查查所有的程序和头文件吧

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top