2017-04-06 117 views
0

晚上好, 我的項目是創建一個桌面應用程序。 此應用程序將允許我通過USB端口從PC與stm32微控制器進行通信。Qt沒有檢測到所有連接的端口

我使用類:Qt的

可用QSerialPort我想知道我的連接PC上的USB端口的數量。

這裏是我的代碼:

#include <QCoreApplication> 
#include <QDebug> 
#include <QSerialPort> 
#include <QSerialPortInfo> 


Int main (int argc, char * argv []) 
{ 
    QCoreApplication a (argc, argv); 

    QDebug() << "Number of serial ports:" << QSerialPortInfo :: availablePorts(). Count(); 

Return 0; 
}  

所以我插入我的STM32F4微控制器,外接硬盤使用USB電纜... 我的問題是這樣的:當我的Qt下運行的程序沒有編譯問題,但調試的結果顯示我以下行:「串口數量:0」連接的USB端口。

在激活藍牙或插入3G密鑰後,會檢測到這些端口,但其他端口未被檢測到。

我不明白錯誤來自哪裏!

+0

什麼是您的操作系統?你有沒有安裝驅動程序? – eyllanesc

+0

我的操作系統是Windows 7。我已經安裝了驅動程序,設備管理器檢測到了STM。 – oumaima

+0

USB和COM端口不是一回事。 QSerialPort與COM端口一起工作。藍牙和3G鑰匙通過USB模擬COM端口,但STM32可能不是。 –

回答

0

Qt只支持USB串口。 (例如:COM/TTY)

如果您想了解STM所連接的USB端口的低級詳細信息(例如:物理端口號),則必須使用特定於平臺的代碼。

Libusb可以幫助你。

+0

我想過嘗試使用STM32 Virtual Com Port的例子來查看該卡是否會被檢測爲COM端口。爲此我跟着這個視頻:https://youtube.com/watch?v = Dy8CcO5i42Y。但它仍然在設備管理器中被檢測爲USB,問題依然存在。 – oumaima

+0

它將被視爲「USB」設備,並且如果在「端口(COM和LPT)」下也安裝了正確的驅動程序。我建議你重新安裝ST的虛擬COM驅動程序。 – Jeroen3