linux pc中的rs 232引脚配置

时间:2014-02-27 04:33:05

标签: c linux serial-port

有很多例子说明了如何通过电脑的串口进行通信。但有没有办法配置rs 232的引脚?我只需要将tx引脚设置一段时间然后重置它,依此类推。有没有办法找到rs 232引脚的地址? 谢谢。如果有地址,那么我们如何访问该引脚或更改该地址中引脚的状态?

2 个答案:

答案 0 :(得分:2)

控制针

对于其他引脚DTR CTS等,您需要使用ioctl()来切换引脚。

这是一个简单的示例(无错误检查)来为DTR行执行此操作:

#include <termios.h>
#include <unistd.h>
#include <sys/ioctl.h>

int f = open( "/dev/ttyS0", O_RDWR | O_NOCTTY);
int pins;    
ioctl( f, TIOCMGET, &pins);
pins = pins | TIOCM_DTR;
ioctl( f, TIOCMSET, &pins) // the order you do this depends 
sleep(1);
ioctl( f, TIOCMGET, &pins);
pins = pins & ~TIOCM_DTR;
ioctl( f, TIOCMSET, &pins)

各种标志在open和tty_ioctl

的手册页中描述

传输引脚

使用TX引脚可能有点琐碎;从理论上讲,输出通常为1,但是你可以在一段时间内设置一个“中断”,将其设置为0.您可以使用以下内容,但我没有尝试过:

ioctl( f, TIOCSBRK)

注意

请注意,在传统的rs232中,电平在概念上为+/- 12v(在+/- 3,15V之间),其中负数为1,正数为零,这可能与您的预期相反。但是现在很多连续出版物端口都使用TTL或3v3级别。

我在使用DTR作为输出GPIO的应用程序中使用了上述内容;记得根据需要使用适当的电阻或其他缓冲,这样就不会炸毁你的PC串口。

带有USB串口加密狗的YMMV。

答案 1 :(得分:0)

如果您不仅限于RS232。您还有其他选择

首先,如果您的PC仍然有并行端口,那么它将是比RS232更好的选择。

或者,您可以使用一些USB-GPIO模块。一些建议: