Dim flag As Integer
Function ByteArrayToHexString(ABuffer As Variant) As String
Dim iLoop As Long
ByteArrayToHexString = " "
For iLoop = LBound(ABuffer) To UBound(ABuffer)
ByteArrayToHexString = ByteArrayToHexString & Right("0 " & Hex(ABuffer(iLoop)), 2) & " "
Next iLoop
ByteArrayToHexString = Trim(ByteArrayToHexString)
End Function
Private Sub Command1_Click()
If Command1.Caption = "接收温度" Then
Command1.Caption = "停止接受"
Timer1.Enabled = True
Else
Command1.Caption = "接收温度"
Timer1.Enabled = False
End If
End Sub
Private Sub Command2_Click()
Dim Temp(0) As Byte
Dim strBuff As String
Temp(0) = &H55
MSComm1.Output = Temp '发送一个16进制
End Sub
Private Sub Command3_Click()
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
Text1.Text = ""
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.RThreshold = 1 '产生MSComm事件
MSComm1.PortOpen = True '打开端口
End Sub
Private Sub MSComm1_OnComm()
Dim ABuffer() As Byte
MSComm1.InputMode = comInputModeBinary
If MSComm1.InBufferCount > 0 Then
ABuffer = MSComm1.Input
Text1 = Text1 & Val("&h" & ByteArrayToHexString(ABuffer)) & " "
End If
End Sub
Private Sub Timer1_Timer()
Call Command2_Click '定时调用手动发送
End Sub