求助 用VB编写串口通讯

qq_42336883 2018-05-29 06:08:53
接受部分 每次都不能完整的接受第一个数据

Dim buffer As String
Dim cando As Boolean
Do Until Len(MSComm1.Input) > 0
Text2.Text = "未检测到数据!"
DoEvents
Loop
Text2.Text = "正在接受数据,请稍等......."
Do Until cando = True
Sleep 1000
If MSComm1.InBufferCount <> 0 Then
buffer = buffer + MSComm1.Input
Else
cando = True
Text2.Text = "数据接收完毕!"
End If
Text1.Text = buffer
DoEvents
'Wend

发送部分 仪器没办法接受到数据

Open CommonDialog2.FileName For Input As #5

Do Until EOF(5)
DoEvents
Line Input #5, Ls3
Text2.Text = Ls3
MSComm1.Output = Ls3
Sleep 100
Loop



求各位大佬帮忙
...全文
1442 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨狗先飞 2018-05-29
  • 打赏
  • 举报
回复
问题比较多,懒的说了,接收部分至少也该是这样写的。

Private Sub MSComm1_OnComm()
    Dim C As Long, Data() As Byte
    Select Case MSComm1.CommEvent
        Case comEvReceive
            Do
                C = MSComm1.InBufferCount
                Sleep 10
            Loop Until C = MSComm1.InBufferCount
            Data = MSComm1.Input
           '一般接收代码需要这样处理,虽然你收到的是asc字符,但是最好用一个数组来接收,然后转成string,ascii值在128~254的符号用字符串来接收是可能丢失的
        Case Else
    End Select
End Sub
qq_42336883 2018-05-29
  • 打赏
  • 举报
回复
参数设置对的
脆皮大雪糕 2018-05-29
  • 打赏
  • 举报
回复
串口参数到底设置对了没有

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧