static void Update_USB_Send(UCHAR *pucBuf, UCHAR ucLength)
{
ULONG ulLoop = LOGSENDDLAY;
if(pucBuf == NULL)
return;
//while(GetEPTxStatus(USBCMDINEP) == EP_TX_VALID);
if(ucLength <= UPDATE_COM_PORT_IN_DATA_SIZE)
{
USB_SIL_Write(CDCCMDINEP, pucBuf, ucLength);
SetEPTxValid(CDCCMDEPN);
}
else
{
USB_SIL_Write(CDCCMDINEP, pucBuf, UPDATE_COM_PORT_IN_DATA_SIZE);
SetEPTxValid(CDCCMDEPN);
/*连续快速发送时可能会导致USB端点没有发送完成*/
while(ulLoop)
{
ulLoop--;
}
USB_SIL_Write(CDCCMDINEP, &pucBuf[UPDATE_COM_PORT_IN_DATA_SIZE], ucLength - UPDATE_COM_PORT_IN_DATA_SIZE + 1);
SetEPTxValid(CDCCMDEPN);
}
return;
}
Update_USB_Send((UCHAR*)ucLog_buf, ucLen);
很简单的。初学应该多思考。
|