Что требуется для Windows, чтобы распознать пользовательское устройство HID?

В настоящее время я работаю с комплектом разработчика STM32F746G-DISCO и пытаюсь создать универсальное устройство HID. (не клавиатура, не контроллер, не мышь и т. д.) Используя библиотеки mbed, установка была довольно простой и безболезненной. Я смог импортировать их USBHID.h и объявить устройство.

USBHID(descriptor.output_report_length, descriptor.input_report_length, descriptor.vendor_id, descriptor.product_id, descriptor.product_release, descriptor.connect)

Учитывая значения, определенные значениями по умолчанию в этой структуре дескриптора, которую я создал:

{
this->output_report_length = 64;
this->input_report_length = 64;
this->vendor_id = 0x1234;
this->product_id = 0x500;
this->product_release = 0x0001;
this->connect = true;
}

Все это создает описание отчета USB HID в USBHID.cpp (библиотека mbed):

uint8_t * USBHID::reportDesc() {
static uint8_t reportDescriptor[] = {
0x06, LSB(0xFFAB), MSB(0xFFAB),
0x0A, LSB(0x0200), MSB(0x0200),
0xA1, 0x01,         // Collection 0x01
0x75, 0x08,         // report size = 8 bits
0x15, 0x00,         // logical minimum = 0
0x26, 0xFF, 0x00,   // logical maximum = 255
0x95, input_length, // report count
0x09, 0x01,         // usage
0x81, 0x02,         // Input (array)
0x95, output_length,// report count
0x09, 0x02,         // usage
0x91, 0x02,         // Output (array)
0xC0                // end collection

};
reportLength = sizeof(reportDescriptor);
return reportDescriptor;
}

При заданной длине ввода, длина выхода передается через структуру, которую я показал выше.

В настоящее время я запускаю код и подключил USB-порт, который теперь должен быть USBHID, к моему компьютеру, и теперь устройство отображается в диспетчере устройств следующим образом:

Под интерфейсом устройства

Я вижу это устройство, которое я запрограммировал:
введите описание изображения здесь

И Windows заявляет, что устройство не удалось запустить. Это почему? Как происходит процесс рукопожатия для создания действительного устройства? Чего мне здесь не хватает?

Я сделал еще один шаг и убедился, что другие примеры mbed работают. Одна из них предназначалась для USB-HID мыши, и она обнаруживает и функционирует по желанию.

Я настраиваю этот проект для отправки и получения пользовательских отчетов на это устройство.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]