使用ReadFile读取串口数据出错!!!!!!!!!!!!!!!!!!!! ReadFile串口通信异步通信i/o 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我没有用到多线程 OVERLAPPED结构体是不是一个摆设? ReadFile作为一个异步操作,直接返回结果,所以当你在取400字节数据操作返回的时候是ERROR_IO_PENDING(997)的状态,说明数据还在传输中,这是正常情况。下面我们要做的就是等待它传输完成。 if(ReadFile(hPort,comBuf,400,&readedlen,&overlapped){ .............................. else{ if(GetLastError()==ERROR_IO_PENDING) { bool bResult = GetOverlappedResult(hPort,&overlapped,&readedlen,TRUE); if(!bResult) AfxMessageBox("error"); } else AfxMessageBox("error"); } 谢谢你给我答疑 我还有些地方没有理解。ReadFile(hPort,comBuf,400,&readedlen,&overlapped)发送端是每10秒发送10个字节的数据。如果我读取400个字节,是不是要等10*40秒? 还是说 ReadFile 必须一次写入大于或等于400字节 才能读到 谢谢你给我答疑 我还有些地方没有理解。ReadFile(hPort,comBuf,400,&readedlen,&overlapped)发送端是每10秒发送10个字节的数据。如果我读取400个字节,是不是要等10*40秒?至少不比这个时间短 我是一次writefile 10个字节 10秒是间隔 再做了一次实验把400改成40 每1秒write 10字节,但是readFile一直返回FALSE 并没有在第4秒后接受成功 我推测是不是每次写数据之前都会自动把缓存清空? 再同步模式并没有清空之前发送的数据 每次读取前看下ClearCommError的状态,没全部代码我也不知道你是什么问题 谁能写个函数把字符串 "abcdef9876543210" 转换成16进制 0xABCDEF9876543210 单文档如何在CFormView中创建属性页? 窗口之间传递数据! CRecordSet的问题 如何从窗口 handle 得到进程 ID? ===高分求助=== 串口問題!!! 如何精确定位程序资源中的button control和edit control之类? 请教关于BMP文件保存的问题 物理内存页与虚拟内存页 VS2012 MFC里 怎么读取TXT文件中的字符串(汉字)然后放到已有的字符串数组里 [求助] 关于文件的创建时间
..............................
else{
if(GetLastError()==ERROR_IO_PENDING)
{
bool bResult = GetOverlappedResult(hPort,&overlapped,&readedlen,TRUE);
if(!bResult)
AfxMessageBox("error");
}
else
AfxMessageBox("error");
}
ReadFile(hPort,comBuf,400,&readedlen,&overlapped)
发送端是每10秒发送10个字节的数据。如果我读取400个字节,是不是要等10*40秒?
ReadFile(hPort,comBuf,400,&readedlen,&overlapped)
发送端是每10秒发送10个字节的数据。如果我读取400个字节,是不是要等10*40秒?
至少不比这个时间短
把400改成40 每1秒write 10字节,但是readFile一直返回FALSE 并没有在第4秒后接受成功 我推测是不是每次写数据之前都会自动把缓存清空? 再同步模式并没有清空之前发送的数据