CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

关于串口通讯中READFILE函数的小问题!!!

楼主Gao_TF()2006-06-02 20:16:17 在 VC/MFC / 基础类 提问

ReadFile函数中有五个参数,其中第三个参数是“我将要读取的大小”,第四个参数是“实际读取的大小”,第五个是一个重叠的结构  
  我现在的问题是:帮助上说此操作完成后返回!那么究竟什么是操作完成呢?????比如说我将要读取的是2K大小的数据,是不是说将“我要读取的字节数”读完才算是完成操作??还是说,将当前的串口缓冲区数据读完就算完成????或者其它?  
   
  我现在做的程序需要串口通讯,在WINCE下还不能使用异步通讯,那么我在想我要将第三个参数设置成多少才合适!!!我的数据,每秒采集25次,每次的数据最大为20字节!!以前我用c#做的时候,每次读20个,刚开始还好,但过了一段时间,不知道为什么读到的每侦数据中多了很多的0,导致我解析失败!!!  
   
   
  恳请各位帮忙看看!!  
  问题点数:100、回复次数:7Top

1 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-06-02 20:35:54 得分 50

1、超时,返回;  
  2、如果字节间超时达到,返回。Top

2 楼Gao_TF()回复于 2006-06-02 21:02:24 得分 0

楼上的ifchen,你是说,只有超时才算是操作完成么?  
  那么操作完成的概念是不是就是有以下的几种???  
  1.在没有超时的情况下读取到了“将要读取的字节数”;  
  2.超时,返回;  
  3.如果字节间超时达到,返回。  
   
  是这样的么?Top

3 楼zhaoxiafei(最后一班地铁)回复于 2006-06-02 21:13:23 得分 50

这要看你是同步还是异步读取了    
  同步读取时会阻塞直到读到数据后才返回    
  异步读取则不一定,如果能立刻读取到,就返回TRUE,否则返回FALSE,然后需要判断GetLastError()    
  Top

4 楼Gao_TF()回复于 2006-06-02 21:18:51 得分 0

to   zhaoxiafei(最后一班地铁):  
  我现在肯定是同步读取!那你说“同步读取时会阻塞直到读到数据后才返回   ”,是不是说如果不读取到“我将要读取的参数”就不返回???那么超时时返回么?Top

5 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-06-02 21:19:19 得分 0

to:Gao_TF(),是的。Top

6 楼Gao_TF()回复于 2006-06-02 21:22:41 得分 0

我明白了,感谢两位大侠的回答,谢谢!!Top

7 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-06-02 21:24:32 得分 0

如果读到需要的字节数会返回。  
  没有读到任何字节,超时返回。  
  如果设置了字节间超时,那么会有字节间得超时返回。  
  根据实际读取的大小,判断到底读取了多少。Top

相关问题

关键词

得分解答快速导航

  • 帖主:Gao_TF
  • lfchen
  • zhaoxiafei

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo