В одно время сделал устройство в виде небольшой клавиатуры с кнопками и светодиодами на микропроцессоре LPC1343.
За основу было взято описание использования встроенного аппаратного стека HID устройства в этот микропроцессор:
http://www.nxp.com/documents/application_note/AN10904.pdfи презентация
http://ics.nxp.com/literature/presentation...lpc13xx.usb.pdfСтруктура с настройками этого устройства приведена ниже:
Код
HidDevInfo.idVendor = USB_VENDOR_ID;
HidDevInfo.idProduct = USB_PROD_ID;
HidDevInfo.bcdDevice = USB_DEVICE;
HidDevInfo.StrDescPtr = (uint32_t)&USB_StringDescriptor[0];
HidDevInfo.InReportCount = 17;
HidDevInfo.OutReportCount = 1;
HidDevInfo.SampleInterval = 0x02;
HidDevInfo.InReport = GetInReport;
HidDevInfo.OutReport = SetOutReport;
Для LPC1768 существует аналогичный пример от Keil, который лежит в папке с установленной программой по адресу: "C:\Keil\ARM\Boards\Keil\MCB1700\USBHID\"
Вопрос к тем, кто разбирался с этим HID.
В этом примере функции SetOutReport и GetInReport могут передавать и принимать только один байт. Каким образом размер буфера можно увеличить до 64 (в описанном мной примере это делается путем установки переменных InReportCount и OutReportCount )?
Второй вопрос: как поднять скорость вызова функции GetInReport() до 2 мс?
Умные речи подобны строкам, напечатанным курсивом. К. Прутков