为什么我可以使用LibUSB打开意法半导体STLINK V2,但不能使用意法半导体Virutal COM端口

ubbxdtey  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(195)

我有一个C++代码中的LibUSB示例,我尝试连接STMicroelectronics Virtual COM Port,但无法连接,即使我有正确的Vendor IDProduct ID
但是如果我使用LibUSB示例连接STMicroelectronics STLINK-V2,那么我可以连接。

问题:

那么为什么LibUSB不能用LibUSB连接到STMicroelectronics Virtual COM Port,但我可以在STMicroelectronics STLINK-V2连接。
当我运行这个代码片段时,device_handle返回NULL,因为当vendorID = 1155, productID = 22336libusb无法连接。这些数字是针对STMicroelectronics Virtual COM Port的。

device_handle = libusb_open_device_with_vid_pid(ctx, vendorID, productID);

更新日期:

我的目标是将PC与USB设备连接,以便从该USB设备传输和接收数据。
我的操作系统是Windows 11,我的USB设备没有问题。我可以用QT C++连接它,并向它传输数据。但似乎不能用libusb。

更新2:

我的USB设备是CDC -通信设备类。

elcex8rz

elcex8rz1#

在Windows上,libusb不能连接到任何USB设备或接口;它只能连接到具有特定驱动程序的USB接口,该驱动程序支持libusb所需的原始USB访问。
您的虚拟串行端口设备很可能使用不同的驱动程序,如usbser.sys。因此,您无法使用libusb连接到该设备。但是,您可以使用Windows API中的标准串行端口函数连接到该设备,具体如下:创建文件、写入文件、读取文件、关闭文件、设置通信超时、设置通信状态。

相关问题