2017-06-06 4 views
0

Ich versuche zu warten, Mikrocontroller drucken "OK" auf Serial Port, und VB.net überprüfen Sie, dass "OK" und diesen Wert Zeichenfolge Variable zuweisen - check_OK. Das erste Problem, mit dem ich konfrontiert wurde - seine Daten empfangen Event-Handler Ich weiß nur nicht, wie man es auf den genauen Wert von der seriellen Schnittstelle überprüfen. Ich habe Richtextbox1 verwendet, um OK von der seriellen Schnittstelle zu speichern und dann den Wert = check_OK zu setzen. Ich probierte so:Warte auf den genauen Wert von SERIAL PORT VB.net

Public Class Form1 
Dim check_OK As String 
Dim OK_rs As Byte 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

End Sub 
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived 
    ReceivedText(SerialPort1.ReadExisting()) 
End Sub 
Private Sub ReceivedText(ByVal [text] As String) 
    If Me.RichTextBox1.InvokeRequired Then 
     Dim x As New SetTextCallback(AddressOf ReceivedText) 
     Me.Invoke(x, New Object() {(text)}) 

    Else 
     Me.RichTextBox1.Text = "" 
     Me.RichTextBox1.Text &= [text] 
     If RichTextBox1.Text = "O" Or RichTextBox1.Text = "K" Then 
      check_OK = check_OK & RichTextBox1.Text 
     End If 
    End If 
End Sub 
+0

ReadExisting() ist nie sehr hilfreich, um dies richtig zu machen. Berücksichtigen Sie ReadTo ("OK") stattdessen. –

Antwort

0

Diese seriellen Kommunikationsprobleme profitieren oft davon, in mehrere Teile zerlegt zu werden. Da der Mikrocontroller der Absender ist, würde ich als Erstes prüfen, ob er richtig sendet. Stellen Sie dazu zunächst eine Verbindung zu einem Terminalprogramm her. Dies bringt Ihren VB-Code aus dem Bild.

Jetzt, wenn das Terminalprogramm die richtige Eingabe vom Mikrocontroller erhält, haben Sie gerade die Hälfte Ihres Systems korrekt getestet und Sie können sich dann auf die VB-Seite konzentrieren. Teilen und erobern. :)

Verwandte Themen