Foxtable(狐表)用户栏目专家坐堂 → [求助]串口传输问题


  共有6759人关注过本帖树形打印复制链接

主题:[求助]串口传输问题

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/20 17:30:00 [显示全部帖子]

Dim cnt As Integer = Ports("COM1").BytesToRead
If cnt > 0 Then '缓冲区是否有数据
    Dim Val(cnt - 1) As Byte
    Ports("COM1").Read(val,0,cnt)
    Msgbox(cnt)
    Dim str As String = ""
    For Each s As Byte In val
        str &= s & ","
    Next
    msgbox(str)
End If

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 11:43:00 [显示全部帖子]

 提示什么错啊?自己调试一下

 

http://www.foxtable.com/help/topics/1485.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 11:49:00 [显示全部帖子]

弹出数据看一下。接收肯定没有问题的。

 

或者你有个Output.Show弹出得到的内容。

 

http://www.foxtable.com/help/topics/2642.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 11:56:00 [显示全部帖子]

 用 Output.Show + 命令窗口 看弹出的数据。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 15:00:00 [显示全部帖子]

 你要打开命令窗口,才能显示。

 

http://www.foxtable.com/help/topics/0213.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 15:03:00 [显示全部帖子]

以下是引用foxtable-pc在2015/8/3 15:01:00的发言:
上面的程序是在命令窗口里  而且窗口是打开的

 

1、代码依然写在原来的地方,msgbox改成output.show

 

2、打开命令窗口看显示的值。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 15:21:00 [显示全部帖子]

其余代码去掉,单独写此两行代码测试

 

Dim cnt As Integer = e.Port.BytesToRead
Output.show(cnt)
[此贴子已经被作者于2015/8/3 15:22:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 15:52:00 [显示全部帖子]

那就说明获取数据没有任何问题啊。再写

 

Dim cnt As Integer = e.Port.BytesToRead
Output.show(cnt)
Dim Val(cnt - 1) As Byte

e.Port.Read(val,0,cnt)

Dim str As String = ""
For Each s As Byte In val
    str &= s & ","
Next
output.show(str)


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 16:46:00 [显示全部帖子]

 数据没有问题啊,发送后,传输的时候,都是分批次接收到数据的啊。

 

 如果你固定发送字符,那就等 e.Port.BytesToRead 的值等于101,再截取出数据


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/3 17:04:00 [显示全部帖子]

1、如果不固定,那每次发送的数据,肯定有一个结束的标记,如果读取到标记,就取出字符就好。

 

2、

 

http://www.foxtable.com/help/topics/1936.htm

 

http://www.foxtable.com/help/topics/1937.htm

 


 回到顶部
总数 21 上一页 1 2 3 下一页