学习串口通讯,自己写了一个简单的demo,分享给大家:
首先,需要下载安装spcomm控件:spcomm.rar,这里提供下载的spcomm支持地D2007以上版本,即通讯用Pansichar。
安装控件的方法就不在累述,新建一个package,引入spcomm单元,编译安装即可。
下面贴出代码,并注释说明:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm;
type
TForm1 = class(TForm)
Comm1: TComm;
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Comm2: TComm;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Comm2ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
p:pansichar;
x:integer;
begin
x:=Length(Memo1.Lines.Text);//发送字符长度
p:=Pansichar(Memo1.Lines.Text);//字符内容
Comm1.WriteCommData(p,x);//发送
end;
procedure TForm1.Comm2ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
S1:string;
begin
SetLength(S1, BufferLength);
Move(Buffer^,PChar(S1)^,BufferLength);
Memo2.Lines.Add(S1); //接收RS232的数据并显示Memo2上
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
COMM1.StopComm;//关闭
COMM2.StopComm;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
COMM1.StartComm;//开启
COMM2.StartComm;
end;
end.
整个测试单元代码就是这样,因为在本机测试,就用了虚拟串口工具:
一个串口发信息,另一个串口接收数据,demo的截图效果图如下:
关于串口通讯还有很多相关知识,大家自己搜索学习,日后再共同探讨。



