spcomm控件为什么不能发送和接收十六进制数11?

解决方案 »

  1.   

    能啊,用这个
    var
      vbyte: Byte;vByte := $11;
    TComm.writeCommData(@vByte,1);
    这样就发出去了;
    如果你接受数据的话会触发一个事件,该事件的参数有buffer和bufferlength,如果你发送的数据太快的话,BufferLength会大于1,但是BufferLength一般小于2048,如果发的太快了的话,Windows会响应不了。如果你只发一个数据$11过来,接收到BufferLength为1,
    则pByte(buffer)^为$11.
      

  2.   

    楼上的兄台,我看了该控件的源代码,只要一遇到$11,$13,程序就会跳出去。11与13可以发出去,但是就是收不到,我只有把$11,$13,不知道有没有什么隐蔽的BUG??
      

  3.   

    哦,我重新看了源代码,源来,$11 是XonChar,$13是FXoffChar,它们是TX、Rx的开关标志。你用下下面的代码试一下。
    Comm1.stop;
    Comm1.Outx_XonXoffFlow := False;
    Comm1.Inx_XonXoffFlow := False;
    Comm1.StartComm;
    试一下行不行。这个我以前没遇到过。
      

  4.   

    to 老哥:
      推荐用PORTCOM控件,或用API
      

  5.   

    非常感谢楼上的兄台,可以了。再请问一下,TX、TR的开关标志是什么意思?你对spcomm很熟悉吧,可以交个朋友吗?我的QQ 4863776
      

  6.   

    Tx,rx就是RS-232的两根Pin啊,我对spComm不是很熟。搞过单片机和电脑通信,不过用的是Api。还有我QQ 20281827。
      

  7.   

    mscomm:微软的东西,ActivX控件,使用简单,在VB中带的,性能一般,由于是ActivX控件,打包时需要注册好多信息,不推荐使用。
    spcomm:比较好的vcl,算是比较专业的,解剖了一下,功能比较完善。
    TurboPower:公认的专业通讯控件。可以到其站点下载,开放源码了。
    我在制作串口通讯软件时三种都用过,最终全部使用TurboPower!所以也推荐大家使用它。
    写了个例子,基本的串口通讯都可以实现,可提供参考。
    下载地址:http://www.kaer.cn/default.aspx(网站安全性较差,经常当机,如果急用,mail我)
    多多指正:[email protected]