⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 此文章是关于Delphi串口通信类的一些文章和源代码,它是单片机串口通讯较好的上位机设计的参考!
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, TComm1;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    mReceive: TMemo;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Comm1: TComm;
    mSend: TMemo;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Procedure TimeDelay(DT:DWORD);//延迟函数
implementation

{$R *.DFM}


procedure TForm1.BitBtn1Click(Sender: TObject);
var
  //传送及接收要用的动态数组声明
  ByteSend:array of Byte;
  ByteReceive:array of Byte;
  Count,i:DWORD;
  PT:PByte;  //字节指针
begin
  //指定欲传送的字节
  SetLength(ByteSend,mSend.Lines.Count);
  for i:=0 to mSend.Lines.Count-1 do
   ByteSend[i]:=StrToInt(mSend.Lines[i]);
  Comm1.OutputByte(ByteSend);//传送出去
  TimeDelay(100); //延迟500毫秒
  //接收字节数据,包括数目及地址
  Count:=Comm1.ReadInputByte(PT);
  //接收的数据指定给接收数组
  SetLength(ByteReceive,Count);
  for i:=0 to Count-1 do
  begin
    ByteReceive[i]:=PT^;
    //结果显示在Memo组件中(Append方式)
    mReceive.Text:=mReceive.Text + IntToStr(ByteReceive[i]) + Chr(13) + Chr(10);
    Inc(PT);
  end;  
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //打开通信端口
  Comm1.PortOpen:=True;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  //结束程序
  Close;
end;

//以下是延迟函数,单位毫秒
Procedure TimeDelay(DT:DWORD);
var
 TT:DWORD;
begin
  //取得现在的Tick值
  TT:=GetTickCount();
  //计算Tick差值是否超过设置值
  while GetTickCount()-TT<DT do
   Application.ProcessMessages; //释放控制权
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -