使用控件asynopro通过Com1或Com2与硬件设备进行通信(40分)

  • 主题发起人 主题发起人 吉花
  • 开始时间 开始时间

吉花

Unregistered / Unconfirmed
GUEST, unregistred user!
我要编一个通过COM1或COM2口进行通信的程序.该程序向接在COM1或
COM2口上的硬件设备发送信令,然后再接收该设备返回的信令.
信令格式为:STX+信令码+数据+ETX.
其中,STX为信令头,值始终为02H,ETX为信令结束的标志,其值始终为0DH.
连线为:2---3;3---2;5---5;8---8;
我使用的是一个叫asynopro(大概是这个名字)的控件,它有一个例子(demo),
我使用时,总是提示"Error write to:COM2",我看了一下源程序,发现问题:
假设我要发送:STX+1+ETX,那么变量S应该是:
S:='1'; S:=#2+S+#13吧!
可是单步执行时发现变量S的值却是: ''#2'1'#$D
看来是将字符串变量S前的#2做为字符了,我该怎么办?
还有就是连线中的第8脚是CTS吧?它有什么用呢?
如果有哪位能根据以上说明,提供相应的程序(附源代码),使用成功后
将奉送100!决不食言!
切盼!



 
我也想知道是怎样实现的! 我手头上有一台Gilat的卫星接收机,
用一根数据线连接在Com2,怎样才能读取串口的数据!!!
 
高手们,此事还有商量的余地吗? :)
 
CTS/RTS信号握手是古老的RS232控制.
使用Win9x/NT的CreateFile函数,利用SetCommState设置DCB的参数为
CTS/RTS握手,当接受缓冲区将满时,接受端口发送一个RTS low信号,发
送端口就暂时把发送操作挂起,发送方的CTS脚是与接收方的RTS相连的.

我不知道你说的控件,但是你可以使用CreateFile打开串口,利用WriteFile
与ReadFile对串口进行读写,利用SetCommState,GetCommState等函数来
设置串口.
 
s:=chr(2)+chr(1)+chr(13);
我用SPCOMM空间来开发串口通信.道理都一样.
 
关注问题
 
是ASYNC32吧?我最近也要用,答案也想要义份,谢谢
 
用VB提供的MSCOMM控件也可实现
 
我试过了,这个控件没有问题,其提供的DEMO也没有问题
我在两台机子上同时运行DEMO。EXE,两方都可以收发
当然,两台机子之间的串口是相连的
你碰到的问题的原因可能是没有正确的设置串口
也就是使用的是COM1,还是COM2,你不妨换一下试试
如果硬件连接通了,软件是没有问题的,你再试试
 
force finish.
----by 3h.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部