rudolf
驱动小牛
驱动小牛
  • 注册日期2002-10-09
  • 最后登录2006-04-25
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:2083回复:12

谁知道如何让串口(DB9口)的某一个脚给出一个信号?

楼主#
更多 发布于:2002-11-11 15:53
就是控制串口的某一个脚如第4脚或第7脚,给一个高电平或底电平?

现在基本上只用到了第2、3、5脚,其他的脚都空着没在用,所以想利用一下。
靠天靠地靠父母,不如靠自己。
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-11 17:27
如果你控制过MODEM,就简单了
生命驱动,活力无限!
looking
驱动小牛
驱动小牛
  • 注册日期2001-08-17
  • 最后登录2006-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-11 17:37
可以访问串口的控制寄存器,设置相应的位,就可以了。
往之不可谏,来者犹可追。
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-11 18:00
可以直接写寄存器,如果你不是NT/2K/XP的应用的话,如果你用WIN32API,有一个串口函数EscapeCommFunctions
少了e,就少了全部
lilitdl
驱动小牛
驱动小牛
  • 注册日期2002-10-09
  • 最后登录2005-04-14
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-11 20:53
其它几只脚都是用来和MODEM握手的标准信号,
在RS232标准中有定义的4脚是DTR
7脚是RST,没办法利用的,除非你自己想做一个DTE,和DCE。
要不然还是别打它的主意了。

[编辑 -  11/11/02 by  lilitdl]
rudolf
驱动小牛
驱动小牛
  • 注册日期2002-10-09
  • 最后登录2006-04-25
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
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
    看了我的条件,您还有没有其他的见解?请指点。



 :) :) :) :) :) :) :) :)
靠天靠地靠父母,不如靠自己。
mustang
驱动小牛
驱动小牛
  • 注册日期2002-05-17
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-12 09:15
我用过这两个信号,你可以通过api函数来控制,具体哪个函数我不清楚,因为我只做硬件。我用这两个信号控制计数器,实现了一个串口地址,与8个串口设备通讯。你要注意别忘了把232电平转换为ttl电平。
rudolf
驱动小牛
驱动小牛
  • 注册日期2002-10-09
  • 最后登录2006-04-25
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-12 09:19
我用过这两个信号,你可以通过api函数来控制,具体哪个函数我不清楚,因为我只做硬件。我用这两个信号控制计数器,实现了一个串口地址,与8个串口设备通讯。你要注意别忘了把232电平转换为ttl电平。


OWO,我编程语言一个是DOS下的BC3.1一个是汇编,所以是用不到api函数的。 :( :( :(
靠天靠地靠父母,不如靠自己。
OneWind
驱动小牛
驱动小牛
  • 注册日期2002-05-15
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分82分
  • 威望11点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-12 10:55
最简单的使用MSCOMM32。OCX就可以控制.
嘿,大家好!
mustang
驱动小牛
驱动小牛
  • 注册日期2002-05-17
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-12 12:46
用汇编那更方便了,想干什么就干什么。比如说你用COM1的话,你应该知道它的口地址和这些口地址是干什么用的。用outportb(口地址,参数)(好像是,记不清了)就可以。跟你设波特率、数据位停止位、奇偶校验位一样的用法。
兄弟加点分吧。
looking
驱动小牛
驱动小牛
  • 注册日期2001-08-17
  • 最后登录2006-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-13 14:03
在dos下就更方便了,至于寄存器的地址,可以查一下8250芯片或它的兼容芯片如16550,工控板上应该有这样的芯片的。串口com1的控制和状态寄存器起始地址好像是0x3F8,com2的是0x2f8,一共是8个寄存器,可以用汇编,也可以用c语言读写。
往之不可谏,来者犹可追。
lvyslvys
驱动牛犊
驱动牛犊
  • 注册日期2002-11-14
  • 最后登录2002-11-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-14 15:24
你可以看一下TI公司的16C550的资料,可以从TI的网站上下载,里面讲的很详细,所有PC兼容的设备的串口都兼容16C550,在TC下你可以调用outport()来写相应的16C550的寄存器,在DSP上,一般来讲你需要使用I/O来控制,当然你的硬件得支持才行。
Yoush
驱动牛犊
驱动牛犊
  • 注册日期2002-01-14
  • 最后登录2005-01-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-15 12:57
你可以看一下TI公司的16C550的资料,可以从TI的网站上下载,里面讲的很详细,所有PC兼容的设备的串口都兼容16C550,在TC下你可以调用outport()来写相应的16C550的寄存器,在DSP上,一般来讲你需要使用I/O来控制,当然你的硬件得支持才行。

DOS下用
其实,笨鸟先飞也不见得能早入林. 但如果后飞则一定晚入林.
游客

返回顶部