2013-04-09 38 views
0

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

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

在這裏,我專門提COM端口的名稱。我想知道是否有API知道COM端口的狀態並即時識別我的轉換器連接的COM端口?

+0

你不能在某種配置文件中保留端口名稱嗎?這樣你就不必重新編譯你的程序,只需要改變配置文件中的一些文本。 – 2013-04-09 07:29:07

+0

這是可能的,但我希望這是自動的,並在應用程序的初始化過程中發生。 – vik22 2013-04-09 07:41:10

回答

1

What is proper way to detect all available serial ports on Windows? 這個問題可能會幫助你,至少有一點。所以第二個答案暗示,API可能無法實現。串口不可插播&播放。

因此可以列出所有端口。 我想到的唯一可能的方式是輪詢列表中的每個設備。等到你得到你期待的迴應。這不是很好。

編輯: 可能會得到友好名稱,如果這是你想要的。 How do I get the friendly name of a COM port in Windows?

0

而改變COM端口在您的應用程序,你可以從

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

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

相關問題