正在加载...

PF BLOG

利用spcomm进行串口通讯

学习串口通讯,自己写了一个简单的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.

整个测试单元代码就是这样,因为在本机测试,就用了虚拟串口工具:

2010-05-26_143727.jpg

大小: 80.65 K
浏览: 9 次

一个串口发信息,另一个串口接收数据,demo的截图效果图如下:

2010-05-26_143818.jpg

大小: 21.92 K
浏览: 7 次

关于串口通讯还有很多相关知识,大家自己搜索学习,日后再共同探讨。

Tags: spcomm , 串口通讯

« 上一篇 | 下一篇 »

访客评论

  1. #1 中华E商创业商务网 2010-09-28, 1:50 PM
    | 借博主宝地!祝博主人气越来越旺|
  2. #2 爱琴海 2010-11-23, 10:06 AM
    以前也学过一点,很详细,很不错哦。
  3. #3 赵浩杰 2010-11-25, 7:14 PM
    你好,我用的Delphi 2010, 编译好的package却不知道怎么安装, Component 菜单里面没有找到安装dpk的地方,谢谢!
  4. #4 yuanzheng 2011-11-21, 11:53 PM
    您好!
    我在win7上安装SPCOMM,用的是delphi2010,发现一直无法发送数据。
    是不是spcomm不支持win7?
  5. #5 pfeng 2011-12-04, 6:10 PM
    引用 yuanzheng 说过的话:
    您好!
    我在win7上安装SPCOMM,用的是delphi2010,发现一直无法发送数据。
    是不是spcomm不支持win7?

    应该是支持delphi2010的,你先用串口工具检测一下。

发表评论

评论内容 (必填):