帮帮小妹~ 如何利用spcomm控件设置DTR 得到想要的电压值?(50分)

  • 主题发起人 主题发起人 慕容欲静
  • 开始时间 开始时间

慕容欲静

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位大哥大姐指点,如何利用spcomm设置DTR 得到想要的电压值?
 
comm1.DtrControl:=( DtrEnable, DtrDisable, DtrHandshake );
取之一,去掉括号
 
请问他们对应的电压是多少?
 
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。

RS-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为3~7kΩ。由于RS-232发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。所以RS-232适合本地设备之间的通信。
 
呵呵,以前刚好写过一个和UPS通讯的程序,用SetCommMask函数可以设置DTR(DSR)脚的电压,高电平好象是5V,低电平0V。
如果用SPComm就更方便了.
 
thanks,但我很想知道,comm1.DtrControl:=( DtrEnable, DtrDisable, DtrHandshake );有什么用,有哪位大虾能指点一下~
 
顶!!!!!!!!!!!!!!!!!
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=24148
 
DtrControl : ( DtrEnable, DtrDiable, DtrHandshake )

Specifies the DTR (data-terminal-ready) flow control. This member
can be one of the following values:

Value Meaning
------------- ------------------------------------------------------
DtrDiable Disables the DTR line when the device is
opened and leaves it disabled.
DtrEnable Enables the DTR line when the device is
opened and leaves it on.
DtrHandshake Enables DTR handshaking. When our comm port is opened
and ready for receiving data, DTR is enabled. When
our comm port is suspend, closed or has error
(and not cleared), DTR is disable.
If handshaking is enabled, it is an error for the
application to adjust the line by using the Win32
EscapeCommFunction function.

DTR is a output pin. You can set its state in MCR register.
It usually connect to DSR pin in the other end.
You can change this value when the comm is open.
 
谢谢各位!!!我已经知道,comm1.DtrControl:=DtrEnable,这样设置就在dtr的端口得到+9v左右的电压,如果是comm1.DtrControl:=DtrDisable,就得到 -9v,谢谢~
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部