zhangyu111 发表于 2021-5-24 18:35 LcdReset(); //LCD1602初始化 DelayMs(10); sprintf(temp,"1111111111111111");//更新显示 DispStr(0,0,(unsigned char *)temp);//打印显示 sprintf(temp,"1111111111111111");//更新显示 DispStr(0,1,(unsigned char *)temp);//打印显示 这些是函数声明吗? 不是声明你放文件开头还不注释,又不是函数内容。想干嘛? |
本帖最后由 名字不是重点 于 2021-5-25 09:14 编辑 void Test_display(){ LcdReset(); //LCD1602初始化 DelayMs(10); sprintf(temp,"1111111111111111");//更新显示 DispStr(0,0,(unsigned char *)temp);//打印显示 sprintf(temp,"1111111111111111");//更新显示 DispStr(0,1,(unsigned char *)temp);//打印显示 } 改成这样,再编译一下 |
名字不是重点 发表于 2021-5-24 11:39 这一段话什么意思啊 ,我在.h 文件中看了声明函数 所有的声明函数都在.c中出现了 就是已经一对一了 所以我就不知道这段代表啥了 |
LCD1602显示℃ 这种自定义符号 http://www.51hei.com/bbs/dpj-200685-1.html LCD1602液晶最新资料 说明了具体的时间要求 http://www.51hei.com/bbs/dpj-205768-1.html |
低级错误: 声明完了直接进入代码,连个函数的基本格式都没有?? #define CLR_RS (RS=0) #define SET_RS (RS=1) #define CLR_RW (RW=0) #define SET_RW (RW=1) #define CLR_EN (EN=0) #define SET_EN (EN=1) //这里应该要有void 函数名() //这里还要有“{" LcdReset(); //LCD1602初始化 DelayMs(10); sprintf(temp,"1111111111111111");//更新显示 DispStr(0,0,(unsigned char *)temp);//打印显示 sprintf(temp,"1111111111111111");//更新显示 DispStr(0,1,(unsigned char *)temp);//打印显示 //这里还要有”}" /*********************************************** 函数名称:DispStr 功 能:让液晶从某个位置起连续显示一个字符串 参 数:x--位置的列坐标 y--位置的行坐标 再认真检查一下吧。 |
compiling 1602.c... 1602.C(25): error C231: 'LcdReset': redefinition ==>LcdReset重复定义 1602.C(26): error C141: syntax error near '10' ==>语法错误,在字符‘10’附近 1602.C(26): error C231: '_DelayMs': redefinition ==>_DelayMs重复定义 1602.C(27): error C141: syntax error near '<string>' ==>语法错误,在字符‘<string>’附近 1602.C(28): error C141: syntax error near '0' ==>语法错误 。 。 。 |
npn 发表于 2021-5-24 09:55 这个是1602.c main 没有贴出来 main函数没有问题 |
名字不是重点 发表于 2021-5-24 00:34 应该不是这个问题 我复制来都特意编译过 没有问题的 |
main函数去哪了? |
在lcd1602.h中,使用 #ifndef #define 来防止重复加载 |
这段代码只是LCD1602的驱动模块,不一定有错误。其只能由主程序调用,不可以单独编译。只算是整个物体上的一个构件。 |
认真检查代码中的符号: “;” “()” “,” “{}” 等等。。。 因为网上来的代码,编码变了,可能更改了全角/半角. |