这段时间一个项目用到wince下,USB设备接口通讯。采用S3C2416平台通过微软自带UDC driver。发现在才程序内部接收每次只能接收到前2048个字节,后面的数据丢失。想通过改变接收缓冲区大小,但怎么改也不行。
WINCE 接收代码如下:
UINT CommWatchProc(LPVOID pParam)
{
DWORD dwEventMask,dwBytesRead;
CString combinSendBuf;
COMSTAT ComStat;
DWORD dwErrorFlags;
wchar_t * pUnicode;
int receiveDataLen = 0;
PurgeComm(m_idComDev, PURGE_TXCLEAR| PURGE_RXCLEAR);
while(m_bConnected)
{
//dwEventMask=0;
//PurgeComm(m_idComDev, PURGE_TXCLEAR| PURGE_RXCLEAR);
// WaitCommEvent(m_idComDev,&dwEventMask,NULL);
if (!WaitCommEvent(m_idComDev,&dwEventMask,&m_osEvent))
{
// GetLastError()函数返回ERROR_IO_PENDING,表明串口正在进行读操作
if(ERROR_IO_PENDING == GetLastError())
{
WaitForSingleObject(m_osEvent.hEvent, 2000);
PurgeComm(m