一般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) |