gpt4 book ai didi

c++ - ReadFile() 返回空白数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:52 26 4
gpt4 key购买 nike

我正在通过将 COM 端口 RD 和 TD 引脚连接在一起来测试串行端口通信。在执行以下代码之前,COM 端口已被初始化。

CString cs_Send = "F: 5000000 Hz, SF: 1.0, Phase: 10, Position: 50, on sample 1";

BOOL bWriteRC = false;
BOOL bReadRC = false;
DWORD iBytesWritten = 0;
char readBuffer[256] = {"\0"};

DWORD read;

bWriteRC = WriteFile(hPort,cs_Send.GetBuffer(10),cs_Send.GetLength(),&iBytesWritten,NULL);
**Sleep(1000);// Thanks for the advice!!! this Sleep() will fix this error.**
bReadRC = ReadFile(hPort,readBuffer,sizeof(readBuffer),&read,NULL);

if(bWriteRC)
{
if(bReadRC)
{
AfxMessageBox(readBuffer, MB_OK);
}
}

bWriteRC 和 bReadRC 总是返回 true。但是第一条消息是完全空白的。如果我运行两次以上,第一次之后的每条消息都与我发送的完全相同。我想知道为什么第一个总是空白。

最佳答案

通常 WriteFileWriteFileEx 函数将数据写入操作系统定期写入磁盘或通信管道的内部缓冲区。 FlushFileBuffers 函数将指定文件的所有缓冲信息写入设备或管道。

在调用 WriteFile 之后调用 FlushFileBuffers

参见 FlushFileBuffers了解更多详情。

关于c++ - ReadFile() 返回空白数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512301/

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