vb 编写的串口软件 接收的数据不完整 中间会丢失几个数据 5

PrivateSubMSComm1_OnComm()DimintInputLenAsIntegerDimnAsIntegerDimteststringAsStringSe... Private Sub MSComm1_OnComm()

Dim intInputLen As Integer
Dim n As Integer
Dim teststring As String

Select Case MSComm1.CommEvent
Case comEvReceive
If Option1.Value = True Then
MSComm1.InputMode = 1 '0:文本方式,1:二进制方式
Else
MSComm1.InputMode = 0 '0:文本方式,1:二进制方式
End If

intInputLen = MSComm1.InBufferCount
bytInput = MSComm1.Input

If Option1.Value = True Then
For n = 0 To intInputLen - 1
ReceiveData(rx) = bytInput(n)
rx = rx + 1
Text1.Text = Trim(Text1.Text) & " " & IIf(Len(Hex$(bytInput(n))) > 1, Hex$(bytInput(n)), "0" & Hex$(bytInput(n)))
Next n
Else
teststring = bytInput
Text1.Text = Text1.Text + teststring
End If
Timer_JCUart_Dtae.Enabled = True
End Select

End Sub

'端口初始化子程序'
Private Sub initial_com(com_num As Integer)
MSComm1.CommPort = com_num
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.Settings = com_setting
MSComm1.PortOpen = True
End Sub
展开
 我来答
匿名用户
2015-01-07
展开全部

在接收事件中不应该操作界面元素显示数据;在接收事件中修改InputMode不好。

好的串口软件应该采用多线程,缓存和文件存储数据结果等,可以借鉴现有的串口助手。

查晓筠0i5
2015-01-06 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4983万
展开全部
需要给你完成吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tystq
2015-01-06 · TA获得超过1201个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:836万
展开全部
首先确认硬件有没有问题,数据线一定要质量好的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-06
展开全部
应该是你 程序问题

就是接受数据的处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式