libusb_interrupt_transfer заканчивается на LIBUSB_ERROR_IO
Запись на устройство с помощью libusb_interrupt_transfer(...), всегда заканчивается LIBUSB_ERROR_IO. Версия Libusb: libusb-1.0.4 Код STM32F103 - первый пример для скрытых устройств
Проверено:
- Конечная точка в коде установлена как в lsusb: 0x81
- в usbmon я вижу запросы на дескриптор и т. д., но когда я запускаю libusb_interrupt_transfer (...) нет связи (нет входа в usbmon)
- Плата STM32 никогда не попадает в указанную конечную точку прерывания
- Используется правильная ручка устройства
Каковы будут следующие шаги, чтобы отследить проблему?
Вот вывод lsusb:
Bus 001 Device 005: ID 0483:5750 STMicroelectronics
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0483 STMicroelectronics
idProduct 0x5750
bcdDevice 2.00
iManufacturer 1 STMicroelectronics
iProduct 2 STM32 Custm HID
iSerial 3 8D8316685052
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 163
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 32
Device Status: 0x0001
Self Powered