我試圖使用readfile
函數從WinCE環境中的CDC設備讀取數據。通訊設備類(CDC)問題閱讀
BOOL WINAPI ReadFile(
_In_ HANDLE hFile,
_Out_ LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
我想知道什麼是readbuf
的大小限制。我發送100個數據塊的256個字節的數據,參數lpNumberOfBytesRead
從ReadFile
第一次嘗試返回173個字節,其他所有其他99次返回0。請讓我知道我缺少什麼。另外'writebuf'的大小限制是什麼?下面是該端口的代碼打開
BOOL PortOpen()
{
Close();
ComPort = INVALID_HANDLE_VALUE;
COMMTIMEOUTS ct;
ComPort=CreateFile (TEXT("COM1:"), GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
if (ComPort != INVALID_HANDLE_VALUE) {
dcb.DCBlength = sizeof (dcb);
GetCommState (hLocal, &dcb);
dcb.BaudRate = 115200;
dcb.fParity = FALSE;
dcb.fNull = FALSE;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY;
dcb.ByteSize = 8;
SetCommState (ComPort, &dcb);
ct.ReadIntervalTimeout = 0;
ct.ReadTotalTimeoutMultiplier = 0;
ct.ReadTotalTimeoutConstant = 0;
ct.WriteTotalTimeoutMultiplier = 0;
ct.WriteTotalTimeoutConstant = 0;
SetCommTimeouts (hLocal, &ct);
}
梁
如果您已經使用CreateFile打開設備發佈該代碼。 – Sundar
請檢查以上 – user3068597
顯示ReadFile()循環 – PaulH