易语言串口数据发送与接收问题
下图是我用串口调试助手调试时的正常数据发送和接收发送“1”下位机会返回10组16进制的字节,第一个“01”是发送“1”所得到的同样回复,最后一个“44”是校验位,去掉第一...
下图是我用串口调试助手调试时的正常数据发送和接收
发送“1”下位机会返回10组 16进制的字节,第一个“01”是发送“1”所得到的同样回复,最后一个“44”是校验位,去掉第一个,和最后一个,中间8组是下位机回复的正确数据。
我自己做了个实例,测试结果却是下面这种情况,收到的数据完全不符
如需源码请联系我,这里无法上传源码文件。
. 展开
发送“1”下位机会返回10组 16进制的字节,第一个“01”是发送“1”所得到的同样回复,最后一个“44”是校验位,去掉第一个,和最后一个,中间8组是下位机回复的正确数据。
我自己做了个实例,测试结果却是下面这种情况,收到的数据完全不符
如需源码请联系我,这里无法上传源码文件。
. 展开
2个回答
展开全部
发送的数据应该是字节集数据{ 1 },而不是整数" 1 ",不知道你是不是这样发送的
接收每次只能接收到一个字节整数,如果要显示还需转换才能显示,前不久我作过该类调试,具体如下:
.版本 2
.子程序 _按钮1_被单击
.局部变量 JJ, 字节集
.局部变量 CH, 文本型, , "0"
.局部变量 i, 整数型
CH = 分割文本 (编辑框1.内容, “ ”, ) ' 用空格进行分割
i = 1
.判断循环首 (i ≤ 取数组成员数 (CH))
JJ = JJ + 十六进制文本到字节集 (CH [i])
i = i + 1
.判断循环尾 ()
端口1.发送数据 (JJ)
.子程序 _端口1_数据到达
.参数 数据字节值, 整数型
程序集字节集_收到的数据 = 程序集字节集_收到的数据 + 取字节集左边 (到字节集 (数据字节值), 1)
.如果真 (取字节集右边 (程序集字节集_收到的数据, 1) = 字节集_结束标志) ' 本例中: 字节集_结束标志 = { 44 }
编辑框_接收.内容 = 字节集到十六进制文本 (程序集字节集_收到的数据)
程序集字节集_收到的数据 = { }
只要是发送的命令数据正确,这是应该是正解,希望对你有所帮助
接收每次只能接收到一个字节整数,如果要显示还需转换才能显示,前不久我作过该类调试,具体如下:
.版本 2
.子程序 _按钮1_被单击
.局部变量 JJ, 字节集
.局部变量 CH, 文本型, , "0"
.局部变量 i, 整数型
CH = 分割文本 (编辑框1.内容, “ ”, ) ' 用空格进行分割
i = 1
.判断循环首 (i ≤ 取数组成员数 (CH))
JJ = JJ + 十六进制文本到字节集 (CH [i])
i = i + 1
.判断循环尾 ()
端口1.发送数据 (JJ)
.子程序 _端口1_数据到达
.参数 数据字节值, 整数型
程序集字节集_收到的数据 = 程序集字节集_收到的数据 + 取字节集左边 (到字节集 (数据字节值), 1)
.如果真 (取字节集右边 (程序集字节集_收到的数据, 1) = 字节集_结束标志) ' 本例中: 字节集_结束标志 = { 44 }
编辑框_接收.内容 = 字节集到十六进制文本 (程序集字节集_收到的数据)
程序集字节集_收到的数据 = { }
只要是发送的命令数据正确,这是应该是正解,希望对你有所帮助
更多追问追答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询