
一段vb程式,用于實作與單片機的串口連接,并可以顯示和發送實時溫度和設定報警溫度,可是除錯時總是失敗。紅色的那一行
Option Explicit
Dim Buffer As Variant
Dim InString As String
Dim strData As Variant
Dim strTemp As Variant
Dim i As Integer
Private Sub Form_Load()
MSComm1.CommPort = 9
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 31
MSComm1.SThreshold = 2
MSComm1.InputLen = 0
MSComm1.PortOpen = True
TextTime.Text = ""
TextTemp.Text = ""
TextSend.Text = ""
End Sub
Private Sub MSComm1_OnComm()
Dim Receive As String
Dim Receive0 As String
Dim Receive1 As String
Dim Receive2 As String
Dim Receive3 As String
Dim rec1 As String
Select Case MSComm1.CommEvent
Case comEvReceive
Receive = MSComm1.Input
Receive0 = Mid(Receive, InStr(1, Receive, "A"), 16)
Receive1 = Mid(Receive0, 2, 8)
Receive3 = Mid(Receive0, 10, 2)
Receive2 = Mid(Receive0, 12, 4)
TextTime.Text = Receive1
TextTemp.Text = Receive2
TextWarn.Text = Receive3
rec1 = Mid(Receive0, 16, 1)
If rec1 = "!" Then
Picture1.BackColor = vbRed
Else
Picture1.BackColor = vbGreen
End If
Receive = ""
End Select
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
End Sub
Private Sub CommandSend_Click()
Dim Send As String
Dim Send1 As String
Dim Send2 As String
MSComm1.OutBufferCount = 0
Send = TextSend.Text
If Len(Send) = 6 Then
Send1 = "aaaaaaaa"
Mid(Send1, 3, 6) = Send
MSComm1.Output = Send1
End If
If Len(Send) = 2 Then
Send2 = "bbbbbbbb"
Mid(Send2, 7, 2) = Send
MSComm1.Output = Send2
End If
End Sub
uj5u.com熱心網友回復:
看一下,出錯時 Receive 中是什么。uj5u.com熱心網友回復:
Receive = MSComm1.InputDebug.Print Receive
Receive0 = Mid(Receive, InStr(1, Receive, "A"), 16)
uj5u.com熱心網友回復:

就顯示這樣,不懂,按樓上改了也不行
uj5u.com熱心網友回復:
Debug.Print 列印出什么內容了?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/91010.html
標籤:VB基礎類
