如何访问串行端口

.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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值