欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > spcomm串口号

spcomm串口号

时间:2018-06-16 19:43

Delphi7 SPCOMM串口通信

Spcomm串口通信控件的基本属性、方法和事件说明如下:CommName属性:计算机串口端口号的名字,COM1、COM2……等,在打开串口前,必须填写好此值。

Parity属性:校验位 None、Odd、Even、Mark、Space等。

BaudRate:设定支持串口通信用的波特率9600,4800等,根据实际需要来定,在串口打开后也可更改波特率,实际波特率随之更改。

ByteSize属性:表示一个字节中,使用多少个数据位收发数据,根据具体情况设定5、6、7、8等。

StopBits属性:表示一个字节中,使用停止位的位数,根据具体情况设定1、1.5、2等。

SendDataEmpty属性:布尔属性,为True时表示发送缓存为空,或者发送队列里没有信息;为False时表示表示发送缓存不为空,或者发送队列里有信息。

StartComm方法:用来打开通信串口,开始通信。

如果失败,则会导致串行口错误。

错误类型大致分为串行口己处于打开状态,所以不能打开串行口,不能创建读写进程,不能建立串行口缓冲区等。

StopComm方法:用来停止通信串行口的所有进程,关闭串口。

WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word)方法是带有布尔型返回值 的函数,其中参量pDataToWrite是要写入串行口的字符串,dwSizeofDataToWrite是要写入的字符串的长度。

该函数通过一个写线程向串行口输出缓冲区发送数据。

发送操作将在后台默认执行。

如果写线程 PostMessage成功,则返回值是True,若写线程失败,返回值是False。

OnReceiveData(Buffer:Pointer;BufferLength:Word),其中Buffer是指向输入缓冲区的指针。

BufferLength是从缓冲区收到的数据长度。

当输入缓冲区收到数据时,该事件被触发。

当输入缓存有数据时将触发该事件,对从串口收到的数据进行处理。

如何使用spcomm控件读写串口数据

凡是这类问题,用你正常的QComm按你之前的正确设置向一个虚拟串口发送数据(比如连到com7,不要说你不知道VPSD是什么。

),同时用串口调试助手在另一个虚拟串口上接收数据(以十六进制显示,比如是com8),看看收到的数据是什么。

记一下这个数据,关掉 QComm,然后同样用spcomm向com7发送同样的数据,再看看串口调试助手收到的又是什么,比较一下二者的数据

请教大神,如何使用spcomm控件来实现多串口通信

以下代码请参考 if Port <> 0 then begin SPComm1 := TSPComm.Create(nil); SPComm1.BaudRate := Rate; SPComm1.CommName := 'COM'+IntToStr(Port); SPComm1.OnReceiveData := ReceiveData; SPComm1.StartComm; end;自己写个 ReceiveData函数,解析数据,并实现你要做的事

delphi spcomm串口通信程序,程序有问题,求高人详细给指导一下,把程序改正确了。

你计算机上有没有COM口,你设置了正确的COM号了没有,看程序应没有太大的问题。

我用spcomm控件做串口通信,怎么接受不到数据

串口通信和程序执行不一样。

程序是按照顺序执行的。

可串口需要响应时间。

也就是说,你发,他不一定马上会回复,一般会在一定时间段内反复接收几次。

中间可以尝试sleep一下。

另外注意端口的开启和关闭,还有占用

C++\\\/MFC 使用SPComm串口通信 用串口助手测试时 每次必须将串口助手接收的内容清空才可以接收到发送数据

本人希望的是可以一直发数据,串口助手那边可以一直接收并且显示,不知为何现在必须要每次都将接受内容清空才可以,还请高手指导。

void CSPCoomDlg::OnBnClickedButton1() { \\\/\\\/ TODO: 在此添加控件通知处理程序代码 \\\/*******************SPComm初始... 本人希望的是可以一直发数据,串口助手那边可以一直接收并且显示,不知为何现在必须要每次都将接受内容清空才可以,还请高手指导。

void CSPCoomDlg::OnBnClickedButton1(){\\\/\\\/ TODO: 在此添加控件通知处理程序代码\\\/*******************SPComm初始化*********************\\\/Serial->CommName = LCOM1;Serial->BaudRate = 9600;Serial->ByteSize = TComm::_8;Serial->Parity = TComm::None;Serial->StopBits = TComm::_1;Serial->OnReceiveData = ReceiveData;Serial->ReadIntervalTimeout = 50;if (!Serial->IsOpen())Serial->StartComm();UpdateData(TRUE);char p[8];int i;for (i = 0; i < m_send1.GetLength(); i++) \\\/\\\/char型转换为CString{p[i] = m_send1[i];}p[i] = '\\\\0';Serial->WriteCommData(p, 8);\\\/\\\/发送数据内容UpdateData(0);} 展开

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片