我正在开发一个使用 Qt for C++ 与 Arduino Micro 通信的软件。
我正在使用 QSerialPortInfo 通过这种方法显示我的 Arduino Micro 的一些信息:
for (QSerialPortInfo info : QSerialPortInfo::availablePorts())
{
qDebug() << "Port Name :" << info.portName();
qDebug() << "Description :" << info.description();
qDebug() << "Manufacturer:" << info.manufacturer();
qDebug() << "Vendor ID :" << info.vendorIdentifier();
qDebug() << "Product ID :" << info.productIdentifier();
}
在 Windows 10 中,结果如下:
Port Name : "COM4" Description : "Arduino Micro" Manufacturer: "Arduino LLC (www.arduino.cc)" Vendor ID : 9025 Product ID : 32823
在 Ubuntu 15 中:
Port Name : "ttyACM0" Description : "Arduino Micro" Manufacturer: "Arduino LLC" Vendor ID : 5549 Product ID : 1908
为什么供应商和制造商不同?我认为 ID 与设备有关,因此必须仍然相同,与平台无关。我错了吗?
如果我想检查一个设备是否是我的设备,我该怎么做?我想用供应商和产品 ID 做一个简单的检查
更新:
我忘了告诉我我正在使用带有 VMWare 的 Windows10 虚拟机上的 Ubuntu(如果它可以改变某些东西的话)
最佳答案
你的虚拟机有一个虚拟串口,虚拟串口有一个虚拟供应商ID。 5549 是十六进制的 15AD,也就是 VMWare,Inc.
关于c++ - 为什么 Arduino Micro(USB 设备)的供应商 ID 和产品 ID 在 Linux 和 Windows 中不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554512/