HOW TO:在 Visual Basic 中接收來自序列埠的字串

更新:2007 年 11 月

本主題會描述如何在 Visual Basic 中使用 My.Computer.Ports 接收來自電腦序列埠的字串。

若要接收來自序列埠的字串

  1. 將傳回字串初始化。

    Dim returnStr As String = ""
    
  2. 判斷會由哪個序列埠提供字串,這個範例假設會是 COM1。

  3. 請使用 My.Computer.Ports.OpenSerialPort 方法取得對連接埠的參考。如需詳細資訊,請參閱 My.Computer.Ports.OpenSerialPort 方法

    即使發生例外狀況,Using 區塊也會允許應用程式關閉序列埠。所有控制序列埠的程式碼應該都會顯示在這個區塊中,或是在 Try...Catch...Finally 區塊內。

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
    End Using
    
  4. 建立 Do 迴圈 (Loop) 用於讀取文字行,直到再也沒有可用的文字行為止。

    Do
    Loop
    
  5. 使用 ReadLine 方法,從序列埠讀取下一個可用的文字行。

    Dim Incoming As String = com1.ReadLine()
    
  6. 使用 If 陳述式 (Statement) 判斷 ReadLine 方法是否傳回 Nothing (這表示再也沒有可用的文字)。如果它傳回了 Nothing,請結束 Do 迴圈。

    If Incoming Is Nothing Then
        Exit Do
    End If
    
  7. 將 Else 區塊加入至 If 陳述式,以便處理已實際讀取到字串的情況。此區塊會將來自序列埠的字串附加至傳回字串。

    Else
        returnStr &= Incoming & vbCrLf
    
  8. 傳回字串。

    Return returnStr
    

範例

Function ReceiveSerialData() As String
    ' Receive strings from a serial port.
    Dim returnStr As String = ""

    Using com1 As IO.Ports.SerialPort = _
            My.Computer.Ports.OpenSerialPort("COM1")
        Do
            Dim Incoming As String = com1.ReadLine()
            If Incoming Is Nothing Then
                Exit Do
            Else
                returnStr &= Incoming & vbCrLf
            End If
        Loop
    End Using

    Return returnStr
End Function

這個程式碼範例也可以在 IntelliSense 程式碼片段中找到。在程式碼片段選擇器中,這個程式碼片段位於 [連線和網路] 中。如需詳細資訊,請參閱 HOW TO:在您的程式碼中插入程式碼片段 (Visual Basic)

編譯程式碼

這個範例會假設電腦所使用的是 COM1。

穩固程式設計

這個範例會假設電腦所使用的是 COM1。為了具有更大的彈性,程式碼應該允許使用者從可用序列埠清單中選取想要的序列埠。如需詳細資訊,請參閱 HOW TO:在 Visual Basic 中顯示可用的序列埠

這個範例使用 Using 區塊,確定應用程式即使擲回例外狀況,也會關閉連接埠。如需詳細資訊,請參閱 Using 陳述式 (Visual Basic)

請參閱

工作

HOW TO:在 Visual Basic 中撥接與序列埠連接的數據機

HOW TO:在 Visual Basic 中將字串傳送至序列埠

HOW TO:在 Visual Basic 中顯示可用的序列埠

參考

My.Computer.Ports 物件

System.IO.Ports.SerialPort