python没有正确读取arduino发送的数据

时间:2016-04-26 21:34:15

标签: python arduino serial-port pyserial arduino-uno

我正在开发一个项目,包括从arduino发送4个字符到python,这样python中的第一个变量读取第一个发送的字符,第二个变量读取第二个字符,但是当我在屏幕上打印它们时,不稳定且不同步。 即: 我发送了'''''''' d''''''''''''''''' 39;一个'' b'' C'' d&#39 ;. 但我收到的可能是这样的:' c'' d'' a'' b'或者''''' d''' a'。

的Arduino
`

void setup()
{

Serial.begin(9600);


}

void loop() 
{


Serial.write('a');
Serial.write('b');
Serial.write('c');
Serial.write('d');


}

`

的Python
ser = serial.Serial('COM4',9600,timeout=0) ser.close() ser.open() up = ser.read() right = ser.read() left =ser.read() down = ser.read()

1 个答案:

答案 0 :(得分:0)

我猜这是因为两者之间没有同步。 ardi坐在那里并吐出a,b,c,d,a,b,c,d,a,b,c,d等。当python代码连接时,没有任何东西可以让ardi开始' a',它只是继续做它并且python代码从当时ardi开启的任何东西开始获取数据。如果允许重复循环,请在问题描述中注意字符总是按顺序排列?

尝试使用python代码(启动时)向ardi发送内容,以便从头开始重新启动序列。