【发布时间】:2014-02-28 17:02:03
【问题描述】:
我正在尝试使用readfile 函数从 WinCE 环境中的 CDC 设备读取数据。
BOOL WINAPI ReadFile(
_In_ HANDLE hFile,
_Out_ LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
我想知道readbuf 的大小限制是多少。我发送 256 字节数据块 100 次,ReadFile 中的参数 lpNumberOfBytesRead 第一次尝试返回 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 打开设备发布该代码。
-
显示 ReadFile() 循环
-
为什么您认为要从设备读取的字节数超过 173 个字节?为什么你认为你已经等待了足够长的时间来发送所有字节?
标签: c++ c windows-ce cdc