2012-07-19 114 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