.NET Framework 2.0新增了System.IO.Ports命名空间后,使得访问串行端口变得很容易。
System.IO.Ports命名空间中最重要的类是SerialPort类。
对于Visual Basic 2005用户而言,建立一个SerialPort对象最简单的方式是使用My.Computer.Ports.OpenSerialPort方法。
下面是一个例子:
Imports System.IO.Ports
Public Class CH2_DemoForm005
Private Sub btnGetSerialPortNames_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetSerialPortNames.Click
clstPorts.Items.Clear()
' 显示出所有可使用的串行端口。
For Each sp As String In My.Computer.Ports.SerialPortNames
clstPorts.Items.Add(sp, True)
Next
If clstPorts.Items.Count > 0 Then
Me.btnSendSerialData.Enabled = True
Me.btnReveiveSerialData.Enabled = True
End If
End Sub
Private Sub btnSendSerialData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendSerialData.Click
Dim i As Integer
For i = 0 To clstPorts.Items.Count - 1
If clstPorts.GetItemChecked(i) Then
Try
' 将字符串传送至串行端口。
Using myComPort As SerialPort =My.Computer.Ports.OpenSerialPort(clstPorts.Items(i))
myComPort.WriteLine(txtData.Text)
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
Next
End Sub
Private Sub btnReveiveSerialData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReveiveSerialData.Click
Dim returnStr As String = ""
Dim i As Integer
For i = 0 To clstPorts.Items.Count - 1
If clstPorts.GetItemChecked(i) Then
Try
' 从串行端口提取文字符串。
Using myComPort As SerialPort =My.Computer.Ports.OpenSerialPort(clstPorts.Items(i))
myComPort.ReadTimeout = 1000
Do
Try
Dim Incoming As String = myComPort.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Do
End Try
Loop
End Using
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
Next
txtData.Text = returnStr
End Sub