簡體   English   中英

等待來自SERIAL PORT VB.net的准確值

[英]Waiting for exact value from SERIAL PORT VB.net

我試圖等待微控制器在串口上打印“ OK”,然后VB.net檢查“ OK”並將該值分配給字符串變量-check_OK。 我遇到的第一個問題-它的數據已清除事件處理程序,我只是不知道如何使它從串行端口檢查確切的值。 我使用Richtextbox1從串行端口保存ok,然后嘗試使其值= check_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端。 分而治之。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM