标题: 求助Keil编码错误 [打印本页]

作者: aaaakk.    时间: 2020-4-30 08:57
标题: 求助Keil编码错误
求助Keil编码错误
error C267: 'lcd_write_com': requires ANSI-style prototype



请问Keil软件出现这个错误什么意思啊?怎么改呢

源代码:#include <reg52.h>
#include "intrins.h"
#include "24c02.h"
#include "music_code.h"
#define uchar unsigned char
#define uint unsigned int

uchar code tabe1[]="20  -  -";            //液晶一直显示的字符
uchar code tabe2[]="  :  :      ";
uchar code tabe3[]="Alarm set:";
uchar miao,fen,shi,nian,yue,ri,week,wd_flag,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alarm_fen,alarm_miao,alarm_shi_2,alarm_fen_2,alarm_miao_2;
uchar flag=1,count=0,flag_up=0,flag_down=0,flag_alarm=0,alarm_on,alarm_count=0,done=0,alarm_on_2,alarm_num;                //flag为1时,代表设置的初始入口,done为0时,代表进入设置后等待设置完毕 ;count与alarm_count为设置光标所在处号码
uint wendu;
uchar Count2;  //闹钟定时器计数

//定义IO
sbit DQ = P1^3;                         //ds18b20温度传送数据IO口
sbit ds1302_rst = P1^2;                 //1302复位
sbit ds1302_io  = P1^1;                 //数据输入输出
sbit ds1302_sclk= P1^0;                 //串行时钟
sbit alarm_out  = P2^3;                                        //闹钟输出
sbit lcd1602_rs = P3^5;                                 // 1602命令、数据选择
sbit lcd1602_rw = P3^6;                                    // 1602写
sbit lcd1602_e  = P3^4;                                 // 1602使能
sbit set = P3^0;                                                //选择按键
sbit up  = P3^1;                                                //加
sbit down= P3^2;                                                //减
sbit nao = P3^3;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;

/****************************显示部分*****************************/
void write_time1(uchar add,uchar date)    //日期送显示
{        
        uchar shi,ge;
        shi=date/10;
        ge=date%10;
        lcd_write_com(0x80+add);      问题出在这里
        lcd_write_date(0x30+shi);
        lcd_write_date(0x30+ge);
}


作者: xxpp2011    时间: 2020-4-30 10:47
LCD12864的驱动程序放出来才知道哪里出了问题,有没有定义lcd_write_com(uchar cbyte)这个函数
作者: 刘工2020    时间: 2020-4-30 10:48
lcd_write_com(0x80+add);这个函数在编译时无法获取其原型。
要么把 lcd_write_com(0x80+add);函数体放在调用它的函数前面,要么在前面添加 lcd_write_com(0x80+add);函数的原型声明
作者: 刘工2020    时间: 2020-4-30 10:57
你把这个lcd_write_com()函数放在你void write_time1(uchar add,uchar date)之前
要么在前面添加lcd_write_com()函数的原型声明
作者: ly1972001    时间: 2020-4-30 11:07
没有提前声明函数原型,或者声明的lcd_write_com函数式没有形参。
作者: wanghz12    时间: 2020-4-30 11:15
前面没有声明,要先声明再使用。
作者: true_admin    时间: 2020-4-30 11:26
你的 lcd_write_com函数声明和定义是怎样的
作者: hangsy    时间: 2020-4-30 11:39
你这个代码不全,没法改,除了51的头文件你这个应该还调用了其他自定义的头文件,出现错误的那个地方的函数在你发的这段程序里没有声明,那么可能是在其他几个自定义头文件中有声明,可以看看这个函数所在的地方
作者: aaaakk.    时间: 2020-4-30 13:51
刘工2020 发表于 2020-4-30 10:57
你把这个lcd_write_com()函数放在你void write_time1(uchar add,uchar date)之前
要么在前面添加lcd_write ...

那么怎么声明呢
作者: aaaakk.    时间: 2020-4-30 13:51
ly1972001 发表于 2020-4-30 11:07
没有提前声明函数原型,或者声明的lcd_write_com函数式没有形参。

怎么声明呢,哥
作者: piliming    时间: 2020-4-30 14:08
很明显啊,你的LCD的.h文件需要include在你的main.c里面
作者: lzw1997    时间: 2020-4-30 14:18
首先,你的lcd.h头文件有没有加,其次你的这个出问题的函数参数对不对




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1