теперь вопрос в другом... что должен содержать в себе дескриптор устройства?)
Конкретно параметры
Код
unsigned char bcdUSBL; //версия спецификации USB в формате BCD
unsigned char bcdUSBH; //версия спецификации USB в формате BCD
unsigned char bDeviceClass; //код класса устройства USB
unsigned char bDeviceSubclass; //код подкласса устройства USB
unsigned char bDeviceProtocol; //код протокола USB
unsigned char idVendorL; //идентификатор изготовителя устройства
unsigned char idVendorH; //идентификатор изготовителя устройства
unsigned char idProductL; //идентификатор продукта
unsigned char idProductH; //идентификатор продукта
unsigned char bcdDeviceL; //номер версии устройства в формате BCD
unsigned char bcdDeviceH; //номер версии устройства в формате BCD
unsigned char iManufacture; //индекс дескриптора строки описывающей изготовителя
unsigned char iProduct; //индекс дескриптора строки описывающей продукт
unsigned char iSerialNumber; //индекс дескриптора строки описывающей серийный номер устройства
unsigned char bNumConfigurations; //количество возможных конфигураций устройства
и еще я ему пытаюсь отослать дескриптор устройства 2 байта отослать удается
дальше хост сбрасывает шину и все снова...
по библиотекам (спасибо sergeeff) параметры
Код
unsigned char bDeviceClass; //код класса устройства USB
unsigned char bDeviceSubclass; //код подкласса устройства USB
unsigned char bDeviceProtocol; //код протокола USB
равны нулю
для HID устройств
(я пытаюсь для начала мышку реализовать)
судя по библиотекам первым младший байт отправлять не надо...
в общем я хосту пытаюсь отправить дескриптор устройства
Код
static const struct USB_DEVICE_DESCRIPTOR
{
unsigned char bLenth; //0x12
unsigned char bDescriptorType; //0x01
unsigned short int bcdUSBL; //0x0200
unsigned char bDeviceClass; //0x00
unsigned char bDeviceSubclass; //0x00
unsigned char bDeviceProtocol; //0x00
unsigned char bMaxPacketSize0; //0x08
unsigned short int idVendor; //0x03EB
unsigned short int idProduct; //0x6200
unsigned short int bcdDevice; //0x0100
unsigned char iManufacture; //0x00
unsigned char iProduct; //0x00
unsigned char iSerialNumber; //0x00
unsigned char bNumConfigurations; //0x01
после того как девайс отправит 2ые 8 байт, то есть последнее что передает это bcdDevice, следует сброс шины и все начинается заново.
первые 8 байт девайс без проблем передает, далее следует подтверждение приема я передаю следующие 8 байт, далее следует сброс шины и все снова...???