我这有一段向串口发送数据的源代码.你看看吧!
'发送数据
Private Sub cmdmanual_Click()
Dim buf() As Byte
Dim data(2000) As Byte
Dim hex As Byte
Dim i As Integer
Dim j As Integer
Dim high As Boolean
If curConnectID = 0 Then Exit Sub
If chkSendHex.Value = 1 Then '十六进制发送
buf = StrConv(txtsend.Text, vbFromUnicode)
j = 0
high = True
For i = LBound(buf) To UBound(buf)
If buf(i) >= Asc("0") And buf(i) <= Asc("9") Then
buf(i) = buf(i) - Asc("0")
ElseIf buf(i) >= Asc("a") And buf(i) <= Asc("f") Then
buf(i) = buf(i) - Asc("a") + 10
ElseIf buf(i) >= Asc("A") And buf(i) <= Asc("F") Then
buf(i) = buf(i) - Asc("A") + 10
Else
GoTo p
End If
If high Then
hex = buf(i) * 16
high = False
Else
hex = hex + buf(i)
high = True
data(j) = hex
j = j + 1
End If
p: Next i
If Not high Then
MsgBox "十六进制发送时,长度必须为偶数"
Exit Sub
End If
EDSock.SendToCOM curConnectID, 1, data, j
txtstate.Text = txtstate.Text & "发送成功 " & Time & vbCrLf
lblt.Caption = lblt.Caption + 1
Else '直接发送
buf = StrConv(txtsend.Text, vbFromUnicode)
EDSock.SendToCOM curConnectID, 1, buf, UBound(buf) - LBound(buf) + 1
txtstate.Text = txtstate.Text & "发送成功 " & Time & vbCrLf
lblt.Caption = lblt.Caption + 1
End If
End Sub
Dim strData() As String
Dim lngData() As Long
Dim i As Long
strData = Split(txtData, " ") 'txtData--文本框,数据格式 AA 10 AB 1A ...
ReDim lngData(UBound(strData))
For i = 0 To UBound(strData)
lngData(i) = Val("&H" & strData(i))
Next