这通讯要求主要是这样的:
  描述:通讯是全双向的,在上传或下传中,接收方都要把收到的命令或数据字节(08位)立即返回给发送方,以供校对。
  也就是是说:电脑向串口设备发送命令或8位字节时要立即返回给电脑,如果返回值与发送值一致时,才可进行下一字节的发送,以此类推。
   我想用SPCOMM的控件,但不能实现这样通讯的全双向要求,这控件只有一ReceiveData的事件来接收数据,但不是立即返回的。
   不知各位大虾有何有建设性的意见?谢谢!!!

解决方案 »

  1.   

    那就用MSCOMM吧,
    SPCOMM是用线程来处理的,所以不是串行的,是并行的
      

  2.   

    SPCOMM的控件中ReceiveData事件来接收数据就是立即返回的啊!
    曾经做过一个单片机的项目,因为硬件设计了看门狗,要求数据必须在规定的时间到达.我用的
    就是SPCOMM.我仔细看过它的源文件,完全是用CreateFile写的应该是很底层的了!用MSCOMM
    是一个COM组件,没有SPCOMM直接.
    结论:按你的要求,软件解决不了!用这个方法试:
    1>数据分别发给COM1和COM2由COM2做判断基准!接线:
    COM1        COM2
    2           3
    3           2
    5           52>将COM1的2,3脚并连两条线.一条2-3短路,一条正常.
      

  3.   

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

  4.   

    这东西为什么这么大?难道真的比SPCOMM要好。其实一个小小的串口通讯,在我看来SPCOMM就很好了!我不赞成用MSCOMM,这东西不怎么样!对那些不希望了解实现机理的人还可以。在VC里有一个很著名的串口类CSerial,是一个很成熟的类了。很多C程序员都用它,我也使用过。在我看来其实质和SPCOMM编写的机理是一样。