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