使用libusbp初始化通用接口失败问题求助
问题根源
你碰到的三个错误核心是设备驱动不匹配:
usbser是USB串口驱动(这也是PuTTY能读取COM口内容的原因),但libusbp需要直接访问原始USB接口,不兼容串口驱动usbccgp是USB复合设备父驱动,说明设备被识别为复合设备,但未绑定libusbp支持的驱动- 「Could not find interface 0」大概率是驱动未切换导致接口识别错误
分步解决方案
1. 切换设备驱动为WinUSB
libusbp依赖WinUSB驱动来访问原始USB接口,必须替换当前的串口驱动:
- 打开设备管理器,找到navX2-micro设备(可能在「端口(COM&LPT)」或「通用串行总线设备」分类下)
- 右键设备 → 属性 → 驱动程序 → 更新驱动程序 → 浏览我的计算机以查找驱动程序软件
- 选择「让我从计算机上的可用驱动程序列表中选取」
- 选中「WinUSB设备」完成安装
2. 确认正确的设备接口编号
驱动切换后,重新确认设备的接口序号:
- 回到设备管理器,找到已切换为WinUSB的navX2-micro设备(现在会在「通用串行总线设备」下)
- 右键 → 属性 → 详细信息 → 属性下拉选择「设备实例路径」,复制该路径
- 使用libusbp的
list_connected_devices重新扫描,确认设备对应的接口编号,替换代码中的接口参数
3. 调整代码适配设备
参照示例代码时,需要针对navX2-micro做两处修改:
- 确保代码中指定了正确的VID和PID(navX2-micro的VID为
0x1FFB,PID为0x0030) - 如果接口编号不是0,初始化
generic_interface时传入正确序号,比如:libusbp::generic_interface interface(device, 1); // 替换为实际接口号
4. 验证驱动切换结果
驱动替换完成后,PuTTY将无法再通过原COM口访问设备——这是正常现象,说明设备已切换为原始USB模式,此时libusbp应该能正常初始化接口。
内容的提问来源于stack exchange,提问作者sadintern234
相关产品推荐
相关产品推荐

