Delphi MSComm控件串口收发程序


本文整理自网络,侵删。

 
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

 //Delphi+MSComm控件串口收发程序 
//HotPower@126.com 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
if MSComm1.PortOpen then MSComm1.PortOpen := false;//关闭端口 
MSComm1.CommPort := 2;//设置端口2 
MSComm1.InBufferSize := 256;//设置接收缓冲区为256个字节 
MSComm1.OutBufferSize := 256;//设置发送缓冲区为256个字节 
MSComm1.Settings := '9600,n,8,1';//9600波特率,无校验,8位数据位,1位停止位 
MSComm1.InputLen := 0;//读取缓冲区全部内容(32个字节) 
MSComm1.InBufferCount := 0;// 清除接收缓冲区 
MSComm1.OutBufferCount:=0;// 清除发送缓冲区 
MSComm1.RThreshold := 32;//设置接收32个字节产生OnComm 事件 
// MSComm1.InputMode := comInputModeText;//文本方式 
MSComm1.InputMode := comInputModeBinary;//二进制方式 
MSComm1.PortOpen := true;//打开端口 
end; 

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
begin 
if MSComm1.PortOpen then MSComm1.PortOpen := false;;//关闭端口 
end; 

procedure TForm1.MSComm1Comm(Sender: TObject); 
var 
buffer: Olevariant;//MSComm1.InputMode = comInputModeBinary 
str: string;//MSComm1.InputMode = comInputModeText 
i: integer; 
begin 
case MSComm1.CommEvent of 
comEvReceive: //串行接收事件处理 
begin 
if MSComm1.InputMode = comInputModeText then //字符方式读取 
str := MSComm1.Input//读出后会自动清除接收缓冲区,str[1]~str[32] 
else //二进制方式读取 
buffer := MSComm1.Input;//读出后会自动清除接收缓冲区,buffer[0]~buffer[31] 
Edit3.Text := ''; 
for i := 0 to MSComm1.RThreshold - 1 do //32字节Hex转换 
begin 
if MSComm1.InputMode = comInputModeText then //单行字符转换 
Edit3.Text := Edit3.Text + inttohex(byte(str[i + 1]), 2) + ' ' 
else //单行二进制数据转换 
Edit3.Text := Edit3.Text + inttohex(buffer[i], 2) + ' '; 
end; 
Memo2.Lines.Add(Edit3.Text);//加入一行显示 
end; 
end; 
end; 

procedure TForm1.BitBtn1Click(Sender: TObject); 
var 
i: integer; 
begin 
Edit4.Text := ''; 
for i := 0 to 31 do 
begin 
MSComm1.Output := char(i);//发送一个字符 
Edit4.Text := Edit4.Text + inttohex(i, 2);//以十六进制字符显示 
end; 
Memo1.Lines.Add(Edit4.Text);//加入一行显示 

end;            
――――――――――――――――

原文链接:https://blog.csdn.net/hffyyff/article/details/83822234

相关阅读 >>

Delphi 使用webbrowser控件获取含框架的网页的完整html代码

system单元一些有用的变量或者常数

Delphi中创建json字符串

Delphi webbrowser设置自己定义user-agent

Delphi tgifimage:timage显示gif动画

Delphi android 拨打电话

Delphi spcomm 接收数据不完整

Delphi清空回收站

Delphi idhttpserver的使用方法

Delphi xe10 安卓设备信息

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...