python 没有正确读取从 arduino 发送的数据
python doesn't read data sent from arduino correctly
我正在做一个项目,其中包括从 arduino 向 python 发送 4 个字符,以便 python 中的第一个变量读取第一个发送的字符,第二个变量读取第二个字符,但是当我将它们打印在屏幕上,它不稳定且不同步。
IE:
我发送 'a'、'b'、'c'、'd',我希望在 python 中收到相同的内容:'a'、'b','c','d'。
但我收到的可能是这样的:'c'、'd'、'a'、'b' 或 'b'、'c'、'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()
我猜是因为两者之间没有同步。 ardi 坐在那里并吐出 a、b、c、d、a、b、c、d、a、b、c、d 等。当 python 代码连接时,没有什么可以让 ardi 开始'a',它只是继续做它正在做的事情,python 代码从 ardi 当时打开的任何地方开始获取数据。如果您允许重复循环,请注意您的问题描述中的字符如何始终按顺序排列?
尝试让 python 代码(当它启动时)向 ardi 发送一些内容,以便它从头开始重新启动序列。
我正在做一个项目,其中包括从 arduino 向 python 发送 4 个字符,以便 python 中的第一个变量读取第一个发送的字符,第二个变量读取第二个字符,但是当我将它们打印在屏幕上,它不稳定且不同步。 IE: 我发送 'a'、'b'、'c'、'd',我希望在 python 中收到相同的内容:'a'、'b','c','d'。 但我收到的可能是这样的:'c'、'd'、'a'、'b' 或 'b'、'c'、'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()
我猜是因为两者之间没有同步。 ardi 坐在那里并吐出 a、b、c、d、a、b、c、d、a、b、c、d 等。当 python 代码连接时,没有什么可以让 ardi 开始'a',它只是继续做它正在做的事情,python 代码从 ardi 当时打开的任何地方开始获取数据。如果您允许重复循环,请注意您的问题描述中的字符如何始终按顺序排列?
尝试让 python 代码(当它启动时)向 ardi 发送一些内容,以便它从头开始重新启动序列。