关于HID中的报告描述符

在项目中写鼠标定位的时候,要写到USB协议,很有描述符,在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。


但是怎么才能写成绝对坐标的报告描述符呢,这个就是,但是实际差一个1,然后就在从串口舒服的数据中每2个字节就加1!


0x05, 0x01,               // Usage Page (Generic Desktop) 

    0x09, 0x02,               // Usage (Mouse)    

    0xA1, 0x01,               // Collection (Application)  

    0x09, 0x01,               // Usage (Pointer)    

    0xA1, 0x00,               // Collection (Physical)   

    0x05, 0x09,               // Usage Page (Buttons)   

    0x19, 0x01,               // Usage Minimum (01)    

    0x29, 0x03,               // Usage Maximum (03)    

    0x15, 0x00,               // Logical Minimum (0)   

    0x25, 0x01,               // Logical Maximum (1)  

    0x75, 0x01,               // Report Size (1)    

 0x95, 0x03,               // Report Count (1)    

    0x81, 0x02,               // Input (Data, Variable, Absolute) 

 

  0x95, 0x01,               // Report Count(1)    

    0x75, 0x05,               // Report Size (7)   

    0x81, 0x01,               // Input (Constant) for padding 

  
    0x05, 0x01,                     // Usage Page (Generic Desktop)
    0x09, 0x30,                     // Usage (X)
   
   0x15, 0x00,      // Logical Minimum (0)    
 0x26, 0x80,0x07,//0xFF, 0x7F,    // LOGICAL_MAXIMUM (1920)
 0x35, 0x00,                    // PHYSICAL_MINIMUM(0)
    0x46, 0x80,0x07,//0xFF, 0xFF,     // PHYSICAL_MAXIMUM(1920)
    0x75, 0x10,                     // Report Size (16)bit
    0x95, 0x01,                     // Report Count (1)
    0x81, 0x02,                     // Input (Data, Variable, Relative) 

   0x09, 0x31,                     // Usage (Y)
   0x15, 0x00,      // Logical Minimum (0)    
  0x26, 0x38,0x04,//0xFF, 0x7F,    // LOGICAL_MAXIMUM (1080)
  0x35, 0x00,                    // PHYSICAL_MINIMUM(0)
    0x46, 0x38,0x04,//0xFF, 0xFF,     // PHYSICAL_MAXIMUM(1080)
    0x75, 0x10,                     // Report Size (16)bit
    0x95, 0x01,                     // Report Count (1)
    0x81, 0x02,                     // Input (Data, Variable, Relative)

     0xc0,                          // END_COLLECTION

    0xa1, 0x01,                     // COLLECTION (Application)
    0x05, 0x09,                     // USAGE_PAGE (Button)
    0x19, 0x01,                     // USAGE_MINIMUM (Button 1)
    0x29, 0x03,                     // USAGE_MAXIMUM (Button 3)
    0x15, 0x00,                     // LOGICAL_MINIMUM (0)
    0x25, 0x01,                     // LOGICAL_MAXIMUM (1)
    0x95, 0x03,                     // REPORT_COUNT (3)
    0x75, 0x01,                     // REPORT_SIZE (1)
    0xb1, 0x02,                     // FEATURE (Data,Var,Abs)   

    0x95, 0x01,                     // REPORT_COUNT (1)
    0x75, 0x05,                     // REPORT_SIZE (5)
    0xb1, 0x03,                     // FEATURE (Cnst,Var,Abs) 

             
    0xC0,                           // End Collection (Physical)

    0xC0                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值