linux-pc中的rs232引脚配置
有很多例子说明了如何通过pc的串行端口进行通信。但是有没有办法配置rs 232的引脚?我只需要设置tx引脚一段时间,然后重置它等等。有没有办法找到RS232引脚的地址? 非常感谢。如果有地址,我们如何访问pin或更改该地址中pin的状态?控制pin 对于DTR CTS等其他管脚,需要使用ioctl()切换管脚 下面是一个简单的示例(无错误检查),用于DTR线路:linux-pc中的rs232引脚配置,c,linux,serial-port,C,Linux,Serial Port,有很多例子说明了如何通过pc的串行端口进行通信。但是有没有办法配置rs 232的引脚?我只需要设置tx引脚一段时间,然后重置它等等。有没有办法找到RS232引脚的地址? 非常感谢。如果有地址,我们如何访问pin或更改该地址中pin的状态?控制pin 对于DTR CTS等其他管脚,需要使用ioctl()切换管脚 下面是一个简单的示例(无错误检查),用于DTR线路: #include <termios.h> #include <unistd.h> #include <s
#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)
小心
请注意,在传统的rs232中,电平在概念上为+/-12v(介于+/-3,15V之间),其中负为1,正为零,这可能与您预期的相反。但是现在很多串行端口使用TTL或3v3级别
我在一个应用程序中使用了上述方法,其中我们使用DTR作为输出GPIO;记住根据需要使用适当的电阻器或其他缓冲,这样就不会损坏PC串行端口
带有USB串行加密狗的YMMV。如果您不限于RS232。你还有其他选择 首先,如果你的电脑仍然有并行端口,它将是一个比RS232更好的选择 或者,您可以使用一些USB-GPIO模块。一些建议:
ioctl( f, TIOCSBRK)