阅读:2083回复:12
谁知道如何让串口(DB9口)的某一个脚给出一个信号?
就是控制串口的某一个脚如第4脚或第7脚,给一个高电平或底电平?
现在基本上只用到了第2、3、5脚,其他的脚都空着没在用,所以想利用一下。 |
|
|
沙发#
发布于:2002-11-11 17:27
如果你控制过MODEM,就简单了
|
|
|
板凳#
发布于:2002-11-11 17:37
可以访问串口的控制寄存器,设置相应的位,就可以了。
|
|
|
地板#
发布于:2002-11-11 18:00
可以直接写寄存器,如果你不是NT/2K/XP的应用的话,如果你用WIN32API,有一个串口函数EscapeCommFunctions
|
|
|
地下室#
发布于:2002-11-11 20:53
其它几只脚都是用来和MODEM握手的标准信号,
在RS232标准中有定义的4脚是DTR 7脚是RST,没办法利用的,除非你自己想做一个DTE,和DCE。 要不然还是别打它的主意了。 [编辑 - 11/11/02 by lilitdl] |
|
5楼#
发布于:2002-11-12 08:52
To:looking & minsoft
那么这个寄存器是系统自带的还是232控制芯片里的? 因为我想在386工控主板(DOS6.22和BC3.1环境下)和DSP两种情况下分别控制。 呵呵,基础太差,各位别见笑。 :D :D :D :D :D :D :D To:lilitdl 看了我的条件,您还有没有其他的见解?请指点。 :) :) :) :) :) :) :) :) |
|
|
6楼#
发布于:2002-11-12 09:15
我用过这两个信号,你可以通过api函数来控制,具体哪个函数我不清楚,因为我只做硬件。我用这两个信号控制计数器,实现了一个串口地址,与8个串口设备通讯。你要注意别忘了把232电平转换为ttl电平。
|
|
7楼#
发布于:2002-11-12 09:19
我用过这两个信号,你可以通过api函数来控制,具体哪个函数我不清楚,因为我只做硬件。我用这两个信号控制计数器,实现了一个串口地址,与8个串口设备通讯。你要注意别忘了把232电平转换为ttl电平。 OWO,我编程语言一个是DOS下的BC3.1一个是汇编,所以是用不到api函数的。 :( :( :( |
|
|
8楼#
发布于:2002-11-12 10:55
最简单的使用MSCOMM32。OCX就可以控制.
|
|
|
9楼#
发布于:2002-11-12 12:46
用汇编那更方便了,想干什么就干什么。比如说你用COM1的话,你应该知道它的口地址和这些口地址是干什么用的。用outportb(口地址,参数)(好像是,记不清了)就可以。跟你设波特率、数据位停止位、奇偶校验位一样的用法。
兄弟加点分吧。 |
|
10楼#
发布于:2002-11-13 14:03
在dos下就更方便了,至于寄存器的地址,可以查一下8250芯片或它的兼容芯片如16550,工控板上应该有这样的芯片的。串口com1的控制和状态寄存器起始地址好像是0x3F8,com2的是0x2f8,一共是8个寄存器,可以用汇编,也可以用c语言读写。
|
|
|
11楼#
发布于:2002-11-14 15:24
你可以看一下TI公司的16C550的资料,可以从TI的网站上下载,里面讲的很详细,所有PC兼容的设备的串口都兼容16C550,在TC下你可以调用outport()来写相应的16C550的寄存器,在DSP上,一般来讲你需要使用I/O来控制,当然你的硬件得支持才行。
|
|
12楼#
发布于:2002-11-15 12:57
你可以看一下TI公司的16C550的资料,可以从TI的网站上下载,里面讲的很详细,所有PC兼容的设备的串口都兼容16C550,在TC下你可以调用outport()来写相应的16C550的寄存器,在DSP上,一般来讲你需要使用I/O来控制,当然你的硬件得支持才行。 DOS下用 |
|
|