找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 645|回复: 2
收起左侧

单片机LCD12864字符串问题

[复制链接]
ID:692931 发表于 2022-4-7 19:49 | 显示全部楼层 |阅读模式
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++);
}

回复

使用道具 举报

ID:121859 发表于 2022-4-8 12:16 | 显示全部楼层
12864最多一行只能显示8个汉字,你的字符串里面有一个超了。另外,还需要送显示地址吧,没有看到这个。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2022-4-8 13:58 | 显示全部楼层
你是调用别人的函数来处理【LCD12864字符串】的,所以就必须依据这个函数的要求来。
研究读通函数的定义吧。
例如:沙发提到的【12864最多一行只能显示8个汉字】,普通函数是这样的。
如果:函数能自动换行,就可以显示16个了。
再如果:函数能滚动显示,就可以显示更多个了。
所以,你想用什么函数,就先读通它的输入、输出要求。问题就全OK了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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