Я знаю, что максимальная скорость USB HID-устройства составляет 64 кбит / с, но на осциллографе я получаю транзакции каждые 1 мс, которые содержат только ОДИН байт. Дескриптор моего отчета HID, указанный ниже. Что мне нужно изменить, чтобы достичь 64 Кбит / с? В настоящее время мой bInterval = 0x01 (1 мс опрос для конечной точки прерывания), но фактическая скорость составляет 65 байт / с, потому что он добавляет байт reportID к моим 64-байтовым данным. Думаю, USB не должен делить одиночный пакет 64 + 1 на 65 однобайтовых пакетов. Для эксперимента я использую reportID = 1 (с STM32 на ПК). Со стороны ПК я использую hidapi.dll для взаимодействия.
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
/* USER CODE BEGIN 0 */
USAGE_PAGE(USAGE_PAGE_UNDEFINED)
USAGE(USAGE_UNDEFINED)
COLLECTION(APPLICATION)
REPORT_ID(1)
USAGE(1)
LOGICAL_MIN(0)
LOGICAL_MAX(255)
REPORT_SIZE(8)
REPORT_COUNT(64)
INPUT(DATA | VARIABLE | ABSOLUTE)
REPORT_ID(2)
USAGE(2)
LOGICAL_MIN(0)
LOGICAL_MAX(255)
REPORT_SIZE(8)
REPORT_COUNT(64)
OUTPUT(DATA | VARIABLE | ABSOLUTE)
REPORT_ID(3)
USAGE(3)
LOGICAL_MIN(0)
LOGICAL_MAX(255)
REPORT_SIZE(8)
REPORT_COUNT(64)
OUTPUT(DATA | VARIABLE | ABSOLUTE)
REPORT_ID(4)
USAGE(4)
LOGICAL_MIN(0)
LOGICAL_MAX(255)
REPORT_SIZE(8)
REPORT_COUNT(64)
OUTPUT(DATA | VARIABLE | ABSOLUTE)
/* USER CODE END 0 */
0xC0 /* END_COLLECTION */
};