接收Buffer时出错。改正如下:先将MSComm1的InputMode 属性设置为 comInputModeBinary
Private Static Sub MSComm1_OnComm()
Dim btBuffer() as Byte
Dim i as Intege
Dim strTemp as String Dim EVMsg$
Dim ERMsg$
' Branch according to the CommEvent property.
Select Case MSComm1.CommEvent
' Event messages.
Case comEvReceive
btBuffer = MSComm1.Input
MsgBox ("passed!")
For i=LBound(btBuffer) To UBound(btBuffer)
strTemp=strTemp & Chr(CInt(btBuffer(i)))
Next Text1.Text = strTemp
MSComm1.InBufferCount = 0 '清除发送缓冲区数据 MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
End Select
End Sub
Private Static Sub MSComm1_OnComm()
Dim btBuffer() as Byte
Dim i as Intege
Dim strTemp as String Dim EVMsg$
Dim ERMsg$
' Branch according to the CommEvent property.
Select Case MSComm1.CommEvent
' Event messages.
Case comEvReceive
btBuffer = MSComm1.Input
MsgBox ("passed!")
For i=LBound(btBuffer) To UBound(btBuffer)
strTemp=strTemp & Chr(CInt(btBuffer(i)))
Next Text1.Text = strTemp
MSComm1.InBufferCount = 0 '清除发送缓冲区数据 MSComm1.OutBufferCount = 0 '清除接收缓冲区数据
End Select
End Sub
不过最好不好在这CommEvent事件接收数据
2、可以将btBuffer数组中的Byte字节进行十六进制转换,如下:
For i=LBound(btBuffer) To UBound(btBuffer)
strTemp=strtemp & Chr(CInt(Hex(btBuffer(i)))
Next
(注:没有显示字符有可能对方传给你的是十六进制,比如“0”字符,十六进制为‘30’,十进制为‘48’,当Chr(48)时显示为“0”,但当Chr(30)时为不可见字符。)
大家好!
首先很感谢大家,对我的帮助与支持。
我的串口通信问题,今天终于搞定了。
不过,小弟还有一个问题,就是如何给你们给分,是不是不是由我自己来控制的,我进入管理界面后,总提示密码错误,你无权结贴 。
可我的密码是对的呀。
大家知道吗?