gpt4 book ai didi

c++ - 读取的通信设备类 (CDC) 问题

转载 作者:行者123 更新时间:2023-11-30 17:38:31 25 4
gpt4 key购买 nike

我尝试在WinCE环境中使用readfile函数从CDC设备读取数据。

BOOL WINAPI ReadFile(
_In_ HANDLE hFile,
_Out_ LPVOID lpBuffer,
_In_ DWORD nNumberOfBytesToRead,
_Out_opt_ LPDWORD lpNumberOfBytesRead,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);

我想知道readbuf的大小限制是多少。我发送 256 字节数据 block 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);

}

最佳答案

可以使用 SetCommTimeouts API 配置 ReadFile 操作的超时,您确定您的代码没有调用它吗?在这种情况下,返回的字节数可能会有所不同,具体取决于您设置的不同超时参数。

关于c++ - 读取的通信设备类 (CDC) 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22101346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com