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