1 "但是在调试器中发现此位正确"  这句话啥意思?
2 "这种现象导致了接收程序只能接收数据而不能发送数据了" 
  你所指的现象是: 当发送串中含有"0"时,接收端则会丢弃该字符. 如"abc0dfa", 接方时为:"abcdfa". 你上面的话何意?
3 另外直接用"超级终端"测试如何?

解决方案 »

  1.   

    freelybird(阿愚) :
    1、比如,测试程序发数据:$BB,$01,$30,$02,$11,$13,$CC
       其中$30即十进制48即ASCII字符“0”,我的程序在调试器中发现$30被接收到
    2、当你发了一串数据其中包括$30的话,导致测试程序只能接收数据而不能发送数据,除非你关闭串口从新打开。继续研究中谢谢关注!
      

  2.   

    我现在在自己的机器上做测试的,是把COM1和COM2对接来做测试的,误码应该很少,而且发生误码的话我都有协议检查和错误处理的。[email protected]谢谢
      

  3.   

    I already sent email to you. check your in-box.
      

  4.   

    不会出现这种情况的。
    我以前用过这个组件,很好用到,有源码,不过我自己修改了一下。如下试试:
    var TempStr: String;
    begin
      TempStr :=  #$BB#$01#$30#$02#$11#$13#$CC;
      if FComm.Handle <> 0 then
        FComm.WriteCommData(PChar(TempStr),Length(TempStr));
    end;
      

  5.   

    www.torry.net 上有N多的控件,还有原码可以参考,基本可以拿到任何版本的delphi/bcb 用,何必用什么 spcomm?
      

  6.   

    TO : lsys() 果然与  replacedchar 属性设置有关,问题解决,谢谢!
      

  7.   

    果然是replacedchar属性的设置问题搞定,谢谢!
      

  8.   

    谁能将spcomm控件的属性详细解释一下,比如replacedchar就不知道是什么?