我在使用spcom控件的时候,现了一个问题。串口要接收以8ms一次的速度接收数据,长度为9个字节,但是我看接收到的数据,最长只有8个字节,剩余一个字节会保留在缓冲区中,作为下一次接收的第一个字节。1、如何请空数据缓冲区?
2、如何才能接收到9个字节长度的数据?

解决方案 »

  1.   

    建议使用TURBOPOWER控件,你的问题讲的不够清楚,是否是你在连续发送数据,而你接收的数据用MEMO控件的LINES。ADD显示,每行有8个字节,你就认为每次只收8个字节?
      

  2.   

    TURBOPOWER控件的信息可以给你提供,需要请发短消息
      

  3.   

    jpyc(智若愚(斯文)) 你说得对,我是通过memo.add来显示接收到的数据,判断只接收了8各字节,我对接收到的数据经过处理后才显示出来的,不知道该如何清空,缓冲区的多余信息。我使用的是9个字节长度的字符串进行接收的,这是接收事件的代码。
      viewstring:='';
      move(buffer^,rbuf,10);
      for i:=1 to bufferlength do
      viewstring:=viewstring+ inttohex(rbuf[i],2);
      memoSend.lines.add(viewstring);
      

  4.   

    有没有人使用过Spcom控件,请帮我解决一下吧!谢谢。
      

  5.   

    你把move(buffer^,rbuf,10);改为move(buffer^,rbuf,bufferlength);试试看
      

  6.   

    我没有在碰到过,你是不是将控件字符XON/XOFF,打开了,关闭即可。
      

  7.   

    ljmanage(过客) 那太好了,谢谢你,就发给我一份吧!
    [email protected]
      

  8.   

    ljmanage(过客) 所说的是9位发送,不是解决问题的方法,其实你的做法没什么问题