PySerial:从串行端口读取时数据已损坏

时间:2015-09-20 05:16:51

标签: python arduino msp430

尝试使用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

有人可以解释一下为什么数据被分成半字节,理想情况下,它必须逐字节地读取数据。

1 个答案:

答案 0 :(得分:2)

Arduino documentation of Serial.print()说:

  

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

因此,值32最终为两个字符32

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