Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB HID PIC18F4550, все работает, что я делаю не так.http://electronix.ru/forum/style_images/1/folder_editor_images/rte-emoticon.gif
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
endeavor
Здравствуйте!
Делаю пример из Microchip App Library, Device - HID - Custom Demos
Как я правильно понял, создается на стороне РС и устройства некий pipe, через который происходит обмен по 64 байта в одном пакете.
Разбор пакетов происходит по первому байту.

Код
        switch (ReceivedDataBuffer[0])                //Look at the data the host sent, to see what kind of application specific command it sent.
        {case 0x80:  //Toggle LEDs command
           mLED_5_Toggle();
break;
            case 0x81:  //Get push button state
                  ToSendDataBuffer[0] = 0x81;                //Echo back to the host PC the command we are fulfilling in the first byte.  In this case, the Get Pushbutton State command.
                  if(sw3 == 1)            //pushbutton not pressed, pull up resistor on circuit board is pulling the PORT pin high
                  {ToSendDataBuffer[1] = 0x01;}
                  else{ToSendDataBuffer[1] = 0x00;}
                  if(!HIDTxHandleBusy(USBInHandle)){
                      USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64); }
            break;

            case 0x37: {
                WORD_VAL w;
                if(!HIDTxHandleBusy(USBInHandle)) {
                  ToSendDataBuffer[0] = 0x37;
                  ToSendDataBuffer[1] = 55;      
                  ToSendDataBuffer[2] = 12;      
                  USBInHandle = HIDTxPacket(HID_EP,(BYTE*)&ToSendDataBuffer[0],64);
                } //if
            }
            break;
          
            default:
            break;

        }// switch(ReceivedDataBuffer[0])


Мне собственно это и нужно. Устройство должно читать кнопки, моргать светодиодами, читать АЦП и тд.

Вопрос, нужно ли для каждой функции создавать endpoint, или определить для себя 255 (или более) типов пакетов и обмениваться данными через готовый endpoint?
galjoen
Цитата(endeavor @ Nov 23 2011, 12:49) *
Вопрос, нужно ли для каждой функции создавать endpoint, или определить для себя 255 (или более) типов пакетов и обмениваться данными через готовый endpoint?

Создавать endpoint не нужно.
А лучше сначала почитать документацию по USB, HID и т.д., она ведь сейчас доступна - а уже потом задавать вопросы...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.