我有两个问题劳驾帮忙解决:1。请解释vc中串口编程的COMMTIMEOUTS结构中各个参数到底表示什么意义,我的采样周期是5s,结构中的各个参数应该怎么设置?2。我的串口读写程序单步运行良好,但是如果只是执行exe文件就出现内存错误。我读写的是一个串口设备,每个命令读出来的东西很多,要分几次读才能读完。拜托各位了,这些问题已经郁闷我很多天了:(

解决方案 »

  1.   

    COMMTIMEOUTS是为异步数据传输准备的结构,因为一些设备数据传输比较慢,所以用这个来规定数据传输的时间限制
    typedef struct _COMMTIMEOUTS {  
      DWORD ReadIntervalTimeout; //读数据时2两个字节间的时间间隔限制
      DWORD ReadTotalTimeoutMultiplier; //读数据时1个字节的读取时间限制
      DWORD ReadTotalTimeoutConstant; //读指定个数的字节需要的总共时间
      DWORD WriteTotalTimeoutMultiplier; //写一个数据时所用的时间
      DWORD WriteTotalTimeoutConstant; //写指定个数的字节所用的全部时间
    } COMMTIMEOUTS,*LPCOMMTIMEOUTS; 
    ReadIntervalTimeout
      

  2.   

    仔细看看msdn的res,里面说得很清楚。
    除了第三个设置为-1,其他全部置0