如何:在 Visual Basic 中从串行端口接收字符串
更新:2007 年 11 月
本主题描述在 Visual Basic 中如何使用 My.Computer.Ports 从计算机的串行端口接收字符串。
从串行端口接收字符串
初始化返回字符串。
Dim returnStr As String = ""
确定应由哪个串行端口提供字符串。此示例假定它为 COM1。
使用 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
创建一个 Do 循环,用于读取文本行,一直读到没有可用行为止。
Do Loop
使用 ReadLine 方法从串行端口读取下一行可用文本。
Dim Incoming As String = com1.ReadLine()
使用 If 语句来确定 ReadLine 方法是否返回 Nothing(表示不再有可用文本)。如果返回 Nothing,则退出 Do 循环。
If Incoming Is Nothing Then Exit Do End If
将一个 Else 块添加到 If 语句,以处理实际读取到字符串的情况。该块将串行端口中的字符串追加到返回字符串。
Else returnStr &= Incoming & vbCrLf
返回字符串。
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 代码段。在代码段选择器中,此代码示例位于“连接和网络”中。有关更多信息,请参见如何:在代码中插入代码段 (Visual Basic)。
编译代码
此示例假定计算机正在使用 COM1。
可靠编程
此示例假定计算机正在使用 COM1。为了获得更大的灵活性,代码应允许用户从可用端口列表中选择需要的串行端口。有关更多信息,请参见如何:在 Visual Basic 中显示可用的串行端口。
此示例使用 Using 块来确保应用程序关闭端口,即使在引发异常的情况下也关闭端口。有关更多信息,请参见 Using 语句 (Visual Basic)。
请参见
任务
如何:在 Visual Basic 中使用连接到串行端口的调制解调器拨号
如何:在 Visual Basic 中将字符串发送到串行端口