- 运行环境:PC-windows操作系统
- 软件语言:简体中文|授权方式:绿色免费版
- 软件类型:国产软件 - 应用软件 - 编程相关
- 软件大小:492 KB
- 下载星级:
- 软件官网:暂无
- 更新时间:2019/1/15 11:44:13
【软件截图】
【基本介绍】
串口控件包 spcom 学习Delphi保存一下。 很好使用的一个Delphi 串口 com串口控件
spcom串口控件包功能特色:
CommName属性:电脑计算机串口端口号的名字, COM1、COM2??等, 就在打开串口前, 就一定要填写好此值。
Parity属性:校验位 None、Odd、Even、Mark、Space等。
BaudRate:设定支持串口通信用的波特率9600, 4800等, 根据记录实际有请求需要来定, 在串口打开后也可更改波特率, 实际波特率随之更改。
ByteSize属性:表示一个字节中, 使用多少个数据信息位收发数据, 根据具体情况设定5、6、7、8等。
StopBits属性:表示一个字节中, 使用停止stop位的位数, 根据具体情况设定1、1.5、2等。
SendDataEmpty属性:布尔属性, 为True时表示发送send缓存为空, 或者发送队列里没有信息;
为False时表示表示发送缓存不为空, 或者发送队列里有信息。
StartComm方法:用来打开通信串口, 现在开始通信。 如果失败, 则会导致串行口错误。 错误类型大致分为串行口己处于打开状态,
所以不能够打开串行口, 不能建造读写进程, 不能建立串行口缓冲区等。
StopComm方法:用来停止通信串行口的所有进程, 关闭串口。
WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word) 方法是带有布尔型返回值 的函数,
其中参量pszStr-ingToWrite是要写入串行口的字符串,
DwSizeaf- DataToWrite是要写入的字符串的长度。
该函数可以通过一个写线程向串行口输出缓冲区发送数据。 发送操作将在后台默认执行。
如果写线程 PostMessage成功, 则返回值是True, 若写线程失败, 返回值是False。
OnReceiveData(Buffer:Pointer;BufferLength:Word), 其中 Buffer是指向输入缓冲区的指针。
BufferLength是从缓冲区收到的数据长度。 当输入缓冲区收到数据时, 该事件被触发。
当输入缓存有数据时将触发该事件, 对从串口收到的数据来进行处理。
3.2 Spcomm串口通信的实现
Spcomm串行通信控件具有多线程的特性, 接收和发送数据分别在两个线程内完成, 接收线程负责收到数据时触发 OnReceiveData事件;
用 WriteCommData()函数将待发送的数据写入输出缓冲器, 发送线程在后台完成数据发送工作。 在接收和发送数据前需要初始化串口,
用 StartComm方法打开串口, 退出程序时用StopComm方法关闭串口。
实现PC机与单片机之间的数据发送及接收需要以下步骤:
(1)初始化并打开串口
需要选择中本次通信使用的串口, 确定通信协议, 即布置设置波特率、校验方式、数据位、停止位等属性, 打开该串口。
示例代码如下:
//初始化并打开串口
Comm1.BaudRate:=9600; // 波特率9600bps
Comm1.Parity:=None; // 奇偶检验无
Comm1.ByteSize:=8; // 数据位8
Comm1.StopBits:=1; // 停止位1
Comm1.StartComm; // 打开串口
(2)建立握手信号
实现PC机与单片机之间的通信, 最先是要调通它们之间的握手信号, 握手信号可以能够随意选择某特定字符串,
当PC发出这样一帧数据后, 通过接收事件能收到单片机返回的这一帧数据或特定的某字符串, 则表示握手成功,系统system通信正常。
两者之间就可以按照协议互相一起传输数据。 否则需重新建立握手信号。
(3)发送数据
在编写基于串口的计算机工业测控时, 通常需要由PC机向下位机发送命令以控制下位机的行为, 同一个时间向下位机发送有关联数据。
利用Spcomm串口控件向下位机发送数据示例代码如下:
//发送数据和控制字程序
procedure senddata;
var
i:integer;
co