簡體   English   中英

如何在vb.net中編程自動檢測串口

[英]How to program automatic detect serial port in vb.net

我正在做一個通過筆記本電腦/PC 的 USB 端口連接 RS232 的項目。 我已經創建了 vb.net 應用程序。 應用程序首次加載時,需要檢測串口。 到目前為止,我手動將端口名放在串行端口的屬性中,但是如果我部署我的應用程序並且如果我使用其他筆記本電腦/PC,則會出現錯誤:System.IO.IOException 當我運行我的 GUI 時。 我想對串行端口的自動檢測進行編程,但我是 vb.net 中串行端口編程的新手。

誰能幫我? 謝謝!

這是我的程序的一部分:

Imports System.IO.Ports

Public Class Form1

'Dim myPort As Array 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Try

        'myPort = IO.Ports.SerialPort.GetPortNames() 

        SerialPort1.Open()
        Timer1.Enabled = True
    Catch ex As Exception
        MsgBox(ex.ToString)

    End Try
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

    '==zigbee sent data to the app====
    Console.Beep(3000, 1000) 'high tone buzzer whenever there is a notification received

    MsgBox("THERE IS A NOTIFICATION RECEIVED!")

    uart_rx = Me.SerialPort1.ReadExisting
    toDisplay = toDisplay + uart_rx

    flag = 1 'there is a notification sent


End Sub

....

在 myPort = IO.Ports.SerialPort.GetPortNames() 之后,我不知道接下來要做什么。

以下網頁上有一個示例顯示了這是如何完成的: http : //msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

在該示例中,在應用程序與端口通信之前,會提示用戶進行串行端口設置。

SerialPort.GetPortNames ( http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.getportnames.aspx ) 將獲得串行端口的名稱。

我提供了一個列表框並用系統上的所有端口填充它。 用戶必須選擇 com 端口,然后將該端口名稱分配給串行端口。
代碼如下 Dim SP as string

Private Sub frmSelectPort_Load(sender as Object,  e as 
System. EventArgs)  Handles Me. Load 
GetSerialPortnames 
End Sub

 Sub GetSerialPortnames () For Each SP In My. Computer. 
   SerialPortNames
   Listbox1. Items. Add(sp) 
 End Sub


 (Under button click event) 
SP =Listbox1. SelectedItem
SerialPort1. PortName=SP 
SerialPort1. Open() 

暫無
暫無

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

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