找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 401|回复: 7
收起左侧

求思路 串口助手发送一连串字符并在单片机LCD1602A上实时显示出来,并且可以自动换行

[复制链接]
ID:1110076 发表于 2024-1-25 00:32 来自手机 | 显示全部楼层 |阅读模式
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

在串口助手发送一连串的字符后,显示的总是只有第2个字符
初学者求大神带带这种情况应该怎么解决
回复

使用道具 举报

ID:161164 发表于 2024-1-25 07:59 | 显示全部楼层
uchar RecBuff[32];

if(RI==1)
{
static uchar i = 0;
RI=0;
RecBuff[[i] = SBUF;
i++;
if(i>=32)i=0;
}
回复

使用道具 举报

ID:895440 发表于 2024-1-25 09:07 | 显示全部楼层
首先你先做到串口接收所有的字符,并在串口助手中返会
然后再做到在lcd上显示字符
两者结合起来就是,至于换行就是数你的lcd一行是几个字符,用个变量表示这是第几个字符,然后换行
回复

使用道具 举报

ID:646520 发表于 2024-1-25 10:30 | 显示全部楼层
①实现一串数据的完整接收,将这一帧数据原封不动的在发出来。首先你得知道一帧数据是什么时候结束的,根据帧尾还是超时接收?
②实现字符串在屏幕的显示函数
③将①正确接收的字符数组传入②函数。
就你的描述来看,猜测没有完整接收到字符串。
回复

使用道具 举报

ID:1110076 发表于 2024-1-25 10:48 来自手机 | 显示全部楼层
雷欧库珀 发表于 2024-1-25 09:07
首先你先做到串口接收所有的字符,并在串口助手中返会
然后再做到在lcd上显示字符
两者结合起来就是,至 ...

不好意思,为什么还要在串口助手中返回呢
回复

使用道具 举报

ID:73992 发表于 2024-1-25 12:22 来自手机 | 显示全部楼层
首先,设立一块内存区域每行16字节。具体设置多少行,依据需求和单片机容量。第二将1602的32个字符显示映射到这块内存地址空间的首2行。并且增加一个变量,控制1602显示该内存的行数。当串口接收的数据大于16,这个变量指定1602显示下一行。
回复

使用道具 举报

ID:1110076 发表于 2024-1-25 16:05 来自手机 | 显示全部楼层
最后一个夏天1 发表于 2024-1-25 10:30
①实现一串数据的完整接收,将这一帧数据原封不动的在发出来。首先你得知道一帧数据是什么时候结束的,根据 ...

是的,每次通过串口助手发送字符的时候,显示屏上都只显示这段字符中的第二个字符
回复

使用道具 举报

ID:895440 发表于 2024-3-3 13:08 | 显示全部楼层
米小忙 发表于 2024-1-25 10:48
不好意思,为什么还要在串口助手中返回呢

保证你确实接收成功了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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