标题: 单片机LCD12864字符串问题 [打印本页]

作者: 1372478861    时间: 2022-4-7 19:49
标题: 单片机LCD12864字符串问题
unsigned char code rightString[] =  "当前距离为:";
unsigned char code errorString[] =  "错误!超出测量距离";
unsigned char *p;
如上定义两个字符串和一个指针

在以下判断中选择让指针指向不同的字符串地址

if((S>=700)||flag==1) //超出测量范围显示“-”
         {         
          flag=0;
        p = errorString;}
else
         {p = rightString;}

在主程序中向LCD12864传输显示字符

lcd12864_hanzi(p);

以下是函数的定义,可以确定的是LCD12864的驱动函数都没有问题,但就是字符串不显示

void lcd12864_hanzi(unsigned char *s)
{
        while(*s)
                lcd12864_wdat(*s++);
}


作者: zhxiufan    时间: 2022-4-8 12:16
12864最多一行只能显示8个汉字,你的字符串里面有一个超了。另外,还需要送显示地址吧,没有看到这个。
作者: yzwzfyz    时间: 2022-4-8 13:58
你是调用别人的函数来处理【LCD12864字符串】的,所以就必须依据这个函数的要求来。
研究读通函数的定义吧。
例如:沙发提到的【12864最多一行只能显示8个汉字】,普通函数是这样的。
如果:函数能自动换行,就可以显示16个了。
再如果:函数能滚动显示,就可以显示更多个了。
所以,你想用什么函数,就先读通它的输入、输出要求。问题就全OK了。




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