没有合适的资源?快使用搜索试试~ 我知道了~
Delphi中用SPCOMM实现串口编程
5星 · 超过95%的资源 需积分: 0 9 下载量 86 浏览量
2012-03-21
14:08:21
上传
评论
收藏 457KB DOC 举报
温馨提示
试读
23页
Delphi中用SPCOMM实现串口编程
资源详情
资源评论
资源推荐
先把那个 comm32 复制到你安装 DELPHI 的目录下,然后打开 delphi,在 tools--
>environment options-->library-->library path 中,选择你刚才复制到的目录,确定!
然后再在 component-->install component-->unit file name 中,选择 spcomm.pas,确定就
可以了!
在 Delphi 中用 SPCOMM 实现串口编程
Delphi 是一种具有功能强大、简便易用和代码执行速度快等优点的
可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来
越重要的作用,许多程序员愿意选择 Delphi 作为开发工具编制各种
应用程序。但是,美中不足之处是 Delphi 没有自带的串口通信控件,
在它的帮助文档里也没有提及串口通信,这就给编制通信程序的开
发人员带来许多不便。
目前,利用 Delphi 实现串口通信的常用的方法有 3 种:一是利用控
件,如 MSCOMM 控件和 SPCOMM 控件;二是使用 API 函数;三
是调用其他串口通信程序。其中利用 API 编写串口通信程序较为复
杂,需要掌握大量的通信知识。相比较而言,利用 SPCOMM 控件
则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性
及事件,提供了对串口的各种操作,而且还支持多线程。下面本文
结合实例详细介绍 SPCOMM 控件的使用。
SPCOMM 的安装
1.选择下拉菜
单 Component 中的 Install Component 选项,弹出如图 1 所示的窗
口。
在 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,把窗体的标题定义为测试通信,按照图 2 添加控件 (图 2
中黑色矩形围住的控件即为 COMM1)。
图 2
1.设定 COMM1 属性:
●波特率: 4800;
●奇偶校验位:无;
●字节长度: 8;
●停止位: 1;
●串口: COM1。
Memo1 中 将 显 示 发 送 和 接 收 的 数 据 。 将 新 的 窗 体 存 储 为
Comm.pas。
2.编写源代码
//变量说明
剩余22页未读,继续阅读
pancup
- 粉丝: 1
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1