Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341707
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:05:43

一般RS232有9个引脚

其中包括GND(地线)、RxD(数据接收)、TxD(数据发送)这3个必需有的信号线,
虽然单片机上可以控制RxD和TxD, 但是在电脑上无法自由控制RxD和TxD;

剩下的还有6个其他的信号线:DTR(数据终端就绪)、RTS(请求发送)、RI(振铃信号)、RLSD(DCD,MODEM载波状态)、CTS(清除发送)、DSR((MODEM等)数据设备就绪)等。

其中DTR和RTS是电脑的状态,可以自由控制,剩下的是MODEM等数据设备的状态,是只读的,如果要发送脉冲讯号,只能由 DTR 和 RTS 发送出去。

用这个方法通过DTR和RTS发送脉冲就可以:
YbCommDevice1->EscapeCommFunction(CLRDTR); //DTR清零
YbCommDevice1->EscapeCommFunction(SETDTR); //DTR置位
YbCommDevice1->EscapeCommFunction(CLRRTS); //RTS清零
YbCommDevice1->EscapeCommFunction(SETRTS); //RTS置位

时间间隔由你控制,就是加延时,例如:

YbCommDevice1->EscapeCommFunction(CLRDTR); //DTR清零
Sleep(20);
YbCommDevice1->EscapeCommFunction(SETDTR); //DTR置位
Sleep(50);


--------------------next---------------------

阅读(1306) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~