失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 罗技F710手柄描述符数据抓包 - 以及stm32读取usb-hid数据程序

罗技F710手柄描述符数据抓包 - 以及stm32读取usb-hid数据程序

时间:2021-05-29 11:16:10

相关推荐

罗技F710手柄描述符数据抓包 - 以及stm32读取usb-hid数据程序

硬件:罗技F710游戏手柄、一台笔记本电脑软件:USBlyzer分析仪(下载地址)

大家都知道,罗技F710上有D模式和X模式,D模式是普通模式,每帧数据传输8个字节;X模式是xbox手柄模式,有更多的信息,每帧传输15个字节(因为有陀螺仪数据)。

D模式

先看8个字节的通讯协议

以下是抓包内容,各种描述符分类清晰,在stm32的usb驱动程序中可以按照命名轻易找到对应的接口来修改。

Device DescriptorLogitech Cordless RumblePad 2

Configuration Descriptor 1Bus Powered, 98 mA

Interface Descriptor 0/0HID, 2 Endpoints

HID Descriptor

Endpoint Descriptor 811 In, Interrupt, 4 ms

Endpoint Descriptor 011 Out, Interrupt, 8 ms

Interface 0 HID Report DescriptorGame Pad

结合通讯协议,以及报告描述符,可以轻易写joystick驱动代码(用stm32的usb主机模式,读取usb-hid类设备驱动程序即可)

X模式

协议解析

Device DescriptorWireless Gamepad F710

Configuration Descriptor 1Bus Powered, 98 mA

Interface Descriptor 0/0Vendor-Specific, 2 Endpoints

Unrecognized Class-Specific Descriptor

Endpoint Descriptor 811 In, Interrupt, 4 ms

Endpoint Descriptor 022 Out, Interrupt, 8 ms

手柄完整的数据协议:/liudijiang/article/details/86693435#Logitech_Wireless_Gamepad_F710_2

程序

顺便放一个我的程序,裸机读取usb手柄数据并发给串口,基于stm32h743,使用意法半导体官方IDEstm32cubeide生成并修改了部分驱动内容。

蓝奏云:/i8wf6de

PS: 后续有时间更新一下生成和修改的过程,并移植到freertos中官方ide直接生成的freertos + usb-host代码有bug,会直接内存泄露)。

如果觉得《罗技F710手柄描述符数据抓包 - 以及stm32读取usb-hid数据程序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。