在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驱动程序中的问题。
我正在研究32Bit Kubuntu12.04。不幸的是,我不知道如何在系统上修复该驱动程序(获取驱动程序源,修补程序em,编译,安装…嗯,也许我学到了一点儿然后尝试一下-欢迎提供建议)。
但是,也许有易于安装的更新驱动程序?
还是有人知道备用USB转RS232适配器能以1MBd的速度工作(需要通过rts/cts进行硬件流控制,在PL2303上能很好地工作)吗?
最佳答案
在意识到“Prolific和FTDI是竞争对手”之后,我购买了Ftdi US232R-10,这是一种基于FT232R的设备,并指定了1MBd的传输速率。
使用该适配器,我可以通过传输一些GiB数据而没有任何错误(包括使用Rts/Cts硬件流控制)成功地测试了1MBd的通信。
使用stty来配置此设备,例如:
$ stty -F /dev/ttyUSB0 1000000 raw
工作成功。
关于linux - RS232控制台通讯-将波特率设置为1 MBaud,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22359728/