阅读:1175回复:0
大家看看在SL811HS上这样写OUT命令对否?
if(pid == PID_OUT)
{ wLen -= (WORD)xferLen; // update remainding wLen value cmd ^= 0x40; // toggle DATA0/DATA1 dataX++; if(wLen>0) //wLen xferLen { // was all completed or wLen!=0 addr = (dataX & 1) ? data1:data0; // select next address for data xferLen =(BYTE)(wLen>=wPayload) ? wPayload:wLen; // get data length required if(xferLen) { SL11BufWrite(addr,buffer,xferLen); // write to SL811HS buffer = buffer + xferLen; } if (FULL_SPEED) // sync with SOF transfer cmd |= 0x20; SL11Write(EP0XferLen, xferLen); // select next xfer length SL11Write(EP0Address, addr); // data buffer addr SL11Write(IntStatus,INT_CLEAR); // clear inter status. SL11Write(EP0Control,cmd); // Enable USB transfer and re-arm } |
|