标题: 求思路 串口助手发送一连串字符并在单片机LCD1602A上实时显示出来,并且可以自动换行 [打印本页]

作者: 米小忙    时间: 2024-1-25 00:32
标题: 求思路 串口助手发送一连串字符并在单片机LCD1602A上实时显示出来,并且可以自动换行
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现,谢谢大家

在串口助手发送一连串的字符后,显示的总是只有第2个字符
初学者求大神带带这种情况应该怎么解决
作者: lkc8210    时间: 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;
}
作者: 雷欧库珀    时间: 2024-1-25 09:07
首先你先做到串口接收所有的字符,并在串口助手中返会
然后再做到在lcd上显示字符
两者结合起来就是,至于换行就是数你的lcd一行是几个字符,用个变量表示这是第几个字符,然后换行
作者: 最后一个夏天1    时间: 2024-1-25 10:30
①实现一串数据的完整接收,将这一帧数据原封不动的在发出来。首先你得知道一帧数据是什么时候结束的,根据帧尾还是超时接收?
②实现字符串在屏幕的显示函数
③将①正确接收的字符数组传入②函数。
就你的描述来看,猜测没有完整接收到字符串。
作者: 米小忙    时间: 2024-1-25 10:48
雷欧库珀 发表于 2024-1-25 09:07
首先你先做到串口接收所有的字符,并在串口助手中返会
然后再做到在lcd上显示字符
两者结合起来就是,至 ...

不好意思,为什么还要在串口助手中返回呢
作者: lyonkon    时间: 2024-1-25 12:22
首先,设立一块内存区域每行16字节。具体设置多少行,依据需求和单片机容量。第二将1602的32个字符显示映射到这块内存地址空间的首2行。并且增加一个变量,控制1602显示该内存的行数。当串口接收的数据大于16,这个变量指定1602显示下一行。
作者: 米小忙    时间: 2024-1-25 16:05
最后一个夏天1 发表于 2024-1-25 10:30
①实现一串数据的完整接收,将这一帧数据原封不动的在发出来。首先你得知道一帧数据是什么时候结束的,根据 ...

是的,每次通过串口助手发送字符的时候,显示屏上都只显示这段字符中的第二个字符
作者: 雷欧库珀    时间: 2024-3-3 13:08
米小忙 发表于 2024-1-25 10:48
不好意思,为什么还要在串口助手中返回呢

保证你确实接收成功了




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