在bash脚本中,我使用以下内容:
$ stty -F /dev/ttyUSB0 921600 raw
$ echo -n "some test data" >/dev/ttyUSB0
它按预期工作。 使用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
现在我尝试用1MBd做同样的事情,但得到了一个错误:
$ stty -F /dev/ttyUSB0 1000000 raw
stty: /dev/ttyUSB0: unable to perform all requested operations
当我尝试500kBd时,同样的消息。尝试250kBd的错误信息是不同的:
$ stty -F /dev/ttyUSB0 250000 raw
stty: invalid argument `250000'
Try `stty --help' for more information.
如here所示,它是PL2303 linux驱动程序中的一个问题。
我正在使用Kubuntu12.04,32位。不幸的是,我不知道如何在我的系统上修复该驱动程序(获取驱动程序源代码,修补程序代码,编译,安装......嗯,也许我会学习一下并尝试一下 - 欢迎提出建议)。
但也许有更新的驱动程序易于安装?
或者有人知道另一个USB转RS232适配器工作在1MBd(需要通过rts / cts进行硬件流量控制,这对PL2303非常有效)吗?
答案 0 :(得分:0)
在意识到»Prolific和FTDI是竞争对手«后,我买了Ftdi US232R-10,这是一款基于FT232R的设备,指定传输速率为1MBd。
使用此适配器,我通过传输一些GiB数据成功测试了1MBd的通信,没有任何错误(包括使用Rts / Cts硬件流控制)。
使用stty配置此设备:
$ stty -F /dev/ttyUSB0 1000000 raw
成功运作。