请问我想把一个FREEJOY做的USB游戏手柄,转换成蓝牙游戏手柄,需要哪款芯片?

有对应的案例吗?

谢谢!

我司支持USB主机的带BLE的MCU都可以实现。综合考虑低功耗、成本,只跑USB转蓝牙那么内存资源开销也不大,推荐CH592。


请问有对应的例程吗?

会一点arduino和esp32

谢谢!

CH582行吗? 淘宝上的开放板10元左右。


CH582也可以的。例程中没有直接操作“freejoy”手柄的USB主机代码,要自行适配。

image.png


请问我已经添加了 #define DEV_TYPE_Joystick         (USB_DEV_CLASS_HID | 0x04)

然后在输出中查看到出错信息:

Reset host port


GetDevDescr: x12 x01 x00 x02 x00 x00 x00 x40 x83 x04 x57 x57 x00 x02 x01 x02 x03 x01 

GetCfgDescr: x09 x02 x42 x00 x02 x01 x00 x80 x32 x09 x04 x00 x00 x01 x03 x00 x00 x00 x09 x21 x10 x01 x00 x01 x22 x33 x00 x07 x05 x81 x03 x40 x00 x01 x09 x04 x01 x00 x02 x03 x00 x00 x00 x09 x21 x10 x01 x00 x01 x22 x60 x00 x07 x05 x82 x03 x40 x00 x02 x07 x05 x02 x03 x40 x00 x10 

01 02 

AnalyzeHidIntEndp 02

InitRootDev Err = FB

EnumAllRootDev err = FB


USB dev out

USB dev in


Reset host port


GetDevDescr: InitRootDev Err = 15

EnumAllRootDev err = 15


USB dev out

USB dev in


Reset host port


GetDevDescr: InitRootDev Err = 15

EnumAllRootDev err = 15


该怎么处理?


GetDevDescr: x12 x01 x10 x01 x00 x00 x00 x08 x4F x1C x02 x00 x30 x03 x01 x02 x00 x01 

GetCfgDescr: x09 x02 x3B x00 x02 x01 x00 xA0 x31 x09 x04 x00 x00 x01 x03 x01 x01 x00 x09 x21 x10 x01 x00 x01 x22 x36 x00 x07 x05 x81 x03 x08 x00 x0A x09 x04 x01 x00 x01 x03 x00 x00 x00 x09 x21 x10 x01 x00 x01 x22 x32 x00 x07 x05 x82 x03 x03 x00 x0A 

01 02 

AnalyzeHidIntEndp 02

x05 x01 x09 x06 xA1 x01 x05 x08 x19 x01 x29 x03 x15 x00 x25 x01 x75 x01 x95 x03 x91 x02 x95 x05 x91 x01 x05 x07 x19 xE0 x29 xE7 x95 x08 x81 x02 x75 x08 x95 x01 x81 x01 x19 x00 x29 x91 x26 xFF x00 x95 x06 x81 x00 xC0 x82 x03 x03 x00 x0A x00 x00 x00 x00 x00 

USB-Keyboard Ready


键盘能正常加载


按照例程的解析思路,是根据subclass、protocol来判断设备。

image.png

例程中做了键盘设备的识别,是通过接口描述符中的HID类别来区分的(只有键盘鼠标这两个支持bios输入的设备,可以做例程中判断subclass、protocol的方式来识别设备)。

其他HID设备,只能解析到下图的判断,再往下只能判断出“未知设备”。需要您自行添加代码,解析报表描述符中的“使用方法”;或者在端点/报表字段已知的情况下,解析设备描述符中的PID、VID来确认具体接入的是哪个设备。

image.png


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