找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1852|回复: 11
打印 上一主题 下一主题
收起左侧

求助Keil编码错误

[复制链接]
跳转到指定楼层
楼主
ID:741237 发表于 2020-4-30 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100黑币
求助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);
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:452950 发表于 2020-4-30 10:47 | 只看该作者
LCD12864的驱动程序放出来才知道哪里出了问题,有没有定义lcd_write_com(uchar cbyte)这个函数
回复

使用道具 举报

板凳
ID:740721 发表于 2020-4-30 10:48 | 只看该作者
lcd_write_com(0x80+add);这个函数在编译时无法获取其原型。
要么把 lcd_write_com(0x80+add);函数体放在调用它的函数前面,要么在前面添加 lcd_write_com(0x80+add);函数的原型声明
回复

使用道具 举报

地板
ID:740721 发表于 2020-4-30 10:57 | 只看该作者
你把这个lcd_write_com()函数放在你void write_time1(uchar add,uchar date)之前
要么在前面添加lcd_write_com()函数的原型声明
回复

使用道具 举报

5#
ID:236035 发表于 2020-4-30 11:07 | 只看该作者
没有提前声明函数原型,或者声明的lcd_write_com函数式没有形参。
回复

使用道具 举报

6#
ID:234355 发表于 2020-4-30 11:15 | 只看该作者
前面没有声明,要先声明再使用。
回复

使用道具 举报

7#
ID:741583 发表于 2020-4-30 11:26 | 只看该作者
你的 lcd_write_com函数声明和定义是怎样的
回复

使用道具 举报

8#
ID:606493 发表于 2020-4-30 11:39 | 只看该作者
你这个代码不全,没法改,除了51的头文件你这个应该还调用了其他自定义的头文件,出现错误的那个地方的函数在你发的这段程序里没有声明,那么可能是在其他几个自定义头文件中有声明,可以看看这个函数所在的地方
回复

使用道具 举报

9#
ID:741237 发表于 2020-4-30 13:51 | 只看该作者
刘工2020 发表于 2020-4-30 10:57
你把这个lcd_write_com()函数放在你void write_time1(uchar add,uchar date)之前
要么在前面添加lcd_write ...

那么怎么声明呢
回复

使用道具 举报

10#
ID:741237 发表于 2020-4-30 13:51 | 只看该作者
ly1972001 发表于 2020-4-30 11:07
没有提前声明函数原型,或者声明的lcd_write_com函数式没有形参。

怎么声明呢,哥
回复

使用道具 举报

11#
ID:741674 发表于 2020-4-30 14:08 | 只看该作者
很明显啊,你的LCD的.h文件需要include在你的main.c里面
回复

使用道具 举报

12#
ID:539117 发表于 2020-4-30 14:18 | 只看该作者
首先,你的lcd.h头文件有没有加,其次你的这个出问题的函数参数对不对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表