正在等待来自串行端口VB.net的精确值

正在等待来自串行端口VB.net的精确值,.net,vb.net,serial-port,microcontroller,.net,Vb.net,Serial Port,Microcontroller,我试图等待微控制器将“OK”打印到串行端口,然后VB.net检查“OK”,并将该值分配给字符串变量-check_OK。我面临的第一个问题是它的数据接收事件处理程序,我只是不知道如何让它检查串口的精确值。我使用Richtextbox1从串行端口保存ok,然后尝试使其值=check\u ok。我试着这样做: Public Class Form1 Dim check_OK As String Dim OK_rs As Byte Private Sub Form1_Load(sender As Obj

我试图等待微控制器将“OK”打印到串行端口,然后VB.net检查“OK”,并将该值分配给字符串变量-check_OK。我面临的第一个问题是它的数据接收事件处理程序,我只是不知道如何让它检查串口的精确值。我使用Richtextbox1从串行端口保存ok,然后尝试使其值=check\u ok。我试着这样做:

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

这些串行通信问题通常因分解为几个部分而受益。由于微控制器是发送器,我要检查的第一件事是它是否正确发送。为此,请先连接到终端程序。这将使您的VB代码从图片中消失

现在,如果终端程序从微控制器获得正确的输入,那么您已经证明了系统的一半是正确的,然后您可以关注VB端。分而治之。:)

ReadExisting()对正确执行此操作从来没有太大帮助。考虑ReadTo(“OK”)。