设置地址

设置地址需要注意的是该命令只能从地址0、端口0发送,等到执行成功以后,需要设置协议栈对象的usbAddr为新的地址,以后所有命令的收发都只能通过新地址进行:
/**
 * USB设备设置地址
 */
short usbSetAddress(unsigned char *pDataBuf, unsigned short addr)
{
    SETUPPKG *setup;
 
    setup = &usbDevSetup;
    setup->bmRequest = 0x0;
    setup->bRequest = SET_ADDRESS;
    setup->wValue = addr;
    setup->wIndex = 0;
    setup->wLength = 0;
 
    ctrlCmdSet((unsigned int)setup, pDataBuf);
 
    usbInfoSetAddr(addr);
 
    return 0;
}