`
javatoyou
  • 浏览: 1016010 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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;
分享到:
评论

相关推荐

    Delphi+MSComm控件串口收发程序.doc

    Delphi+MSComm控件串口收发程序.doc

    MSComm控件串口收发程序

    《Delphi串口通信工程开发实例导航》电子书

    MSComm-suer.rar_delphi mscomm_event_mscomm_vb MSComm_vb 串口收发

    Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的...

    MSComm控件使用详解

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    通信控件MSComm使用详解

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    解决使用MSComm控件进行串口数据的接收数据不完整.txt

    串口通信、MFC入门

    MSComm控件的手记

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    MSComm控件串口编程入门代码

    最简单的例子,实现两个对话框程序的字符串收发

    com口控件安装.rar

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    MSCOMM32.rar

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    MSCom控件使用详解

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    MSCOMM.rar

    VS2010 2015 添加串口 亲测有效MSComm ... Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

    Delphi串口及语音传真高级编程.(北航出版.温锦山.唐柱鹏)

     2.2.2 mscomm控件的安装  2.2.3 mscomm的主要属性和事件  2.2.4 mscomm32的使用例子  2.2.5 程控机计费系统的接收模块  2.3 tapi简介  2.3.1 关于tapi  2.3.2 tsp  2.3.3 ...

    Delphi串口及语音传真高级编程随书光盘

    另外在介绍语音、传真格式的转换等方面需要编写大量的代码:一些现成的免费控件如MSCOMM、SP-COMM,虽然也可以实现一些简单的功能. 但这只是AT命令的扩展. 功能有限. 很难满足语音、传真高级编程的需求.因此考虑到...

Global site tag (gtag.js) - Google Analytics