HID规范
+ -

HID 设置空闲SetIdle

2020-10-31 78 0
欢迎加入官方QQ群:952873936或联系站长进行技术交流。

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 毫秒和操纵杆和鼠标的为无穷大。

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 ......
作者信息
USB中文网
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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