搜索
查看: 1209|回复: 0

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

[复制链接]

该用户从未签到

13

主题

41

帖子

0

蝴蝶豆

中级会员

最后登录
2018-2-27
发表于 2016-8-3 20:24:42 | 显示全部楼层 |阅读模式
今天用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. };
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-6 15:44 , Processed in 1.166099 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表