2012-07-19 77 views
1

操作系统是Ubuntu 10.04 32位。输入波特率vs输出波特率

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

我可以在google上找到什么说输入速度设置为0会告诉输入速度匹配输出速度。正确?如果我将输出速度设置为9600,那么将输入速度设置为零,输入速度应该是9600.如果我然后将输出速度更改为19200,会发生什么情况?输入速度也会变为19200?

对不起,有些简单的问题我应该去试试。我的串口连接硬件处于未知状态,我不确定它的行为。

+0

当我问“我会想要吗?”我想我会得到一个像“FredCom xyz123使用分割波特率”的例子,而不是更正确的“手册将告诉”。那么,有谁见过使用分离波特率的东西?设计师说明了为什么使用该技术有什么特别的理由吗? – 2012-07-19 16:16:01

回答

1

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

您希望获得不对称费率的情况将非常明显(您正在与之交谈的设备的手册列出了不同的输入和输出费率,并且您需要同时使用这两种费率)。

没有理由使用“零装置输入和输出相同”。只需明确地设置它们,那么您就不必担心转角情况。

+0

“只要明确地设置它们,你就不必担心角落案例” - 这么好说。所以在我发布这个问题后很明显。 cfsetspeed()同时设置。为你+1。 – 2012-07-19 16:10:59