社区
Delphi
帖子详情
有串口通讯开发经验的人进!
lylen
2005-02-28 12:51:35
在与串口进行通讯的时候,我们要用到例如TMSComm控件来实现串口的通讯,dll的使用使得程序的重用得到增强。在delphi中,已经知道要用的dll,我们在进行串口通讯的检测的时候,是不是说我们也要借助于TMSComm控件?我们用TMSComm控件可以获得端口句柄,那dll中的获得端口句柄是怎么一回事呢?两者有什么区别呢?
...全文
221
11
打赏
收藏
有串口通讯开发经验的人进!
在与串口进行通讯的时候,我们要用到例如TMSComm控件来实现串口的通讯,dll的使用使得程序的重用得到增强。在delphi中,已经知道要用的dll,我们在进行串口通讯的检测的时候,是不是说我们也要借助于TMSComm控件?我们用TMSComm控件可以获得端口句柄,那dll中的获得端口句柄是怎么一回事呢?两者有什么区别呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
才子鸣
2005-02-28
打赏
举报
回复
基本上没什么区别,
获得的都是同一个句柄
lylen
2005-02-28
打赏
举报
回复
回复:kernelspirit(核心精神)
哇塞!简直真的是高人啊!听你这么解释,让我茅塞顿开,受益匪浅啊!主要是刚接触delphi不懂的东西太多了!现在就连关于类型转换的问题我都头大!例如:在vc++中定义变量类型pchar,在delphi中需要定义成什么类型啊?又要用到什么类型转换函数啊!?头又大了!...............
kernelspirit
2005-02-28
打赏
举报
回复
回复:
这些资料我都看烂了。我的问题是我们用TMSComm控件可以获得端口句柄,那dll中的获得端口句柄是怎么一回事呢?两者有什么区别呢?
端口句柄是每个串口打开时,Windows分配的设备句柄;
"DLL中的获得端口句柄"你说的不太明了,可能是
1、调用某个函数返回的通信端口句柄,它与TMSComm获得的句柄完全一样;
2、也可能是DLL本身的句柄,两个天壤之别。
kernelspirit
2005-02-28
打赏
举报
回复
你的意思好像是在DLL中封装了TMSComm,并实现了自己的协议,那样也好,那么DLL应该暴露数据读写的接口函数了,通信句柄可能是DLL中内部的对象,使用此DLL的客户可能不需要知道的,只要调用函数即可,最好不用来回传句柄,因为你不知道DLL内部的通信句柄什么时候失效!
iltg
2005-02-28
打赏
举报
回复
Cport如何(相比Spcomm)?
sxy_9761
2005-02-28
打赏
举报
回复
见议使用TSPCOMM
lylen
2005-02-28
打赏
举报
回复
有没有控件和API一起来使用的例子呢?
gzmhero
2005-02-28
打赏
举报
回复
干吗非盯着句柄不放呢,你如果用控件来处理发送接收,不要管句柄,只要调用控件的属性,函数就行了.
除非你发送接收用API来写。
gzmhero
2005-02-28
打赏
举报
回复
发送数据:
comm1.writecommdata(@sbuf[i],1)
接收数据:
procedure TCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;
begin
viewstring:="";
move(buffer^,pchar(@rbuf^),bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+inttohex(rbuf[i],2)+" ";
viewstring:="接受"+viewstring;
memo1.lines.add(viewstring);
memo1.lines.add("");
end;
lylen
2005-02-28
打赏
举报
回复
这些资料我都看烂了。我的问题是我们用TMSComm控件可以获得端口句柄,那dll中的获得端口句柄是怎么一回事呢?两者有什么区别呢?
gzmhero
2005-02-28
打赏
举报
回复
Delphi 中串口通讯的实现
用Delphi 实现串口通讯,常用的几种方法为:使用控件如MSCOMM和SPCOMM,使用API函数或者在Delphi 中调用其它串口通讯程序。利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于编写较为复杂的低层次通信程序。相比较而言,利用SPComm控件则相对较简单,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作。
使用控件这一方法容易掌握,而SPCOMM支持多线程,所以SPCOMM控件的应用更加广泛。结合实例详细介绍SPCOMM的使用。
一.SPCOMM控件的安装
1.选择下拉菜单Component的第二项Install Component 。
弹出窗口,在Unit file name 处填写控件SPCOMM控件所在路径,其它可用默认值,点击OK按纽。
2.安装成功后,system控件面板中将出现一个红色控件COMM。现在使用COMM控件可以象Delphi自带控件一样使用。
二.SPCOMM的主要属性,方法和事件
1.属性
CommName:填写COM1,COM2…等串口的名字,在打开串口前,必须填写好此值。
BaudRate:设定波特率9600,4800等,根据实际需要来定,在串口打开后也可更改波特率,实际波特率随之更改。
ParityCheck:奇偶校验。
ByteSize:字节长度_5,_6,_7,_8等,根据实际情况设定。
Parity:奇偶校验位
pBits:停止位
SendDataEmpty:这是一个布尔属性,为true时表示发送缓存为空,或者发送队列里没有信息;为False时表示表示发送缓存不为空,或者发送队列里有信息。
2.方法
Startcomm过程用于打开串口,当打开失败时通常会报错,错误主要有7种:
⑴串口已经打开 ;
⑵打开串口错误 ;
⑶文件句柄不是通讯句柄;
⑷不能够安装通讯缓存;
⑸不能产生事件 ;
⑹不能产生读进程;
⑺不能产生写进程;
StopComm过程用于关闭串口,没有返回值。
函数WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于发送一个字符串到写线程,发送成功返回true,发送失败返回false, 执行此函数将立即得到返回值,发送操作随后执行。函数有两个参数,其中 pdatatowrite是要发送的字符串,dwsizeofdatatowrite 是发送的长度。
3.事件
OnReceiveData : procedure (Sender: TObject;Buffer: Pointer;BufferLength: Word) of object
当输入缓存有数据时将触发该事件,在这里可以对从串口收到的数据进行处理。Buffer中是收到的数据,bufferlength是收到的数据长度。
OnReceiveError : procedure(Sender: TObject; EventMask : DWORD)
当接受数据时出现错误将触发该事件。
delphi7下实现
串口通讯
控件spcomm
好资源啊,已证实delphi7下可用,我xp3系统,刚试过忍不住马上为大家分享。压缩包中有spcomm.pas、spcomm_d7.dak文件,用于delphi7完成
串口通讯
。包内有安装方法,文档中还有一个简单例子!文档中还有介绍关于mscomm的使用方法。
VC
开发
的
串口通讯
类(静态库,含使用范例和注解)
这是我用VC写的一个串口通信类,是静态库形式的,可随工程一起编译。里面还有在MFC中使用的简单范例,当然Win32程序也可以调用,因为设计时就是用纯API打造的,当初也是为Win32应用程序做的接口类。因为采用的是多线程的方式处理,对CPU的占用率也是很低很低的,运行效率还不错,使用也方便,还有类似于 VB 事件的概念。 看范例就知道了。
VC++串口通信20个经典源码合集
内含代码与串口通信说明文档。 具体内容为: VC 串口通信程序.rar VC 读串口话是动态波形,非常好的应用程序,有源码.rar VC++ 串口实现双机互联 包含视窗加代码.rar VC++ 串口通信,可以收发数据,可选用TCPIP 通信.rar vc++ 开放的
串口通讯
程序,经测试特别好用.rar VC++串口编程 不需使用Active控件实现.rar VC++串口编程教学源码,串口学习的好东西.rar VC++串口通信源代码,用与两台机器间的串口通信,内含串口通信类.zip vc++
串口通讯
程序,该程序能实现打字机方式进行数据传输.zip VC++使用串口控件实现温度数据采集并显示.rar VC++多串口控制解决方案源代码.zip vc++实现串口通信的聊天程序,可供有关爱好者学习-.rar VC++实现串口通信,觉得好的人顶详细介绍串口通信.rar VC++实现
串口通讯
的完整编程,并且实现各种数据的转换功能和设置.rar vc++
开发
的串口编程,包括打开串口,设置串口,读取数据等等操作.rar VC++
开发
的
串口通讯
软件源代码, 非常的详细.rar VC++环境下从串口读取数据并实时绘制曲线图.rar VC++环境下用MSComm控件进行
串口通讯
编程 模型飞机测控平台.rar vc++编写的串口检测程序
开发
.rar 多年积攒600M极其珍贵的原创VC++串口通信技术资料V1.0介绍 年积攒600M极其珍贵的原创VC++串口通信技术资料V1.0介绍
人机界面组态软件HMImaker
上位机组态软件HMIMaker---专为组态型工控机(工业电脑)
开发
的的界面编辑设计软件!具有绘图、按钮、位开关、字符控件、数据监控、实时曲线、动态图片、用户与密码设置等功能,完善的界面设计控件。通讯协议为自定义协议,使用简单,灵活,方便。只需用单机机或PLC通过串口简单发送指令,您的显示部分就一切轻松搞定! "所见即所得"、"0"代码!快速生成超炫图形界面设计,如"制作PPT"一样容易、快速!支持离线和在线模拟,快速验证您的设计效果,方便设计和调试,大大减轻软件
开发
人员在人机界面
开发
的负担和提高
开发
效率,专心于专业产品的
开发
,避免重复性劳动。为您大大地短了产品的
开发
周期。
java
串口通讯
开发
rxtxSerial.dll的闪退问题解决
java
串口通讯
开发
遇到的问题排查过程、解决办法
Delphi
5,379
社区成员
262,722
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章