本帖最后由 chen03061202 于 2011-03-06 22:52:29 编辑

解决方案 »

  1.   

    波特率是不是小了,我这边 用.net自带的serialport类做一个处理多串口(大概十几个)的小项目,最后也有数据丢包的情况,换成deliphi后,问题解决
      

  2.   

    首先可以加大波特率看看,然后,在使用单独的线程自己来读取数据,不使用datarecieved。
      

  3.   

    你datarecieved事件到少字节触发啊,ReceivedBytesThreshold 属性设置个合适的数字,缓冲区到达这个数字后会触发datarecieved,事件中把所有的数据读出来(读多少缓冲区会清空多少)
      

  4.   

    出错的地方加上log4net, 看看数据到多少会出错。
      

  5.   

    问题解决了,使用单独的线程自己来读取数据,不使用datarecieved。
    数据缓存保存起来下来,慢慢处理,要避免数据丢失!