小弟在做一个串口程序,串口接的是一个GPS卫星天线,它每秒钟返回六行信息。在读串口数据时,得到的不是完整的信息,比如有部分是前一秒的信息,部分是本次的信息(本次的信息也没完全读取),而本次的部分信息(没读完的部分信息)又留给了下一次,如此循环。是不是卫星天线的信息还没完全返回,我就开始了读数据,才导致这样的?请问怎么解决?

解决方案 »

  1.   

    如上,可以用buffer暂存,然后再读取!
      

  2.   

    你可以一个结构用来作为你存放信息的缓冲区。比如:
    Info = packed record  //信息
      RequstSendCommand:array[0..500] of char;//要求发送文件
      FileName : array[0..500] of Char;//文件名
      FileSize : int64;//文件大小
      FileSendComplete:array[0..500] of char;//发送完毕命令
    end;