【乌拉喵.教程】Comport4 CPort for delphi2010串口应用程序

简介: 【乌拉喵.教程】Comport4 CPort for delphi2010串口应用程序

comport4操作很简单

ComPort1.Open;//打开串口

ComPort1.close;//关闭串口

comport1.WriteStr('a');//发送字符a

ComPort1.ReadStr(Str,Count);//读取字符

使用comport4做串口调试程序

comport4的安装见:comport4.11 delphi2010安装教程_乌拉大喵喵-CSDN博客

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CPort, CPortCtl, StdCtrls;
type
  TForm1 = class(TForm)
    ComPort1: TComPort;
    btnFs: TButton;
    Edit2: TEdit;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure btnFsClick(Sender: TObject);
    procedure ComPRxChar(Sender: TObject; Count: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
{16进制字符串转换成字符串}
function HexStrToStr(const S:string):string;
//16进制字符串转换成字符串
var
  t:Integer;
  ts:string;
  M,Code:Integer;
begin
  t:=1;
  Result:='';
  while t<=Length(S) do
  begin
    while not (S[t] in ['0'..'9','A'..'F','a'..'f']) do
      inc(t);
    if (t+1>Length(S))or(not (S[t+1] in ['0'..'9','A'..'F','a'..'f'])) then
      ts:='$'+S[t]
    else
      ts:='$'+S[t]+S[t+1];
    Val(ts,M,Code);
    if Code=0 then
      Result:=Result+Chr(M);
    inc(t,2);
  end;
end;
{字符串转换成16进制字符串}
function StrToHexStr(const S:string):string;
//字符串转换成16进制字符串
var
  I:Integer;
begin
  for I:=1 to Length(S) do
  begin
    if I=1 then
      Result:=IntToHex(Ord(S[1]),2)
    else Result:=Result+' '+IntToHex(Ord(S[I]),2);
  end;
end;
//点击发送按钮
procedure TForm1.btnFsClick(Sender: TObject);
var
  Str: String;
begin
  comport1.WriteStr(Hexstrtostr(edit2.Text));//调用Hexstrtostr函数
end;
//初始化窗口
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComPort1.Open;
end;
//相当于串口中断 (要与comport1的OnRxChar进行连接)
procedure TForm1.ComPRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort1.ReadStr(Str, Count);
  memo1.Text:=StrToHexStr(Str);//显示成16进制形式
  memo2.Text:={StrToHexStr}(Str);//显示成字符串形式
end;
end.

注意:ComPort1.ComPRxChar要与comport1的OnRxChar进行连接

源文件下载地址:百度网盘-链接不存在


其中35-72行的程序是为了

将输入的16进制的字符型数据转换成真实的16进制数

将16进制数,转成字符串进行显示用的程序

{16进制字符串转换成字符串}
function HexStrToStr(const S:string):string;
//16进制字符串转换成字符串
var
  t:Integer;
  ts:string;
  M,Code:Integer;
begin
  t:=1;
  Result:='';
  while t<=Length(S) do
  begin
    while not (S[t] in ['0'..'9','A'..'F','a'..'f']) do
      inc(t);
    if (t+1>Length(S))or(not (S[t+1] in ['0'..'9','A'..'F','a'..'f'])) then
      ts:='$'+S[t]
    else
      ts:='$'+S[t]+S[t+1];
    Val(ts,M,Code);
    if Code=0 then
      Result:=Result+Chr(M);
    inc(t,2);
  end;
end;
{字符串转换成16进制字符串}
function StrToHexStr(const S:string):string;
//字符串转换成16进制字符串
var
  I:Integer;
begin
  for I:=1 to Length(S) do
  begin
    if I=1 then
      Result:=IntToHex(Ord(S[1]),2)
    else Result:=Result+' '+IntToHex(Ord(S[I]),2);
  end;
end;
相关文章
|
6月前
|
传感器 Linux API
嵌入式Linux串口编程简介
嵌入式Linux串口编程简介
49 1
【乌拉喵.教程】PCtoLCD2002作为LCD5110字模提取软件的使用方法
【乌拉喵.教程】PCtoLCD2002作为LCD5110字模提取软件的使用方法
121 0
【乌拉喵.教程】PCtoLCD2002作为LCD5110字模提取软件的使用方法
【乌拉喵.教程】ThemeEngine在Delphi2010中的安装及使用方法
【乌拉喵.教程】ThemeEngine在Delphi2010中的安装及使用方法
|
网络协议
【乌拉喵.教程】串口服务器的配置与连接调试
【乌拉喵.教程】串口服务器的配置与连接调试
399 0
【乌拉喵.教程】comport4.11 delphi2010安装教程
【乌拉喵.教程】comport4.11 delphi2010安装教程
235 0
|
网络协议
【乌拉喵.教程】使用VSPM连接PC与串口服务器
【乌拉喵.教程】使用VSPM连接PC与串口服务器
187 0
【乌拉喵.教程】altera门阵quartus下nCEO的配置
【乌拉喵.教程】altera门阵quartus下nCEO的配置
158 0
|
监控 网络协议
2013-12-17 与外网串口服务器的delphi程序设计 随笔说说
2013-12-17 与外网串口服务器的delphi程序设计 随笔说说
|
编解码 C语言 开发者
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
854 0
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
|
C语言 C++ 开发者
三子棋小游戏及如何让朋友也能玩自己写的游戏(程序)(exe如何附带动态链接库dll)C语言从入门到入土(入门特别篇)(二)
一:三子棋 1.游戏的基本开始流程() 2.三子棋的实现 2.1第一步写出基本流程 2.2第二步打印菜单 2.3游戏的实现 2.3.1初始化棋盘 2.3.2打印棋盘 2.3.3玩家下棋 2.3.4电脑下棋 2.3.5判断 2.4游戏的整个代码 game.c: 2.5三子棋的扩展 二:vs如何发布exe文件并附带动态链接库 第一步:vs->工具->命令行->开发者 PowerShell(P) 第二步:查看vs 是Debug还是Releas 是x86还是x64 第三步:找到exe所在位置 第四步:查询你exe文件所需要的的动态链接库(dll)
三子棋小游戏及如何让朋友也能玩自己写的游戏(程序)(exe如何附带动态链接库dll)C语言从入门到入土(入门特别篇)(二)