设置地址

设置地址需要注意的是该命令只能从地址 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;
}