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