我在串口通信的设计中,使用ReadFile的语句后就没有响应拉!不知这是什么情况

解决方案 »

  1.   

    在阻塞方式下调用ReadFile就是这个样子,除非接收到数据,不然不会返回。还要是否是ReadFile中要读入的字节数设得太大了,一直读不满,可以使用只读一个字节来测试。
    还可以通过设置超时、使用实际方式等读串口。
      

  2.   

    你用的是同步操作吧,读不到数据当然不会返回
    你可以用ClearCommError测试有多少个字节到,再读就行了!
      

  3.   

    你可以改变一下readfile的第三和第四个参数,然后用qsfsea(痛并快乐着)的方法测试一下有没有通信错误,看看具体的通信错误类型
      

  4.   

    // 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作
    TimeOuts.ReadIntervalTimeout = MAXDWORD; 
        TimeOuts.ReadTotalTimeoutMultiplier = 0; 
    TimeOuts.ReadTotalTimeoutConstant = 0; 
    /* 设置写超时以指定WriteComm成员函数中的
        GetOverlappedResult函数的等待时间*/
    TimeOuts.WriteTotalTimeoutMultiplier = 50; 
    TimeOuts.WriteTotalTimeoutConstant = 2000;
    SetCommTimeouts(m_hCom, &TimeOuts);
      

  5.   

    请问timeout是什么类型,还有把这个设置放在那里?