Используя пример Keil USB HID, я наконец смог получить мое устройство, которое использует LPC2148 для успешного перечисления в Windows; пример USB HID потребовал некоторой настройки. Я использую метод прерывания передачи. Я использую USBlyzer, чтобы обнюхать мои передачи данных USB.LPC2148 USB Отправить/получить данные
На стороне Windows я в настоящее время использую C# USB-библиотеку (http://www.codeproject.com/Articles/18099/A-USB-HID-Component-for-C) для подключения к моему устройству.
Моя цель проверить передачу данных - отправить байт на устройство, выполнить некоторую тривиальную математическую операцию (например, добавить 2) и отправить новое значение, чтобы я мог проверить, что математика выполнена правильно, и данные был отправлен и получен должным образом.
Прямо сейчас это перечисление, но у меня возникают проблемы с получением LPC2148 для отправки/получения данных. Я нашел эту статью (http://www.keil.com/forum/19713/), в которой объясняется, как отправлять данные на хост.
Он имел следующий код:
usbuser.c
#if USB_CONFIGURE_EVENT
void USB_Configure_Event (void) {
if (USB_Configuration) { /* Check if USB is configured */
GetInReport();
USB_WriteEP(0x81, &InReport, sizeof(InReport));
}
}
#endif
void USB_EndPoint1 (DWORD event) {
switch (event) {
case USB_EVT_IN:
GetInReport();
USB_WriteEP(0x81, &InReport, sizeof(InReport));
break;
}
}
Я использовал эту технику, но нашел несколько проблем: 1. отправить непрерывно и очень быстро, тогда как я только хочу, чтобы отправить данные после получения байта данных, и я только хочу, чтобы он отправил один раз. 2. Похоже, что GetInReport ничего не делал, потому что в моем методе с этим именем я обновил InReport с переменной, которая постоянно увеличивалась на 1. Но в моих полученных данных она всегда оставалась значением по умолчанию и никогда не менялась. 3. Этот код не имеет для меня возможности получать данные с компьютера.
Я был под впечатлением, для моих потребностей прерывания является наилучшим методом передачи. Я верю, что нашел еще пару ссылок о том, как добавить конечные точки из declerations. Моя самая большая проблема теперь в том, что мой USB только подключается иногда и не ведет себя правильно, когда это происходит. –