怎样对串口读写数据(100分)

L

Lamb

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要编写一个程序对串口读写数据,谁能告诉我方法?如果能有源代码的
例子,就太好了。希望有人能帮助我!!!
 
给我你的email地址,我传给你一份程序,一份标准控件的源程序.
 
忘了告诉你我的地址:lyz531@163.net
 
请下载lyz的<a href="/delphi/attachments/comm.zip">答案</a>。
 
我这里有一个component,是从super page
下的,有源代码。
如需要可发个e-mail给我:qianjh@263.net.
 
TCommPortDriver ,很不错的.
支持16个串口. 如果你要用到COM3,COM4(比如在两台机器间传数据),用他
就对了.

很好用,支持Packet, 如果传输得是定长的数据,尤其适用.传到了一定的长度,
会有事件触发的.

经过实践环境检验,稳定,可靠.以运行好几个月,一点问题没有.

附带CommTest,一个很好的检测工具,可以试验发送数据.

支持各种握手方法,不过我都没用过.

下载自DSP,不过Delphi深度历险中好象也有.
 
我目前下载了async32控件,效果还可以.
 
232串口驱动控件及测试程序,从http://mdlive.com/d3k/下载的,不知道
现在还有没有,如需要可
e-mail通知我,wts999@263.net
 
VB中的MS COMM控件很好用,
为何不用,VB的ON LINE BOOK中有例程,
有问题:liuj@990.net
 
用 sp_comm,这是我所知道的最小巧而又功能强大的控件,
我们长期进行串口通讯开发,最终确认这是最好的控件.

不但有控间的源码,http://www.nease.net/~bozhi/
上还有使用的例子.
 
目前,我已能从串口收发数据,但是:
谁能告诉我,怎样按位传送数据.
或者按比特传送后,判断每一位数据是什么?
 
三个串行口控件的"小"比较:
1:VB的MSCOMM控件
各种属性,串行口的通讯细节设置方便,但只有一个事件,编程繁琐,需要自己
用"Case"来区分各种事件,并由于是非多线程控件,而串行口的发送速度相对主机较慢,
故在程序里要注意释放CPU资源.
2: Comm32.zip
最新的源代码,Ver 1.08,据说可以支持到 16个串行口,在Delhi4下也不能正常
安装,故没有用,只记得过去在Delphi2编译正常,各种设置多可通过下拉框选择.
3: Spcomm控件:
细节设置不方便,端口,速度要手工键入,但是,事件多,且是一个多线程控件.
故编程很方便.简单,本人推荐.已成功使用COM1,COM2,COM3.
如何初始化Com口?设置好 "端口,速度,停止"后, "Comm1.startcomm;"便可
如何向串口发送位? 设置好要发送的缓冲指针,发送长度,如下
if comm1.WriteCommData(Pchar(strTxCode),CodeLength)
then begin
Wait232Rime:=0; // 发送成功后,开启定时器, 此时间为串行口未响应最长时间
Timer1.Enabled:=True;
statusLine.Panels.Items[0].Text:='通讯端口命令发送成功';
end
else begin
FaSongStatus:=False;
statusLine.Panels.Items[0].Text:='通讯端口联络命令发送不成功 !';
end;

如何响应Com口的位到达,有接收事件

procedure TfrmRs232Main.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
strRxIn:string;
charCode:char;
intPos:integer;
intCheck:integer; // 检验和计数
CheckTemp:integer;
begin
SetLength(strRxIn,BufferLength); // 设置接收字符串长度
Move(Buffer^, PChar(strRxIn)^, BufferLength); // RS232数据==>strRxIn

或者按比特传送后,判断每一位数据是什么? 用Pascal的逻辑指令分离吧
...
注意: 1: 0值处理 为结束符号处理? 不处理
2: 硬件连接, 25针同9针 管脚的不同,如果用三线连接,要用软件来达到握手信号
3: 发送流要加同步字符
 
还是Turbo Power的巨无霸Async Pro好用。 :)
支持多用户卡... 功能很多,到Turbo Power瞧去...
 
RS232和RS422的转换需要注意什么?
 
Spcomm控件可以在Delphi4中使用吗?和Async32比哪个更好,更稳定?
谢谢!
 
在delphi 3中那个好???
 
在delphi 3中那个好???
 
在 Delphi3中 spcomm和commdrv32都差不多,
但注意:commdrv32一定要用最新版,下载地见我另一篇贴子。

Delphi4中commdrv32有不兼容的代码,主要是类型转换更严格导致,
但你可以给Commdrv32的作者发信,索取Delphi4版。e-mail:d3k@mdnet.itd

spcomm Delphi4我还没试过。

spcomm和ASync32严格说不属于同一种类,前者简单灵活,足以胜任串
口通讯任务;后者是一个庞大的控件组,支持各种协议。
 

Similar threads

顶部