我用DELPHI6+MSCOMM进行串口通讯,
接收时发现内容超过1024个字符,我如果接收的话,就会丢失超长的部分,试问高手该如何解决?谢谢先!

解决方案 »

  1.   

    to hiflower(花):
        怎样增大,好像最大值就是1024吧。。
      

  2.   

    to hiflower(花):
     由于 InBufferSize 是SMALLINT型,还是不够长的。
    TO 97055154(孤眠旅馆):
    能否说得详细一点?
    to SuperTitan001(除了黑龙,我怕谁!):
    怎么打包啊?我收发的都是16进制数啊?
      

  3.   

    如果波特率为 9600,则每个字节的时间约为 1ms。
    32767*1ms=32.767s
    只要你的程序对 OnComm 事件的反应时间不超过 30s,则你完全可以接收全部数据。
    在 OnComm 事件中,可以这样: MSComm1.InputLen:=0;
     while MSComm1.InBufferCount>0 then
     begin
       s:=MSComm1.Input;
       ..//处理 s end;//只要进入事件,就把 InBuffer 读空
      

  4.   

    顶!我没用过mscomm控件,写api啊
      

  5.   

    谢谢各位GGJJDDMM的鼎力相助,我先调戏一下程序,回头来买单!
      

  6.   

    TO DENGYUEGUANG(小邓):
    我也想用API写啊,可从来没写国,你能不能帮忙给我一个例子啊?谢谢…
      

  7.   

    很多串口编程的书上都有api读写端口的例子,去找找
      

  8.   

    你的问题有两种方法解决:1。增大接收缓冲区  //不建议使用2。接收到一个字符串中,然后解释字符串http://218.56.11.178:8020/web/technology.aspx->串口通讯应用程序的解决方案 
    --------------------------------------------------------
    http://218.56.11.178:8020/web/index.aspx->下载基地 ->例程-精品例程->九品御厨作品-串口通讯控制器          ->控件-硬件控制->TurboPower Async Professional