VB串口的一个重要关口呀~请各位高手帮忙看一眼,谢谢
我要制作一个针对某一协议的串口,协议中,如果发送包是ef01ffffffff010003010005,则应答包为ef01ffffffff070003020c
下面是我的相关代码
Private Sub Form_Load()
MSComm1.Settings = "57600,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferSize = 40
MSComm1.OutBufferSize = 2
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
End Sub
Private Sub Command1_Click()
Dim lr(11) As Byte
lr(0) = &HEF: lr(1) = &H1: lr(2) = &HFF: lr(3) = &HFF: lr(4) = &HFF: lr(5) = &HFF: lr(6) = &H1: lr(7) = &H0
lr(8) = &H3: lr(9) = &H1: lr(10) = &H0: lr(11) = &H5 '我知道这样很笨,但不知道好办法,请指教
MSComm1.Output = lr
End Sub
Private Sub MSComm1_OnComm()
Dim re As String
Select Case MSComm1.CommEvent
Case comEvReceive
MsgBox "aaa" '这句是我用来测试的,点击command1后能出现box,到这是行得通的
re = re & MSComm1.Input '这句出现错误8020,读取comm设备错误
Text1.Text = re '我想将结果显示到text上,看看正确否
End If
End Select
End Sub
我手里有好几个串口助手,有的发送指令包时能收到正确的应答包,有的则不能
但是能好使的串口助手都不是用vb编的,所以没法看代码,vb编的都不好使...
现在很愁啊,这步是一个关卡,如果通了,下边自然也就迎刃而解了
请高手们不吝赐教,在下感激不尽