【问题标题】:PySerial: Data corrupted when reading from serial portPySerial:从串行端口读取时数据损坏
【发布时间】:2015-09-20 05:16:51
【问题描述】:

尝试使用 pySerial 模块从串口读取数据,我无法重建从微控制器 (MSP430) 发送的数据。

微控制器编程如下:

Serial.print(0x20); //32 in decimal
delay(200);
Serial.print(0x20); //32 in decimal
delay(200);
Serial.print(0x00); //0 in decimal
delay(500);
Serial.print(0x15); //21 in decimal
delay(500);

以上代码在无限循环中执行。

在 Python 代码中,我只是使用以下代码读取 120 个字节并检查串行端口变量。

import serial 
ser = serial.Serial('/dev/ttyACM1', 115200, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS,) 
cycles_needed = 120
chars=[]
s=ser.read(cycles_needed)
for i in range(len(s)):
    print s[i]

上面代码的输出是

3
2
3
2
0
2
1
3
2
3
2
0
2
1

谁能解释一下为什么数据被分成半字节,而理想情况下,它必须逐字节串行读取数据。

【问题讨论】:

    标签: python arduino msp430


    【解决方案1】:

    Arduino documentation of Serial.print() 说:

    将数据作为人类可读的 ASCII 文本打印到串行端口。

    所以值 32 以两个字符结尾,32

    要写入二进制数据,请改用write()

    【讨论】:

      猜你喜欢
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2011-06-14
      相关资源
      最近更新 更多