从框图中,可以看出除了USB标准定义的一些描述符外,HID设备还必须定义HID描述符。另外设备和主机的通信是通过报告的形式来实现的,所以还必须定义报告描述符;而物理描述符不是必需的。还有就是HID描述符是关联于接口(而不是端点)的,所以设备不需要为每个端点都提供一个HID描述符。
很明显,可以利用前面提到的端点外设事件EVENTS_ENDEPIN[n] 和EVENTS_EPDATA;即一旦当前的数据已经成功发送,就立即启动easy dma准备好新的端点数据,在下一帧内主机就可以取到新的数据,如此循环往复汇报率就能够达到1000Hz;非常方便的是,USB驱动已经有事件APP_USBD_HID_USER_EVT_IN_REPORT_DONE供应用层代码使用;通...
usb hid 类是比较大的一个类,hid类设备属于人机交互操作的设备。用于控制计算机操作的一些场合,如usb鼠标、usb键盘、usb游戏操纵杆、usb触摸板、usb轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用hid设备的一个好处就是,操作系统自到了hid类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用api调用即可...
报告描述符是HID用来 数据传输(data transfer),是对这些传输的数据作用途(usage)上的说明。 USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的数据。在这里,传输和报告的意思相...
安卓USB_HID通信文档 因为一直在研究stm32,需要用到usb hid通信,就研究了安卓与stm32进行usb hid通信,目前已经能进行正常通信,我这里只跟大家说一下通信时需要注意的问题。 usb hid通信 单次最多发送64字节,这64字节中:第一个字节代表了数据长度,所以 这就相当于单次最多发送63字节,这里要注意的是编写发送程序...
USB接口HID设备协议.docx,标题USB接口HID设备协议内容介绍USB接口HID设备协议,并分析其特点特点小量数据存储报告格式可以携带小量或中量的数据快速设备的最大每笔事务大小为8B,全速设备的最大每笔事务大小为64B使用多笔事务进行数据传输快速的中断端点每10ms内最多1笔事务
在USB协议中,HID设备的类型定义放置在接口描述符中,USB的设备描述符和配置描述符中不包含HID设备的信息。因此,对于某些特定的HID设备,可以定义多个接口,一个接口为HID设备类即可。。当USB一个设备为HID设备时,其设备描述符里面的bDeviceClass、bDeviceSubClass、bDeviceProtocol应为0,具体的定义在接口描述符中,接口描...
点击1处,选中后Device(FS),3处选择HID,其他参数默认。 配置USB 时钟 USB时钟需设置为48MHz。 增加堆栈大小,防止溢出 3. 编辑代码 更改为键盘。 设备描述符改为键盘 usbd_hid.c文件中USBD_HID_CfgFSDesc[USB_HID_CONFIG_DESC_SIZ]对应值由0x02改为0x01。
connectivity这里打开usb,勾选Device,参数保持默认即可。 Middleware and Software Packs这里选择USB_DEVICE,Mode这里选择Custom HID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也可以。 之后配置好时钟和其他设置,生成代码即可。 2、 我用的vscode+platformio开发环境,新建工程并打开导出的代码。Cubemx和...