为什么PySerial脚本使用115200波特而不是19200波特?

时间:2019-04-03 02:15:13

标签: python arduino pyserial

我正在运行一个Arduino程序,该程序将“串行波特”设置为19200。我想使用PySerial库提取串行数据。但是,只有在波特率处于115200时,PySerial才可以工作。

这是我的Arduino setup()的样子:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(19200);
  XBee.begin(19200);// was 9600
}

这是设置为19200时PySerial代码的外观:

with serial.Serial('COM19', 19200) as ser:
    x = ser.read(8)          # 6 works for reading in 2 variables
    print(x)

输出:

  

b'\ xf3 \ xea \ xf6 \ xea \ xea \ xf8'

     

b'\ xf8 \ xf6 \ xf3 \ xfc \ xfc \ xfc'

这是设置为115200时PySerial代码的外观:

with serial.Serial('COM19', 115200) as ser:
    x = ser.read(8)          # 6 works for reading in 2 variables
    print(x)

输出:

  

b'70 \ r \ n72'

     

b'72 \ r \ n70'

有人知道为什么它仅适用于115200而不适用于19200吗?或者我该怎么做才能将该数据类型转换为十进制数字?

谢谢

1 个答案:

答案 0 :(得分:1)

波特率取决于设备。它实质上决定了设备之间的数据速率。您需要检查XBee型号的数据表以确定兼容的波特率。通常,通常使用9600和115200,因为使用非标准波特率会因产品而异。