这个问题很简单,你可要给我分数哦
1: 你用微软的msComm控件,不要在定时器里读书,它本身有接收数据的事件
2:如果你用Timer事件里收数据,也有办法,你先定义个全局变量在msComm的读数据事件里,把收到的数据分析后放到全局变量里,
你再在Timer里读数据,呵呵~~这个思路如何?我以前做过,还可以
应该可以的

解决方案 »

  1.   

    jiale同志我现在用的就是你所说的方法用的就是Microsoft的MScomm32这个控件在Timer中读数据再在控件的事件中分析数据。但是还是读的数据还是不稳定。
    我倒比较同意线程的方法。但我没有做过各位能不能仔细说说。
      

  2.   

    我用delphi编过读取考勤机数据的程序,我用的也是一个timer控件中读的,而且是30ms读一次,也没什么问题呀。数据很稳定啊。关键是和硬件打交道的动态库要编的好。
      

  3.   

    用SPCOMM控件试试!
    我做过很多这样的,不过没有这么大的数据量!
      

  4.   

    同意jiale(jiale/家乐),我用mscomm做过很多串口通讯程序。
    自己定义一个大的Buffer,每当commevent为2时就把数据加到Buffer,每当有数据时就分析buffer,这时可采用多线程,在取数据时可以根据通讯协议从Buffer里截取一段完整的数据,再处理。