usb_state: 20 usb_state: 40 usb_state: 50 usb_state: 51 Ci BM Init Ci Addr:01 Ci NC:01 HID_PROTOCOL_KEYBOARD Ci Ci bNumEP:02 Cnf:01 bIfaceNum:00 bNumIface:00 Interface:00 crSU:0D PROTOCOL SET HID_BOOT rcode:0D crSU:0D SET_IDLE rcode:0D crSU:0D RPIPE rcode:0D BM ...
② Set_Report——设备用控制传输接收主机的数据,设备可以不支持此请求; ③ Get_Idle——主机读取设备当前的空闲速率,设备可以不支持此请求; ④ Set_Idle——设置闲置状态,设备可不支持此请求; ⑤ Get_Protocol——主机获得设备的当前活动是引导协议还是报告协议; ⑥ Set_Protocol——在引导协议和报告协议间切换,...
首先进入FS 检测。USB device 进入IDLE 状态 主机驱动产生SE0 Device responds Chirp K 信号。 Host 回应Chirp K 和 Chirp J 对至少保持3对 移除D+ 上RPU 并挂载高速设备终端电阻RS (45Ω),产生高速 J/K 信号 进入HS IDLE 状态。 SOF 整个过程D+ D- 上电平变化。 全速IDLE:D+ 为高电平,D- 低电平 ...
SET_IDLE SET_PROTOCOL GET_REPORT 代码如下: HID类数据处理 HID枚举设置完成之后,USB主机可以请求设备数据,通过调用uhost_process_handler来处理。 通过usbh_interrupt_recv函数给设备发送IN请求 通过usbh_get_urb_status(puhost,phid->chin);获取IN请求的状态 ...
有两种不同的机制可用于选择性地挂起 USB 设备:空闲请求 IRP(IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION)和设置电源 IRP(IRP_MN_SET_POWER)。要使用的机制取决于操作系统和设备类型:复合或非复合。 选择选择性挂起机制 客户端驱动程序(对于复合设备上的接口)启用远程唤醒的接口(IRP_MN_WAIT_WAKE),必须使用空闲...
SET_PROTOCOL GET_PROTOCOL SET_IDLE GET_IDLE SET_REPORT keyboard发送数据 mouse数据处理 如何根据mouse例程进行开发本章将简单描述如何修改mouse例程的代码来进行开发,根据应用具体的需求来修改代码。 根据功能需求修改设备描述信息(mouse_desc.c, mouse_desc.h) ...
--发送设备描述符TS_SET_ADDRESS,--设置地址TS_SET_CONFIGURATION,--设置配置TS_GET_CONFIGURATION,--获取配置TS_GET_INTERFACE,--获取接口TS_SEND_STATUS,--发送状态TS_CLEAR_FEATURE,--清除特性TS_SET_FEATURE,--启用特性TS_SET_INTERFACE,--设置接口TS_READ_ENDPOINT,--从端点读取数据TS_WRITE_ENDPOINT,--...
(hid_class_request_set_protocol(hid_device_handle, HID_REPORT_PROTOCOL_BOOT)); if (HID_PROTOCOL_KEYBOARD == dev_params.proto) { ESP_ERROR_CHECK(hid_class_request_set_idle(hid_device_handle, 0, 0)); } } ESP_ERROR_CHECK(hid_host_device_start(hid_device_handle)); break; default: ...
例如,若要在设备上启用选择性挂起,请添加一个自定义属性部分,用于将bPropertyName字段设置为 Unicode 字符串“DeviceIdleEnabled”和wPropertyNameLength为 36 字节。 将bPropertyData字段设置为“0x00000001”。 属性值存储为小字节序 32 位整数。 在枚举期间,USB 驱动程序堆栈读取扩展属性功能描述符,并在此项下创建...