请翻开《Device Class Definition for Human Interface Devices (HID) Version 1.11》7.2.2 Set_Report Request 现在我们先那键盘来做实验来观察。[备注:测试当时NUM指示灯亮] 通过笔记本上按“capslock”按键来观察外置键盘上大小写的指示灯。 通过USBlyzer观察到 发送03的时候大小指示灯为亮 发送01的时候大小指示灯...
我们继续给USBH_HID_SetReport的返回结果加log信息。 View Code 观察log,只有当USBH_HID_SetReport的返回值为 USBH_OK = 0,时候我们才能看到灯的变化。 那我们继续修改代码 /*USER CODE BEGIN 1*/voidUSBH_HID_EventCallback(USBH_HandleTypeDef *phost) { HID_TypeTypeDef type=HID_UNKNOWN; USBH_ErrLog...
还有就是HID描述符是关联于接口(而不是端点)的,所以设备不需要为每个端点都提供一个HID描述符。 接口描述符中bInterfaceClass的值必须为0x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设...
修改 HID SetReport 函数,接收由 PC 机向 OUT 端点(Endpoint2)发送的数据包。在 usbx_customhid_thread_entry 中实现 IN 端点(Endpoint1)向 PC 机 1S 发送一次数据功能。添加 HID report 描述符,我们使用 USB 官网 HID 报告描述符工具生成自定义 Custom HID report 描述符,该工具可以到网址 https://www....
标准命令是每种USB设备都要支持的,类命令则与USB设备所述类有关,比如USB HID设备有HID类特有的命令,如Get_Report、SetReport等。 2 USB标准命令 USB 1.1的规范中,规定了11种USB标准命令,用来完成各种目的。根据不同的命令,相应的字段含义也有所不同。表2列出了11个USB标准命令的功能。
① Get_Report——主机用控制传输从设备接收数据,所有HID类设备都要支持这个请求; ② Set_Report——设备用控制传输接收主机的数据,设备可以不支持此请求; ③ Get_Idle——主机读取设备当前的空闲速率,设备可以不支持此请求; ④ Set_Idle——设置闲置状态,设备可不支持此请求; ...
set report使用control端点实现,具体就是通过HID类的请求,然后通过Data stage携带set report数据....
USB/HID设备报告描述符详解 概述: 报告在这里意思是数据传输(datatransfer),而报告描述符是对这些传输的数据作用途(usage)上的说明。 USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction)。交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口...
长item,其bType位值为3,bTag值为F HID设备6种特定请求 HID类请求(命令)包格式 HID类请求 GET_REPORT:主机通过控制端点获取一个Report SET_REPORT:主机发送一个Report给设备,用以设置input,output或者feature GET_IDLE SET_IDLE GET_PROTOCOL SET_PROTOCOL...
对于任何一种描述符,都是以汇编语言中的一个标记来分辨,例如第一个接口的报告描述符的标记就称作hid_report_descriptor00;同样的,第二个界面的就称作 hid_report_descriptor01。记得在报告描述符结束处也加上一个标记,如end_hid_report_descriptor00 和end_ hid_report_descriptor01。这个结束标记除了有助于阅读...