HID规范
+ -

HID 设置空闲SetIdle

2020-10-31 3482 1

SetIdle用于设置HID设备空闲速率。

默认情况下,空闲速率为0。
SetIdle是一个非必要请求。

  • bmRequestType(1):0x21
  • bRequest(1): SET_IDLE,值为0A.
  • wValue(2):高字节用于指定空闲速率,以4ms为单位,可选的值为4ms~1020ms,低字节为ReportId.
  • wIndex(2):接口ID
  • wLength(2):数据长度,为0

SetIdle由主机发输,用于向设备的中断端点设置无动作参数,该请求使中断输入管道上的特定报告不再输放到主机,直到发生新事件或经过指定的时间量再输入。

该请求使端点在其当前报告保持不变的情况下拒绝对端点中的中断进行任何轮询。 在没有变化的情况下,轮询将在给定的基于时间的持续时间内继续 NAK

SetIdle请求一般发生在HID设备枚举完成后用于设置HID设备,以节省USB带宽。

如果该中断端点可以返回多个报告,则 Set_Idle 请求可用于仅影响为指定报告 ID 生成重复报告的速率。 例如,具有两个输入报告的设备可以为报告 ID 1 指定 20 毫秒的空闲率,为报告 ID 2 指定 500 毫秒的空闲率。

键盘的推荐默认空闲率(设备初始化时的速率)为 500 毫秒和操纵杆和鼠标的为无穷大。

当然,当设备不支持该请求时,可以返回STALL.
SET_IDLE

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

HID 设置空闲SetIdle
SetIdle用于设置HID设备空闲速率。默认情况下,空闲速率为0。SetIdle是一个非必要请求。bmRequestType(1):0x21bRequest(1): SET_IDLE,值为0A.wValue(2):高字节用于指定空闲速率,以4ms为单位,可选的值为4ms~1020ms,低字节......
HID设备SET_IDLE时遇到c0000004
下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。没有抓包,没的截图…我是一顿乱扯,从硬件电路到各种抓包方法….晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:Device Length Phase Data ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!