Foxtable(狐表)用户栏目专家坐堂 → 串口接收错误


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

主题:串口接收错误

帅哥哟,离线,有人找我吗?
dtcuiwww
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:406 威望:0 精华:0 注册:2013/2/22 14:52:00
串口接收错误  发帖心情 Post By:2015/7/18 11:31:00 [只看该作者]

 

下面是DataReceived事件的代码


 

Dim cnt As Integer = Ports("COM1").BytesToRead

If cnt > 0 Then '缓冲区是否有数据
        Ports("COM1").Read(sj,0,cnt)
End If

Vars("bz") = 1 + Vars("bz")
Vars("len") = cnt


 

这是初始化代码

Ports.Add("COM1")
With Ports("COM1")
    .Close()
    .Parity = Parity.None
    .Handshake = Handshake.None
    .StopBits = StopBits.One
    .BaudRate = 38400
    .DataBits = 8
    .ReadBufferSize() = 4096
    .WriteBufferSize() = 2048
    .Open
End With


 

sj(0 to 127) 在全局BYTE的数组变量


 

我测试了一下,当接收的字节大于8个就出问题了,例如接收22个字节,cnt为6,而不是22,

cnt = 6 好像是 22 - 2*8 得到的 也就是串口接收只能接收小于8个字节的字节流,请问如何解决。


 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/7/18 11:38:00 [只看该作者]

串口是没有问题的,发送数据的时候,窗口可能不是一次收到,可能分几次收到,你累加一下看看吧

 


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


加好友 发短信
等级:婴狐 帖子:24 积分:406 威望:0 精华:0 注册:2013/2/22 14:52:00
  发帖心情 Post By:2015/7/18 15:03:00 [只看该作者]

我用的是win7系统,是不是和系统有关,别的程序没有,只有这点串口程序,使了好多次了,现在到第12个数据后都是0


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


加好友 发短信
等级:婴狐 帖子:24 积分:406 威望:0 精华:0 注册:2013/2/22 14:52:00
  发帖心情 Post By:2015/7/18 15:57:00 [只看该作者]

重新运行foxtable后第一次接收数据正确,以后就不行了。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/19 10:46:00 [只看该作者]

 请 上传测试例子和测试工具

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


加好友 发短信
等级:三尾狐 帖子:706 积分:4908 威望:0 精华:0 注册:2016/5/17 12:03:00
  发帖心情 Post By:2019/3/18 19:13:00 [只看该作者]

@楼主,我也碰到一样的情况:

重新运行foxtable后第一次接收数据正确,以后就不行了。

请问楼主是如何解决的??谢谢!


 回到顶部