我用‘comm1.writecommdata(@sbuf[6],1);’这条语句向com1口写数据,但是这条语句的返回值总是false,我的串口已经打开,并且用其他的串口测试工具测试com1口可以正常使用,不知是什么原因????????

解决方案 »

  1.   

    zen me mei ren a ???
      

  2.   

    我的源代码:
    unit maincom1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, SPComm;type
      TForm1 = class(TForm)
        Comm1: TComm;
        Button1: TButton;
        Memo1: TMemo;
        Edit1: TEdit;
        procedure FormShow(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
        procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
          BufferLength: Word);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
    begincomm1.StartComm;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    comm1.StopComm;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
       sbuf:array[1..8] of byte;
       i : integer;
       bb : boolean;begin 
     bb := true;
    sbuf[1]:=byte($f0); //帧头
     
    sbuf[2]:=byte($01); //命令号
     
    sbuf[3]:=byte($ff);
     
    sbuf[4]:=byte($ff);
     
    sbuf[5]:=byte($01);
     
    sbuf[6]:=byte($34);
    sbuf[7]:=byte($42);
    sbuf[8]:=byte($f0);//帧尾
     
    //发送
    for i:=1 to 8 do
    begin
    bb := comm1.WriteCommData(@sbuf[i],1);
    sleep(1);
    if not bb then
       showmessage('d');
    end; end;procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
      BufferLength: Word);
    varviewstring:string; 
    rbuf:array[1..8] of byte;
    i:integer;
    begin 
    viewstring:='' ;
    move(buffer^,pchar(@rbuf)^,bufferlength); 
    for i:=1 to bufferlength do
    viewstring:=viewstring+inttohex(rbuf[i],2)+'' ;
    viewstring:='接收'+viewstring;
    memo1.lines.add(viewstring); 
    memo1.lines.add('' );
    end; 
    end.