接收代码为
  var
      str:string;
  begin
      setlength(str,bufferlength);
      move(buffer^,pchar(str)^,bufferlength);
      memo1.Lines.Add(str);
  end;
举例:发送[1111111]                             接到[1111漱坭湩潤w]
      发送[sdfdsfdsfdsf]                        接到[sdfdsfiveDat]
      发送[1111]                                接到[11ut]
发送代码为comm1.WriteCommData(pchar(memo1.text),length(memo1.text));  
是不是SPCOMM出了BUG?
我用是虚拟串口打开COM3,COM4 一个发,一个接

解决方案 »

  1.   

    我用是虚拟串口打开COM3,COM4 一个发,一个接这里的意思是两个程序,一个打开COM3 一个打开COM4
      

  2.   

    我不懂虚拟串口,你把 流控制 xon xoff关了,如果还是这样,可能是你的虚拟串口的驱动有问题
      

  3.   

    xon xoff  默认就是关闭的
      

  4.   

    有时候有乱码?不是每次都有乱码嘛?spcomm 没遇到这个BUG看看两个串口的设置的匹配没怎么用虚拟串口,不太清楚
      

  5.   

    move(buffer^,pchar(str)^,bufferlength);改成
    move(buffer^,pchar(@Str[1])^,bufferlength);这样试试
      

  6.   

    虚拟串口不是串口针短接一下就可以了,需要装虚拟串口软件,spcomm没有这样的bug
      

  7.   

    我串口短接后,使用串口助手没有接收到数据 但显示发送有数据我以为我的串口有问题 就用的虚拟串口,SUDT SerialNull是个很出名的虚拟串口软件,也能够正常通信,不过问题就是在接收MEMO中,会显示部分乱码,这是怎么一回事
      

  8.   

    我对串口通讯还算熟悉。分,已经成为回答你贴子的障碍。如果你给200分,完整代码马上奉上,用SPCOMM做串口通讯不会出现乱码,发送汉字都没有问题。
      

  9.   

    memo1.Lines.Add(str);
    可能是这句附近有问题,你试着按收到 的长度赋给另一变量,然后再赋给memo1试一下,调试助手与短接2,3没有关系,如果选择硬件串口的话,你可以让调试助手自发自收(这时需要短接2,3)看看