Skip to main content
Visitor II
April 27, 2007
Question

USB LIBRARY DOUBT

  • April 27, 2007
  • 2 replies
  • 862 views
Posted on April 27, 2007 at 07:03

USB LIBRARY DOUBT

    This topic has been closed for replies.

    2 replies

    Visitor II
    May 17, 2011
    Posted on May 17, 2011 at 09:42

    Hello,

    I'm trying to use the STRUSB libs in my project.

    In order to use some custom command I found that the

    pInformation->USBwValue has the low and high bytes swapped.

    so if I send 0x00001 from pc I obtain 0x1000 in fw.

    I thought that in the libs the convention was big endian....

    I cheched the project config in the examples and the

    settings are little endian (like my config)

    I modified the code of Setup0_Process() as following and

    the code seem to work.

    Any remarks ?

    u8 Setup0_Process(void)

    {

    u16* pBuf;

    pBuf= (u16 *)(GetEPRxAddr(ENDP0)+PMAAddr);

    if (pInformation->ControlState != PAUSE)

    {

    pInformation->USBbmRequestType = (*pBuf)&0xFF; /* bmRequestType */

    pInformation->USBbRequest = ((*pBuf)&0xFF00)>>8; /* bRequest */

    pInformation->USBwValue = (*(pBuf+1)); /* wValue */

    pInformation->USBwIndex = (*(pBuf+2)); /* wIndex */

    // pInformation->USBwValue = ByteSwap(*(pBuf+1)); /* wValue */

    // pInformation->USBwIndex = ByteSwap(*(pBuf+2)); /* wIndex */

    pInformation->USBwLength = *(pBuf+3); /* wLength */

    }

    ....

    }

    Visitor II
    May 17, 2011
    Posted on May 17, 2011 at 09:42

    sorry.. a little mistake in previous post :)

    In this way the code doesn work...

    I modify also in usb_core.h

    #define USBwValue0 USBwValues.bw.bb1

    #define USBwValue1 USBwValues.bw.bb0

    #define USBwIndex USBwIndexs.w

    #define USBwIndex0 USBwIndexs.bw.bb1

    #define USBwIndex1 USBwIndexs.bw.bb0

    ....

    The code is workin now but I didn't udestand the byteswap....