粗大问题了
时间:10-02
整理:3721RD
点击:
在写电子时钟和温度检测程序时,未模块化编程之前编译成功,但模块化之后出现这样的问题:SRC\LCD1602.C(34): error C208: '_write_1602': too many actual parameters另附图:
![](../imgqa/ele/mcu/mcu-3721rd.com-396030mwnskg3q3k.jpg)
求指导,本人编程小白。
![](../imgqa/ele/mcu/mcu-3721rd.com-396030mwnskg3q3k.jpg)
求指导,本人编程小白。
如图:
太多实际参数。
那要怎么解决?
没有 是前面定义有了 1表示第一行 2第二行 0表示从第液晶第一位开始读入数据
你那函数定义不对吧 楼上已经说明白了问题。你再从新定义一个与Write_1602();相区别的就行。
定义应该没问题,是用指针写的函数。这个样子:
void write_1602(uchar dat_com,uchar date)
{
lcd_rs=dat_com;
P0=date;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
void display0(uchar y,uchar x,uchar *s){
if(y==1)
write_1602(0,0x80+x);
if(y==2)
write_1602(0,0x30+x);
while(*s)
write_1602(1,*s++);
}
你再看看。
实参与形参个数应该相等,类型应该匹配。这是C语言中讲过的。
你调用的时候出问题了 你不是调用的DISPLAY0(,,)这个函数 你调用的是WRITE_1602();
好的 谢谢你 我再自己琢磨琢摩
真的是啊 太谢谢你了
是的。你函数调用的实参多余函数的形参了。你那个写1602的函数就2个参数,你放三个上去当然提示了。模块分的蛮细的挺好的。
你说得对,我是新手,最近刚学模块化编程。有点棘手。