我正试图让pySerial通过FTDI引线与微控制器进行通信,波特率为500,000。我知道我的微控制器和FTDI引线都可以处理它,就像我的笔记本电脑本身一样,因为我可以发送到该波特的腻子终端没问题。但是当我尝试使用pySerial将内容发送到我的python脚本时,我没有得到任何东西,尽管相同的python代码使用较低的波特率。
pySerial文档说:
“参数波特率可以是标准值之一:50,75,110,134,150,200,300,600,1200,1800,2400,4800,9600,19200,38400,57600,115200。这些在所有平台上得到很好的支持。
115200以上的标准值,例如:230400,460800,500000,576000,921600,1000000,1152000,1500000,2000000,2500000,3000000,3500000,4000000也适用于许多平台和设备。“
所以,我假设为什么它不起作用是因为我的系统不支持它,但我如何检查我的系统支持的值/是否有任何我可以做的使其工作?遗憾的是,我确实需要传输至少250,000个和一个很好的整数,如250,000或500000(与微控制器上的时钟错误有关)。
提前感谢您的帮助!
答案 0 :(得分:0)
所以我发现圆形数字不起作用,即100000,200000,250000,但是115200的倍数。即230400,460800
我最初尝试使用230400,但我的微控制器可以产生的波特率是235294或222222. 235294产生-2.1%的误差,222222产生3.55%的误差。我自然选择了具有较低错误的那个,但它没有工作,并且没有打扰尝试222222.由于某种原因222222工作时235294虽然。所以我实际上不必使用我最初认为必须的250000波特率。
我仍然不知道为什么pytyrial在putty的情况下不能使用那些波特率,所以显然我的笔记本电脑可以实际操作它。无论如何,将来会知道尝试更多标准波特率以及使用微控制器时无法产生测试上下频率所需的精确波特率。