我要在串口中提采数据,所用的控件为SPCOMM。我向串口发送了信息。用别串口查看程序可看到串口中的信息,但SPCOMMR的onReceiveData事情没有触发。为何?(DELPHI6)程序如下:unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SPComm, Buttons, StdCtrls, ExtCtrls;type
  TForm1 = class(TForm)
    Comm1: TComm;
    Panel1: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Panel2: TPanel;
    Memo1: TMemo;
    Panel3: TPanel;
    Button1: TButton;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Edit1: TEdit;
    Button6: TButton;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  try
    comm1.BaudRate:=19200;
    comm1.CommName:='COM1';
    comm1.StopComm;
    comm1.StartComm;
    speedbutton1.Enabled:=false;
    speedbutton2.Enabled:=true;
  except
    speedbutton1.Enabled:=true;
    speedbutton2.Enabled:=false;
  end;
end;procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  comm1.StopComm;
  speedbutton1.Enabled:=true;
  speedbutton2.Enabled:=false;
end;procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
begin
  s:=trim(edit1.Text)+#13;
  comm1.WriteCommData(pchar(s),length(s));
end;procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
  s:string;
begin
  setlength(s,bufferlength);
  move(buffer^,pchar(s)^,bufferlength);
  memo1.Lines.Add(s);
  memo1.Lines.Add('>--------------------');
end;procedure TForm1.Button6Click(Sender: TObject);
begin
  memo1.Clear;
end;end.

解决方案 »

  1.   

    你串口没有接设置。你可以接MODEM或用一根RS232连接线连接另外一台电脑,RS232连接线另一头的2、3针必须交换一下。你再试试看。
      

  2.   

    我有一个BCB6的例子,不知道你是否需要?
    [email protected]
      

  3.   

    http://218.56.11.178:8020/web/index.aspx-》下载基地-》例程-硬件控制-》spcom事例程序
      

  4.   

    对spcomm比较有心得,可以把project 发过来,帮你调试一下
    [email protected]
      

  5.   

    用一个rs232头,2和3脚短接(自己收发)。
    另外试一下dtrControl和rtsControl设置一下。
      

  6.   

    先用mscomm测试一下串口有没有问题,没问题再测dtrControl和rtsControl。或别的属性都测一遍。