delphi串口问题,为何能发送数据却接收不到?
delphi吧
全部回复
仅看楼主
level 3
风弄残影 楼主
代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;
type
TForm1 = class(TForm)
Com1: TComm;
Edit1: TEdit;
Button4: TButton;
Memo1: TMemo;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Com1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//打开串口
procedure TForm1.Button1Click(Sender: TObject);
begin
Com1.StopComm;
Com1.StartComm;
Button1.Enabled :=False;
Button2.Enabled :=True;
end;
//关闭串口
procedure TForm1.Button2Click(Sender: TObject);
begin
Com1.StopComm;
Button2.Enabled := False;
Button1.Enabled := True;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
com1.WriteCommData(PChar(Edit1.text),length(Edit1.Text));
end;
procedure TForm1.Com1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
pStr : PChar;
begin
pStr := Buffer;
Memo1.Lines.Add(pStr);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
end.
2014年04月17日 06点04分 1
level 8
procedure TForm1.Com1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
S:string;
begin
SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength);
Memo1.Lines.Add(S);
end;
另外控件的以下属性
RS01.CommName
RS01.BaudRate
RS01.ByteSize
设置正确,可以先用个超级终端看看 能不能收到数据
2014年04月18日 01点04分 2
1