加入收藏 最近更新下载
  用户名: 密 码:
三友软件ERP操作问答
三友信息中心
信息搜索
关键字:
范 围:
首页三友信息中心 技术支持其它技术文档
 
Delphi 实现串口通信
内容来源:其它技术文档    点击数:3751    更新时间:2012/4/24 9:29:08    收藏此页

nbsp; MSCOMM控件和   SPCOMM控件;二是使用   API函数;三是调用其他串口通信程序。其中利用   API编写串口通信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用   SPCOMM控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,而且还支持多线程。下面本文结合实例详细介绍   SPCOMM控件的使用。   

   

  SPCOMM的安装   

   

  1.选择下拉菜单   Component中的   Install   Component选项,在   Unit   file   name处填写   SPCOMM控件所在的路径,其他各项可用默认值,点击   OK按钮。  

  2.安装后,在   System控件面板中将出现一个红色控件   COM。现在就可以像   Delphi自带控件一样使用   COM控件了。  

  SPCOMM的属性、方法和事件   

  1.属性   

  ●CommName:表示   COM1、   COM2等串口的名字;   

  ●BaudRate:根据实际需要设定的波特率,在串口打开后也可更改此值,实际波特率随之更改;  

  ●ParityCheck:表示是否需要奇偶校验;  

  ●ByteSize:根据实际情况设定的字节长度;   

  ●Parity:奇偶校验位;  

  ●StopBits:停止位;   

  ●SendDataEmpty:这是一个布尔型属性,为   true时表示发送缓存为空,或者发送队列里没有信息;为   false时表示发送缓存不为空,或者发送队列里有信息。  

  2.方法   

  ●Startcomm方法用于打开串口,当打开失败时通常会报错。错误主要有   7种:⑴串口已经打开;⑵打开串口错误;⑶文件句柄不是通信句柄;⑷不能够安装通信缓存;⑸不能产生事件;⑹不能产生读进程;⑺不能产生写进程;   

  ●StopComm方法用于关闭串口,没有返回值;   

  ●WriteCommData(pDataToWrite:   PChar;dwSizeofDataToWrite:Word   )方法是个带有布尔型返回值的函数,用于将一个字符串发送到写进程,发送成功返回   true,发送失败返回   false。执行此函数将立即得到返回值,发送操作随后执行。该函数有两个参数,其中   pDataToWrite是要发送的字符串,   dwSizeofDataToWrite是发送字符串的长度。   

  3.事件   

  ●OnReceiveData   :procedure   (Sender:   TObject;Buffer:   Pointer;BufferLength:   Word)   of   object  

  当有数据输入缓存时将触发该事件,在这里可以对从串口收到的数据进行处理。   Buffer中是收到的数据,   BufferLength是收到的数据长度。  

  ●OnReceiveError   :   procedure(Sender:   TObject;   EventMask   :   DWORD)  

  当接收数据出现错误时将触发该事件。  

  SPCOMM的使用 下面是一个利用   SPCOMM控件的串口通信的例子。  

  以实现   PC机与单片机   8051之间的通信为例,首先要调通它们之间的握手信号。假定它们之间的通信协议是:   PC到   8051一帧数据   6个字节,   8051到   PC一帧数据也为   6个字节。当   PC发出(   F0,01,FF,FF,01,F0)后   8051能收到一帧(   F0,01,FF,FF,01,F0),表示数据通信握手成功,两者之间就可以按照协议相互传输数据。  

  创建一个新的工程   COMM.DPR,把窗体的   NAME属性定为   FCOMM,把窗体的标题定义为测试通信,添加相应的控件。  

  1.设定   COMM1属性:  

  ●波特率:   4800;●奇偶校验位:无; ●字节长度:   8;●停止位:   1; ●串口:   COM1。  

  Memo1中将显示发送和接收的数据。将新的窗体存储为   Comm.pas。  

 

Top


4 楼Larry1030(阿摯(在路上...))回复于 2005-09-27 08:48:23 得分 0 关注  

 

Top


5 楼abc3000(想想就烦)回复于 2005-09-27 09:30:48 得分 10 

  procedure   TForm1.Button2Click(Sender:   TObject);  

  var  

      str:pchar;  

      count:integer;  

  begin  

      comm1.StartComm;  

      str:=pchar(edit2.Text);  

      count:=length(str);  

      comm1.WriteCommData(str,count);  

  end;

Top


6 楼hexenzhou(甲骨文)回复于 2005-09-28 23:47:17 得分 10首先你得拥有Led点阵屏的通讯协议,否则,无法下手!

Top


7 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2005-09-29 08:19:24 得分 10>>电子数字显示牌  

  正常,会带有个控制器,有些没有,必须向厂家再买,然后,就可根据控制器的通信协议来控制了

Top


8 楼luxuewei5214(小卢)(以下内容仅供参考)回复于 2005-09-29 17:00:19 得分 10是,必须按协议发送,如果只发送显示内容,不一定能正常显示的。就是个写串口的问题。前面的同志已经讲得够祥了。

Top


9 楼wuhjack(需要雨)回复于 2005-10-06 11:19:14 得分 0 有传送协议,是这样的:数据位:8位;停止位:1位;  

                                        波特率:2400;校验位:无.  

  数据传送方式:传送3位数字字符;  

  希望高手再帮我看看。   

 


 


 



三友软件专注于中小型制造业信息化建设,系统性搭建企业管理平台

(流程梳理
BPM+ERP
数据流+OA文字办公流+CRM客户关系管理)

让企业走上流程规范化、条理化、数据及时清晰,让管理从此变得简单和高效。

更多关注请联络三友软件李顾问
15889332878
、万顾问136 2092 3849 



 网址:http://www.3yousoft.com


 


 

总页数:2  第  1  2    页 

上一篇:DBGrid导出Excel方法   下一篇:sm系统单价整理SQL导入脚本
【刷新页面】【加入收藏】【打印此文】 【关闭窗口】
 
友情链接
版权所有 2009 © 深圳市三友信息技术有限公司 网站备案号:粤ICP备20072280号
代理域名注册服务机构:北京新网数码信息技术有限公司