buffer的容量可能已经达到最大限度了,你应当在每次发过后就清空buffer,这样就不会有问题,而且发送到串口的也才是你自己真正想要得到的数据。

解决方案 »

  1.   

    to largebeard(潇潇):
       buffer应该不会溢出,我把输入、输出缓冲区都设为2048,而我发一次数据才几十字节,每次发完数据,都会等读到输入区数据后才会再发。应该不会吧。
      

  2.   

    to superaf(阿斐):
      你是说WriteFile(写串口)后要清空输出缓冲区吗?我觉得不需要,数据发完后缓冲区不是自动清空了吗?
      

  3.   

    就是buffer溢出了,你仔细查看看. 
      

  4.   

    如果你是在线程中申请的buffer ,那么在线程退出前应该释放内存空间
      

  5.   

    to mosquitosj(蚊子):
      我是用的new char和定义的字符数组,它需要在退出时释放吗?另外大家说的buffer是指串口的缓冲区还是指程序定义的?
      

  6.   

    大家说的buffer溢出,是指串口的还是自己定义的?
    我定义了很多buffer,如何判断是那一个溢出呢?
      

  7.   

    可能是串口堆溢出。 用PurgeComm清空缓存。 
      

  8.   

    是串口的buffer,你能不能指出那句出错,单步跟踪一下
      

  9.   

    我跟了,看不到.
    如果是串口的buffer,那是为什么?
    我每次发送的数据量很小呀!而且readfile和writefile都会自动清空缓存,是吗?