Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Не могу получить получить из USB данные по EP0


Автор: Nzdrw 6.7.2007, 12:11
Передача проходит успешно - функция usb_control_msg - возвращает кол-во полученных байт - которое соответствует запрошенному кол-ву. В любом случае - НЕ отрицательное значение. Однако в буффер ничего не попадает.... вот код -
Код

return usb_contrtol_msg ( 
ICD->dev,    //указатель на устройство
usb_rcvctrlpipe(ICD->dev, 0),  //номер точки 
0xB1, //код запроса - в устройстве обработка и отправка значений...
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, //код направления, типа запроса, и стороны прием
0, //передаваемое значение
0, // оффсет
cp, //указатель на буфер (u8 *cp; u8 = kzalloc (32, GFP_KERNEL);
8, // длинна передачи, кол-во передаваемых байт
500); // таймаут.                                             

Дак вот, возвращаеть 8... а буффер пустой - в винде это устройство работает исправно. Есть идеи ПОЧЕМУ и что НЕ ТАК??? smile 
Заранее спасибо.

Автор: Nzdrw 6.7.2007, 12:46
Оказывается, что ВОТ ТАК не работает:
Код

info (" CTRL value = %d", ICD_sndctrl(1,0xB1, 0, cp,1));

описание этой функции см выше... (return ....)
не работает именно прием информации...
однако запись в регистры устройства... таким же макаром - РАБОТАЕТ. чесно говоря, странно.
Короче, поставил рядом с info("..."); и всё заработало... smile как я рад...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)