我用keil编译老是有问题warning C318: can't open file 'i2c.h'和error C129: miss‘;’before ’code‘

#include <reg51.h>
#include<i2c.h>
#define power_down 0x00
#define power_on 0x01
#define reset 0x07
#define h_resolution_mod 0x10
#define m_resolution_mod 0x13
#define l_resolution_mod 0x16
#define onetime_h 0x20
#define onetime_m 0x23
#define onetime_l 0x26
#define write_1710 0x46
#define read_1710 0x47
sbit LCD_RS = P3^4 ;
sbit LCD_RW = P3^5 ;
sbit LCD_EN = P3^3 ;
uchar code cdis1[ ] = {" NFU "} ;
uchar code cdis2[ ] = {" illum: Lux "} ;
uchar code cdis3[ ] = {" BH1710 ERR0R "} ;
uchar code cdis4[ ] = {" PLEASE CHECK "} ;
unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00} ;
unsigned int bh;
unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ;
#define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;

麻烦各位大神!!!分别是第二行和第17行

你没把I2C.H这个头文件和这个文件放在同一个目录下,所以编译器表示没找到。
uchar不是一种数据类型,必须在使用之前先定义#define uchar unsigned char
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-16
确定有i2c.h这个文件?
uchar 这个应该是你自定义的类型 你也确定有?

编译器找不到这两个 你再看看吧
屏蔽第二行 uchar改unsigned char 看看有没有报错

...C318: can't open file 'i2c.h'和error C129: miss‘;’before...
你没把I2C.H这个头文件和这个文件放在同一个目录下,所以编译器表示没找到。uchar不是一种数据类型,必须在使用之前先定义#define uchar unsigned char

单片机keil u4程序编译出错
主要原因是头文件lcd_160128.h 找不到,请在编译环境中给出具体的文件路径。sheji.c(6): error C129: missing ';' before 'LCD_Initialise' ,这一段删掉或者注释掉再看看,一般重新写一遍就好了。

相似回答