RS232控制台通信 - 将波特率设置为1 MBaud

Joe*_*Joe 5 linux bash serial-port stty

在bash脚本中,我使用以下内容:

$ stty -F /dev/ttyUSB0 921600 raw
$ echo -n "some test data" >/dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)

它按预期工作.使用PL2303 USB转RS232适配器:

$ lsusb
...
Bus 006 Device 010: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 006 Device 011: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Run Code Online (Sandbox Code Playgroud)

现在我尝试用1 MBd做同样的事,但是出现了错误:

$ stty -F /dev/ttyUSB0 1000000 raw
stty: /dev/ttyUSB0: unable to perform all requested operations
Run Code Online (Sandbox Code Playgroud)

当我尝试500 kBd时也是相同的消息.尝试250 kBd的错误信息是不同的:

$ stty -F /dev/ttyUSB0 250000 raw
stty: invalid argument `250000'
Try `stty --help' for more information.
Run Code Online (Sandbox Code Playgroud)

正如所看到的在这里,它在PL2303的Linux驱动程序有问题.

我正在研究Kubuntu 12.04,32位.不幸的是,我不知道如何在我的系统上修复该驱动程序(获取驱动程序源代码,补丁程序,编译,安装......嗯,也许我学习了一下并尝试一下 - 欢迎提出建议).

但也许有一个更新的驱动程序可用易于安装?

或者有人知道另一个USB转RS232适配器,工作在1 MBd(需要通过rts/cts进行硬件流量控制,这对PL2303非常有效)?

Joe*_*Joe 1

在意识到 \xc2\xbbProlific 和 FTDI 是竞争对手\xc2\xab 后,我购买了 Ftdi US232R-10,它是基于 FT232R 的设备,指定为 1\xe2\x80\xafMBd 传输速率。

\n\n

使用此适配器,我通过传输一些 GiB 数据成功测试了 1\xe2\x80\xafMBd 上的通信,没有任何错误(包括使用 Rts/Cts 硬件流控制)。

\n\n

使用 stty 配置此设备,例如:

\n\n
$ stty -F /dev/ttyUSB0 1000000 raw\n
Run Code Online (Sandbox Code Playgroud)\n\n

工作成功。

\n