问题描述
由于之前RP552C实现的是HID设备, 现在为了兼容发现 winusb 虽然可以使用,但是一旦修改 vid 和 pid 就会出现USB无法识别的问题,现在想实现2个接口 HID兼容之前的SDK,winusb 则是新的接口,这样新的客户对接SDK就会使用新的接口,这样剔除代码在USB这块的速录限制,但是发现实现出来的符合设备 HID+WINUSB,使用官方工程的 VID 和 PID 设备是可以被电脑识别的,但是一旦修改这参数之后发现只有HID能识别,但是WINUSB不能识别
#define RT_USING_USB_DEVICE
#define RT_USBD_THREAD_STACK_SZ 2048
#define USB_VENDOR_ID 0x0483 // 1
#define USB_PRODUCT_ID 0x5a4b // 4094
#define RT_USB_DEVICE_COMPOSITE
#define RT_USB_DEVICE_NONE
#define RT_USB_DEVICE_HID
#define RT_USB_DEVICE_WINUSB
#define RT_WINUSB_GUID "{6860DC3C-C05F-4807-8807-1CA861CC1D66}"
#define RT_USB_DEVICE_HID_GENERAL
#define RT_USB_DEVICE_HID_GENERAL_OUT_REPORT_LENGTH 64
#define RT_USB_DEVICE_HID_GENERAL_IN_REPORT_LENGTH 64
这个识别与不识别的差距仅仅是:修改了 VIP 与 PID
问题分析与解决
在 rtthread 官网上提问
如果这个vid/pid有其他usb设备使用,并在win10上枚举了,这个vid/pid就不能用了。得改一个全新的,没被其他设备使用过的