如何获得PySerial接受921600波特率(How to get PySerial to acc

2019-10-23 21:01发布

我们有一个实现,其具有的921600固定波特率一个USB - >虚拟COM端口的电动机控制器(手动甚至指出波特率不能改变)。 我发现,如果我使用像终端的终端程序,我可以传递921600定制的波特率,并没有问题的仪器进行通信。 我们使用的是Windows 7专业版,64位版本。

然而,当我试图做这PySerial使用Python 2.7.10(32位)这样的(v.2.7):

import serial
ser = serial.Serial("COM3",921600)

我总是会遇到错误,指出参数不正确。

文件 “C:\ Python27 \ LIB \站点包\序列\ serialwin32.py”,线路202,在_reconfigurePort提高ValueError异常( “无法配置端口,一些设置是错误的原始邮件:%R” %ctypes.WinError() )ValueError异常:无法配置端口,一些设置是错误的。 原始消息:WindowsError(87, '参数不正确。')

有效波特率似乎是在serialwin32.py列出的一个

BAUDRATES = (50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
             9600, 19200, 38400, 57600, 115200)

当我使用任何波特率从列表中有我可以打开串行端口(但不是必须能够与仪器通讯)。

只是增加921600一百到这个名单中serialwin32.py没有做任何事情。 找遍了几个论坛和网站,到目前为止,似乎没有人对如何在Windows中设置该波特率越高的答案。 以上115200波特率曾经是旧版本的Windows不可靠的,但我认为Windows 7的现在应该可以处理更高的传输速率特别是许多USB IC像FTDI和CH430可以处理更高的波特率超过115200。

有谁知道一种方式来获得pySerial接受比在Windows 115200更高的波特率?

Answer 1:

我试着921600却没有任何问题。

您的适配器不支持高速RS232。

您需要购买一个CP21XX或等于转换器。

MOXA或Lantronix的是良好的品牌(测试和使用)。

尝试在:win7x64,Python2.7x32



文章来源: How to get PySerial to accept 921600 Baud rate