用CH582如何检查host连接的设备是游戏手柄

我在用582做一个手柄的扩展设备,键盘和鼠标可以 用U2SearchTypeDevice()找到。

请问游戏手柄要如何查找?假设设备都是usb hid手柄,wind系统中设备描述为

"HID-compliant game controller".

可以获取设备的报表描述符,根据第四个字节来判断。

在报表描述符中有个第一个Usage Page下面的Usage,可以体现出HID设备的分类。

下图中是一部分JoyStick设备的HID报表描述符,第四个字节可以指示为JoyStick设备。键盘/鼠标也在这个位置有所区分。

0e72b2ace2a220e14b905862c08ca49.png

da4c3d4c91381ad1a686b3da49a21b6.png

库函数SearchTypeDevice中目前没有游戏手柄类型的判断,也可自行添加。


USB技术联盟网站有描述符生成工具:https://usb.org/document-library/hid-descriptor-tool

Joystick是0x04,Gaming Controls的话是0x05


只有登录才能回复,可以选择微信账号登录