delphi7串口通信(spcomm控件)实例
Delphi7串口通信(spcomm控件)实例
最近在用delphi7做串口通信,网上找了很多例程,复制粘贴运行就没有能通过的,再次鄙视一下列位先行者,你们帮人倒是帮到底啊,没一个是拿过来能用的,太坑了,在N天的努力下(鄙人比较笨)终于通过串口接收到数据,希望给后来人予以帮助,程序如下:
功能简介
功能比较简单,只是从串口接收单片机发送的数据,给memo1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Comm1: TComm;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
procedure Comm1ModemStateChange(Sender: TObject; ModemEvent: Cardinal);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
viewstring:string;
i:integer;
rbuf,sbuf:array[1..16] of byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Comm1.OnReceiveData:=Comm1ReceiveData;
comm1.StartComm;
end;
//打开串口
procedure TForm1.Button2Click(Sender: TObject);
begin
comm1.StopComm;
end;
//关闭串口
procedure https://www.360docs.net/doc/a913917203.html,m1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
var
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;
//接收数据
procedure https://www.360docs.net/doc/a913917203.html,m1ModemStateChange(Sender: TObject;
ModemEvent: Cardinal);
begin
end;
end.
运行测试,顺利通过,接收到单片机发送的数据,感谢百度好友的帮助。
(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注!)