2017-04-06 9 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

お使いのOSは?あなたはドライバをインストールしましたか? – eyllanesc

+0

私のOSはWindows 7です。ドライバをインストールし、デバイスマネージャがSTMを検出しました。 – oumaima

+0

USBポートとCOMポートは同じものではありません。 QSerialPortはCOMポートで動作します。 Bluetoothと3gキーはUSB経由でCOMポートをエミュレートしますが、STM32はおそらくそうではありません。 –

答えて

0

QtはUSBシリアルポートのみをネイティブサポートしています。 (例:COM/TTY)

STMが接続されているUSBポートの低レベルの詳細(物理ポート番号など)を知りたい場合は、プラットフォーム固有のコードを使用する必要があります。

Libusbお手伝いできます。

+0

私は、カードがCOMポートとして検出されるかどうかを調べるために、STM32 Virtual Com Portの例を試してみることを考えました。私はこのビデオに続きました:https://youtube.com/watch?v=Dy8CcO5i42Yしかし、デバイスマネージャーでUSBとして検出されたままであり、問​​題は解決しません。 – oumaima

+0

"USB"デバイスと見なされ、正しいドライバが "Ports(COM&LPT)"にもインストールされている場合に表示されます。 STの仮想COMドライバを再インストールすることをお勧めします。 – Jeroen3

関連する問題