簡體   English   中英

識別USB到RS422連接器的COM端口名稱的邏輯(對於Windows應用程序)

[英]Logic to recognize the name of the COM port to which a USB to RS422 connector is connected (for Windows application))

我有一個應用程序,通過USB到RS422轉換器將數據寫入串行端口。 該轉換器電纜通過USB集線器連接到我的PC。 我面臨的問題是,每次更改運行應用程序的PC時,COM端口的名稱都會更改。 因此,我將不得不在代碼中對此進行更改,然后重新編譯代碼以運行該應用程序。 目前,以下是我用來初始化串口的代碼:

if ((comport = CreateFile("\\\\.\\COM7", GENERIC_WRITE, 0, 
        NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)) == INVALID_HANDLE_VALUE)
    {
        return false;
    }

在這里,我僅提及COM端口的名稱。 我想知道是否有一個API可以知道COM端口的狀態,並且可以即時識別轉換器連接到的COM端口嗎?

檢測Windows上所有可用串行端口的正確方法是什么? 這個問題可能至少會有所幫助。 因此,如第二個答案所示,API可能無法實現。 串行端口不是即插即用的。

因此可以列出所有端口。 我想到的唯一可能的方法是輪詢列表中的每個設備。 等到您得到期望的響應。 不太好

編輯:可能有可能獲得友好名稱,如果那是您想要的。 如何獲得Windows中COM端口的友好名稱?

可以在以下應用程序中設置電纜的COM端口,而不是在應用程序中更改COM端口:

設備管理器->端口->右鍵單擊電纜名稱->屬性->端口設置->高級->通訊端口號(您可以根據應用選擇端口號)

無需更改應用程序中的任何內容。

暫無
暫無

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

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