Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Знатоки USB, гляньте пжлст мой report дескриптор
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
NaughtyFreak
Всем доброго времени суток!

Делаю custom hid device, перерыл кучу инфы и примеров по hid'у и если с дескрипторами девайсов-конфигов-интерфесов-эндпоинтов все ясно, то никак не могу въехать по какому принципу пишется репорт дескриптор. Пересмотрел много вариантов, у всех по-разному, в т.ч. смотрел на хабре вот это STM32 и USB-HID — это просто
Скачал прогу-генератор репорт-дескриптора. Начало он мне выдал несколько иное (почему???), нежели по ссылке или то, что находил.
В кратце: 1 эндпоинт, транзакция в 24 байта (массив float'ов, записанный ввиде байтового набора), буферизация (я так понял - лучше сделать?), usage vendor defined, всего 1 репорт. Параграф 6.2.2 спец-фии hid прочел, но как-то туго пока понимание приходит.
В общем вопрос к знатокам: правильно ли я делаю и будет ли оно работать?
Вот сам дескриптор:
Код
const BYTE HID_Report_Descriptor [sizeof(HID_Report_Descriptor)] =
   {      
      0x05, 0x01                       // usage page (generic desktop)
      0x0b, 0x01, 0x00,0x00, 0xff,  // usage (vendor defined usage 1)
      0xa1, 0x01,               // collection (application)
      0x85, 0x01,              // report id (1)
      0x0b, 0x01, 0x00,0x00, 0xff,  // usage (vendor defined usage 1)
      0x15, 0x00,               // logical minimum (0)
      0x26, 0xff, 0x00,               // logical maximum (255)
      0x75, 0x08,                 // report size (8)
      0x95, 0x18,               // report count (24)
      0x82, 0x82, 0x01,            // input (data, variable, abs, buf)
      0xc0                     // end collection
   };
YAM
Код
  0x06, 0x00, 0xFF,       //     Usage Page (Vendor-Defined 1)
  0x09, 0x01,             //     Usage (Vendor-Defined 1)
  0xA1, 0x01,             //     Collection (Application)
  0x85, 0x01,             //         Report ID (1)
  0x15, 0x00,             //         Logical Minimum (0)
  0x26, 0xFF, 0x00,       //         Logical Maximum (255)
  0x75, 0x08,             //         Report Size (8)
  0x95, 0x18,             //         Report Count (24)
  0x09, 0x00,             //         Usage (Undefined)
  0xB2, 0x02, 0x01,       //         Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Buf)
  0xC0                    //     End Collection

Вот так точно будет....
0x85, 0x01, // Report ID (1) - можете смело убрать, если у Вас всего один report...
NaughtyFreak
Ага, спс!

А зачем писать в конце
Код
0x09, 0x00,             //         Usage (Undefined)
?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.