输入波特率与输出波特率

时间:2012-07-19 12:02:22

标签: linux serial-port

OS是Ubuntu 10.04 32位。

这些年来,我不知不觉地认为输入和输出波特率是对称的,在== out。然而,我注意到Linux termios结构包含输入和输出波特率的字段。并且有buadrate setter / getter的“in”和“out”版本 - cfsetospeed / cfsetispeed,cfgetospeed / cfsgetispeed它们实际上是单独的控件,我可以以不同的速度说话和收听吗?我想要吗?

我在谷歌上找到的一点点说将输入速度设置为0将告诉输入速度与输出速度相匹配。正确?如果我将输出速度设置为9600,然后将输入速度设置为零,输入速度应为9600.如果我将输出速度更改为19200会怎样?输入速度是否也会变为19200?

对于我应该去尝试的一些更简单的问题感到抱歉。我的串行连接硬件处于未知状态,我不确定它是如何运行的。

1 个答案:

答案 0 :(得分:1)

并非所有串行端口都支持单独配置这些端口,但是termios API确实为您提供了单独的控件来支持那些。

您需要非对称费率的情况将是完全明显的(您正在谈论的设备的手册列出了不同的输入和输出速率,并且您需要同时进行两种速率)。

没有充分的理由使用“零均值输入和输出相同”。只需明确地将它们设置为相同,然后您就不必担心极端情况。