Mscomm1.output=???这里的???不是一个Byte数据吗?可我见好多程序都把它定义为数组.为什么呀?

来源:百度知道 编辑:UC知道 时间:2024/06/20 16:51:41

我晕,第三次回答同样的问题了
....首先,串口所发的数据是有码制变化的。。分为2种情况,字符串和16进制发送。

两种方式的发送和接受方法是不同的。

先说16进制的

Dim sData() As Byte
Dim bData(1 To 6) As Byte
Dim strBuff As String

MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

bData(1) = &HE0
bData(2) = &H0
bData(3) = &H3F
bData(4) = &H0
bData(5) = &H0
bData(6) = &H1F

MSComm1.InputMode = comInputModeBinary

必须把数据先存进一个字符数组中。

下面是接收的代码
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = 2 Then

MSComm1.InputLen = 0
strBuff = MSComm1.Input
sData() = strBuff

For i = 0 To UBound(sData)
If Len(Hex(sData(i))) = 1 Then
strdata = strdata & "0" & Hex(sData(i))
Else
strdata = strdata & Hex(sData(i))
End If
Next

Text1.Text = strdata

If Text