ReadFile读串口的问题 rc = ReadFile(m_hCom,pTempBuf,pNetThreadParam->nBytes+1,&dwReadBytes,NULL);我的程序在2000下没问题,读到指定的大小,在98下有时候在这句话返回,可是读到的数据是0字节,请问ReadFile在什么情况下返回,为什么会读到0字节? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,我判断了返回值,只不过没贴出来,只贴了这关键的一句话。主要是不知道在什么情况下函数返回:1.在试图ReadFile的时候,缓冲区没有数据,因此等到有串口写入数据才返回(刚写就返回0字节,还是读到所需的字节数才返回?)。2.在试图ReadFile的时候,缓冲区中有数据,但数据大小不够,是否继续等待?3.在试图ReadFile的时候,缓冲区中有足够数据,读了以后返回。是不是这样,哪位大虾能够描述一下读串口数据的情况。谢谢谢谢 你可以设置缓冲区中只要有数据,就ReadFile即可。 怎么设置啊,是哪个参数?另外,ReadFile和WriteFile串口读写,是同步好,还是异步好?我用的是同步,自己用的Event控制的线程,这样应该也没问题吧 异步不占用系统资源。while (true){ WaitCommEvent( hComDev, &dwEvtMask, &osWait); if ((dwEvtMask & EV_RXCHAR) == EV_RXCHAR) { while ( ThreadFlag ) { ClearCommError( hComDev, &dwErrorFlags, &ComStat ) ; if((nLength = min( 0x1000, ComStat.cbInQue )) > 0 )//设置读取的字节数 { if(ReadFile( hComDev, pb,nLength, &nLength, &osRead )) { 在单文档中通过增加一个View来实现单文档多View时遇到的一个问题 问个弱智问题,关于悬浮窗的 求通过USB向手机写文件的例子 A question about hardware. SendKeys问题 苏州科大恒星 史上最简单问题!!!!!!!!!!!!!!!大虾请窥过来!! vc中客户端程序怎样访问服务器中的sql 请各位帮助:BOOL类型转换成BYTE类型的问题 很急!!!!!VC开发出来的最终软件发行时都需要哪些DLL? 关于成员函数作为CALLBACK函数的定义方法 怎样知道一个程序是否处于后台
主要是不知道在什么情况下函数返回:
1.在试图ReadFile的时候,缓冲区没有数据,因此等到有串口写入数据才返回(刚写就返回0字节,还是读到所需的字节数才返回?)。
2.在试图ReadFile的时候,缓冲区中有数据,但数据大小不够,是否继续等待?
3.在试图ReadFile的时候,缓冲区中有足够数据,读了以后返回。是不是这样,哪位大虾能够描述一下读串口数据的情况。谢谢谢谢
我用的是同步,自己用的Event控制的线程,这样应该也没问题吧
while (true)
{
WaitCommEvent( hComDev, &dwEvtMask, &osWait);
if ((dwEvtMask & EV_RXCHAR) == EV_RXCHAR)
{
while ( ThreadFlag )
{
ClearCommError( hComDev, &dwErrorFlags, &ComStat ) ;
if((nLength = min( 0x1000, ComStat.cbInQue )) > 0 )//设置读取的字节数
{
if(ReadFile( hComDev, pb,nLength, &nLength, &osRead ))
{