1 Report Descriptor
1.1 自定义一个输入和输出64字节数据的报告描述符(无Report ID)
读写数据格式:1字节ReportID + payload
1.1.1 例子1
当前例子数据长度是64字节,没有ReportID,所以ReportID取0,数据格式是:0x00 + 64 bytes payload(负载如果不足64字节,一定要补齐64字节,否则Windows ReadFile()和WriteFile()会失败。)
static const unsigned char report_descriptor[] = {
0x06, 0xA0, 0xFF, //用法页(FFA0h, vendor defined)
0x09, 0x01, //用法(vendor defined)
0xA1, 0x01, //集合(Application)
0x09, 0x02, //用法(vendor defined)
0xA1, 0x00, //集合(Physical)
0x06, 0xA1, 0xFF, //用法页(vendor defined)
//输入报告
0x09, 0x03, //用法(vendor defined)
0x09, 0x04, //用法(vendor defined)
0x15, 0x80, //逻辑最小值(0x80 or -128)
0x25, 0x7F, //逻辑最大值(0x7F or 127)
0x35, 0x00, //物理最小值(0)
0x45, 0xFF, //物理最大值(255)
0x75, 0x08, //报告长度Report size (每个字段8位)
0x95, 0x40, //报告数值(64 字节)
0x81, 0x02, //输入(data, variable, absolute)
//输出报告
0x09, 0x05, //用法(vendor defined)
0x09, 0x06, //用法(vendor defined)
0x15, 0x80, //逻辑最小值(0x80 or -128)
0x25, 0x7F, //逻辑最大值(0x7F or 127)
0x35, 0x00, //物理最小值(0)
0x45, 0xFF, //物理最大值(255)
0x75, 0x08, //报告长度(每个字段8位)
0x95, 0x40, //报告数值(64 字节)
0x91, 0x02, //输出(data, variable, absolute)
0xC0, //集合结束(Physical)
0xC0 //集合结束(Application)
};
1.1.2 例子2
static const unsigned char CustomHID_ReportDescriptor[] =
{
0x05, 0x8c, /* USAGE_PAGE (ST Page) */
0x09, 0x01, /* USAGE (Demo Kit) */
0xa1, 0x01, /* COLLECTION (Application) */
// The Input report
0x09,0x03, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x95,0x40, // REPORT_COUNT (64Byte)
0x81,0x02, // INPUT (Data,Var,Abs)
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x95,0x40, // REPORT_COUNT (64Byte)
0x91,0x02, // OUTPUT (Data,Var,Abs)
0xc0 /* END_COLLECTION */
}; /* CustomHID_ReportDescriptor */
1.2 Windows读写HID设备
Windows主机端与自定义USB_HID设备通信详解
http://www.docin.com/p-1423599341.html
-该例子有bushound抓图。注意,第一个字节0x00为ReportID,后面的为64字节payload。
STM32高级教程之USB HID双向数据传输
http://www.embed-net.com/thread-5-1-1.html
1.3 URLs
HID 读写report ID注意事项
https://blog.csdn.net/phenixyf/article/details/49427567
USB自定义HID设备实现-STM32
http://www.eeworld.com.cn/mcu/article_2017011333302.html
USB HID How-to
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zoosenpin/article/details/80102711
猜你喜欢
转载自blog.csdn.net/zoosenpin/article/details/80102711
今日推荐
周排行