找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4391|回复: 3
打印 上一主题 下一主题
收起左侧

悬赏求助:字符串回传上位机,显示顺序混乱,请帮助

[复制链接]
跳转到指定楼层
楼主
ID:75246 发表于 2015-3-29 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10黑币
   最近想搞个PC与单片机用串口通讯的程序,单片机部分通讯搞好了(作为初学者,当然是篡改老师的,请别见怪!),用“串口助手”收发字符串正常。但是用易语言写的PC端,发送正常,单片机的LCD显示正常,可是回传到PC端显示的就不对了,字符串顺序颠三倒四的,每次回显次序也不同,还自动加了换行符。    这个PC端,是我用易语言附带的串口通讯例程改的,原来的例程似乎就有问题,由于我用的是USB转串口的340线,显示COM3,但是原例程中只有COM1、COM2两个端口,我曾加了COM3端口选项,也是收不到信号。
    现在把我改的串口通讯源码上传,希望能得到各位大仙的帮助、修改,或者能解释一下接收显示顺序混乱的原因。谢谢各位了!
下面是易语言收到信号后的代码文本,因为可能这里可能没有多少用易语言的朋友。(全部文件在附件里)

.版本 2


.子程序 _串口_收发_收到信号
.参数 信号类型, 整数型
.局部变量 循环容器, 整数型


信号次数 = 信号次数 + 1
.如果真 (信号次数 < 36)
    信号时间 [信号次数] = 取启动时间 () - 起始时间
.如果真结束


.计次循环首 (24, 循环容器)
    .如果真 (信号顺序 [循环容器] = 0)
        信号顺序 [循环容器] = 信号类型
        跳出循环 ()
    .如果真结束


.计次循环尾 ()




.子程序 _串口_收发_数据到达
.参数 数据字节值, 整数型
.局部变量 循环容器, 整数型


处理事件 ()
数据次数 = 数据次数 + 1
.' 如果真 (数据次数 ≤ 4)
    ' 数据时间 [数据次数] = 取启动时间 () - 起始时间
.如果真结束


.计次循环首 (18, 循环容器)
    .如果真 (信号顺序 [循环容器] = 0)
        信号顺序 [循环容器] = 10
        跳出循环 ()
    .如果真结束


.计次循环尾 ()




编辑框_连续接收.加入文本 (字符 (数据字节值))
编辑框_连续接收.刷新显示 ()
.如果真 (串口_收发.信号操作 (1, #DTR信号) = 假)
    信息框 (“操作失败”, 0, )
.如果真结束
数据次数 = 0


处理事件 ()




1602串口.zip

38.46 KB, 下载次数: 10, 下载积分: 黑币 -5

改自本论坛的串口通讯程序

串口实验.zip

3.45 KB, 下载次数: 7, 下载积分: 黑币 -5

易语言的上位机部分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:75246 发表于 2015-3-29 10:18 | 只看该作者
这是生成可执行文件后的上位机部分

串口通讯实验安装文件.zip

690.3 KB, 下载次数: 5, 下载积分: 黑币 -5

直接安装

回复

使用道具 举报

板凳
ID:75246 发表于 2015-3-29 13:48 | 只看该作者
貌似解决了!
去掉那个“处理事件”就没问题了。
我不知道是什么原因,但是,可以这样认为:让Windows去处理事件,结果显示内容就乱了。就跟做人一样哈,竟关心别人了,自己工作生活就会越来越糟糕。
回复

使用道具 举报

地板
ID:165212 发表于 2017-2-19 17:43 | 只看该作者
第一次看易语言,怪怪的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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