Цитата(shrek @ Jan 30 2009, 10:51)

Спасибо за ответ)
Я вчера тоже понял в чем суть первых восьми байт)
Но непонятки на счет вторых восьми байт остаются...
и поле wLenght = 40 00 что оно может означать?... В спецификации это число байт для передачи... куда?... 4000 это 16 килобайт)))
Как пишет Агуров 00 01 это есть wValue
но... старший байт это есть тип дескриптора... то есть 01 - Стандартный дескриптор устройства... но почему то он на месте младшего байта...
я все посылки писал в массив и первые 8 байт стабильно 80 06 00 01 00 00 40 00 ничего больше
Поля
bmRequestType и
bRequest однобайтные.
Все остальные поля двухбайтные. Я уже точно не помню но кажется по спецификации при двухбайтных параметрах сначала передаётся младший байт потом старший (отсюда и получается wLenght = 40 00 = low byte:high byte т.е. длина = 0040h = 64 байта)
Посмотрите приложенную книгу - я по ней когдато разбирался со стандартными запросами. Там всё коротко и довольно понятно. Все неясные моменты лучше смотреть в спецификации.
Создайте по этой книге вот такой дескриптор устройства:
Код
//Структура дескриптора устройства
/* Global constant structure located in FLASH */
flash struct st_usb_device_descriptor
{
int bLenth; //длина дескриптора
int bDescriptorType; //тип дескриптора
int bcdUSBL; //версия спецификации USB в формате BCD
int bcdUSBH; //версия спецификации USB в формате BCD
int bDeviceClass; //код класса устройства USB
int bDeviceSubclass; //код подкласса устройства USB
int bDeviceProtocol; //код протокола USB
int bMaxPacketSize0; //мах размер нулевой конечной точки
int idVendorL; //идентификатор изготовителя устройства
int idVendorH; //идентификатор изготовителя устройства
int idProductL; //идентификатор продукта
int idProductH; //идентификатор продукта
int bcdDeviceL; //номер версии устройства в формате BCD
int bcdDeviceH; //номер версии устройства в формате BCD
int iManufacture; //индекс дескриптора строки описывающей изготовителя
int iProduct; //индекс дескриптора строки описывающей продукт
int iSerialNumber; //индекс дескриптора строки описывающей серийный номер устройства
int bNumConfigurations; //количество возможных конфигураций устройства
};
Попробуйте отослать его и дождатся следующего запроса
SET_ADDRESS 0x0005