我想要通過ftdi_sio內核模塊提供的虛擬串行端口與USB設備進行通信。不過,我遇到了一些麻煩設置端口的波特率爲14400:在Linux下指定FTDI虛擬串行端口的非標準波特率
termios.h
沒有指定一個常數14400,所以我不能使用cfsetispeed
和cfsetospeed
。- 在ftdi_sio內核模塊的源代碼中,波特基被設置爲24000000,似乎沒有辦法改變它。這意味着我無法使用ioctl的
TIOCSSERIAL
定製除數,並以這種方式獲得14400波特率。 - 模塊源有一個評論,它聽起來像設置結構的
alt_speed
成員的端口爲14400會做我想做的,但似乎沒有任何方法將其設置爲14400給定現有的接口。
有沒有人有關於此?通過破解內核模塊可以很容易地解決這個問題,但我確實在尋找一種不需要更改內核的解決方案。
ISTR,早在當戴夫·格羅爾是涅槃鼓手,14400點波特的調制解調器的日子與19200波特的端口速度一起使用 - 您的設備不工作在19200? – caf 2010-07-07 06:47:51
不,不幸的是,它是14400或蕭條。 – Hugh 2010-07-07 18:29:00
波特基/除數產生的波特率不是確切的波特率,這是非常普遍的事情。這通常不是問題。 如果您的串行硬件晶振無法提供,您將無法獲得精確的波特率。尤其是與ftdi類似的硬件,我懷疑你可以改變波特率。 – shodanex 2010-07-07 19:09:08