你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 USB 如何把"input report byte length 2" 修改为多个多个字节

[复制链接]
yimao111 提问时间:2016-8-3 20:24 /
今天用STM32CUBEMX 生成USB 的 custom human interface device 模式。
根据网上的教程,很容易地与上位机通信。
2.png
我用BUS HOUND 抓数据时,发现每个包都是2byte。
4.png
但是项目需要传输多位,我以为修改
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,sendbuffer , 2 );
后面的2 就可以改变每个包数据位数,但是抓包发现数据 被拆分成多个 2 byte 的包。

我上位机显示HID 是 2 byte。
第二行 input report byte length 2
1.png
  1. /** @defgroup USBD_AUDIO_IF_Private_Variables
  2. * @{
  3. */
  4. __ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
  5. {
  6.   /* USER CODE BEGIN 0 */
  7.    
  8.     0x06, 0xFF, 0x00, /* USAGE_PAGE (Vendor Page: 0xFF00) */
  9.     0x09, 0x01, /* USAGE (Demo Kit) */
  10.     0xa1, 0x01, /* COLLECTION (Application) */ /* 6 */ /* LED1 */
  11.     0x85, LED1_REPORT_ID, /* REPORT_ID (1) */
  12.     0x09, 0x01, /* USAGE (LED 1) */
  13.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  14.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  15.     0x75, 0x08, /* REPORT_SIZE (8) */
  16.     0x95, LED1_REPORT_COUNT, /* REPORT_COUNT (1) */
  17.     0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  18.     0x85, LED1_REPORT_ID, /* REPORT_ID (1) */
  19.     0x09, 0x01, /* USAGE (LED 1) */
  20.     0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */ /* 26 */ /* LED2 */
  21.     0x85, LED2_REPORT_ID, /* REPORT_ID 2 */
  22.     0x09, 0x02, /* USAGE (LED 2) */
  23.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  24.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  25.     0x75, 0x08, /* REPORT_SIZE (8) */
  26.     0x95, LED2_REPORT_COUNT, /* REPORT_COUNT (1) */
  27.     0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  28.     0x85, LED2_REPORT_ID, /* REPORT_ID (2) */
  29.     0x09, 0x02, /* USAGE (LED 2) */
  30.     0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */ /* 46 */ /* LED3 */
  31.     0x85, LED3_REPORT_ID, /* REPORT_ID (3) */
  32.     0x09, 0x03, /* USAGE (LED 3) */
  33.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  34.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  35.     0x75, 0x08, /* REPORT_SIZE (8) */
  36.     0x95, LED3_REPORT_COUNT, /* REPORT_COUNT (1) */
  37.     0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  38.     0x85, LED3_REPORT_ID, /* REPORT_ID (3) */
  39.     0x09, 0x03, /* USAGE (LED 3) */
  40.     0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
  41.     /* 66 */
  42.     /* LED4 */
  43.     0x85, LED4_REPORT_ID, /* REPORT_ID 4) */
  44.     0x09, 0x04, /* USAGE (LED 4) */
  45.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  46.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  47.     0x75, 0x08, /* REPORT_SIZE (8) */
  48.     0x95, LED4_REPORT_COUNT, /* REPORT_COUNT (1) */
  49.     0xB1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  50.     0x85, LED4_REPORT_ID, /* REPORT_ID (4) */
  51.     0x09, 0x04, /* USAGE (LED 4) */
  52.     0x91, 0x82, /* OUTPUT (Data,Var,Abs,Vol) */
  53.     /* 86 */
  54.     /* key Push Button */
  55.     0x85, KEY_REPORT_ID, /* REPORT_ID (5) */
  56.     0x09, 0x05, /* USAGE (Push Button) */
  57.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  58.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  59.     0x75, 0x01, /* REPORT_SIZE (1) */
  60.     0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */
  61.     0x09, 0x05, /* USAGE (Push Button) */
  62.     0x75, 0x01, /* REPORT_SIZE (1) */
  63.     0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  64.     0x75, 0x07, /* REPORT_SIZE (7) */
  65.     0x81, 0x83, /* INPUT (Cnst,Var,Abs,Vol) */
  66.     0x85, KEY_REPORT_ID, /* REPORT_ID (2) */
  67.     0x75, 0x07, /* REPORT_SIZE (7) */
  68.     0xb1, 0x83, /* FEATURE (Cnst,Var,Abs,Vol) */
  69.     /* 114 */
  70.     /* Tamper Push Button */
  71.     0x85, TAMPER_REPORT_ID,/* REPORT_ID (6) */
  72.     0x09, 0x06, /* USAGE (Tamper Push Button) */
  73.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  74.     0x25, 0x01, /* LOGICAL_MAXIMUM (1) */
  75.     0x75, 0x01, /* REPORT_SIZE (1) */
  76.     0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */
  77.     0x09, 0x06, /* USAGE (Tamper Push Button) */
  78.     0x75, 0x01, /* REPORT_SIZE (1) */
  79.     0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  80.     0x75, 0x07, /* REPORT_SIZE (7) */
  81.    
  82.     0x81, 0x83, /* INPUT (Cnst,Var,Abs,Vol) */
  83.     0x85, TAMPER_REPORT_ID,/* REPORT_ID (6) */
  84.     0x75, 0x07, /* REPORT_SIZE (7) */
  85.     0xb1, 0x83, /* FEATURE (Cnst,Var,Abs,Vol) */
  86.     /* 142 */
  87.     /* ADC IN */
  88.     0x85, ADC_REPORT_ID, /* REPORT_ID */
  89.     0x09, 0x07, /* USAGE (ADC IN) */
  90.     0x15, 0x00, /* LOGICAL_MINIMUM (0) */
  91.     0x26, 0xff, 0x00, /* LOGICAL_MAXIMUM (255) */
  92.     0x75, 0x08, /* REPORT_SIZE (8) */
  93.     0x81, 0x82, /* INPUT (Data,Var,Abs,Vol) */
  94.     0x85, ADC_REPORT_ID, /* REPORT_ID (7) */
  95.     0x09, 0x07, /* USAGE (ADC in) */
  96.     0xb1, 0x82, /* FEATURE (Data,Var,Abs,Vol) */
  97.     /* 161 */

  98.   /* USER CODE END 0 */
  99.   0xC0    /*     END_COLLECTION                 */
  100.    
  101. };
复制代码



收藏 评论0 发布时间:2016-8-3 20:24

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版