【发布时间】:2016-04-28 00:32:03
【问题描述】:
我正在研究一个项目,其中包括从 arduino 向 python 发送 4 个字符,以便 python 中的第一个变量读取第一个发送的字符,第二个变量读取第二个字符,但是当我在屏幕上打印它们时它不稳定并且不同步。 IE: 我发送'a','b','c','d',我希望在python中收到相同的:'a','b','c','d'。 但我收到的可能是这样的:'c','d','a','b' 或 'b','c','d','a'。
阿杜诺
`
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()
【问题讨论】:
-
为什么不只是
print ser.read(4)...您应该看到它们都按顺序通过... -
为什么不发送像“A:B:C:D\n”这样的字符串(带换行符),使用serial.readline(),然后剥离新行,拆分字符串,得到一个, b,c,d :) 让它们按顺序排列更安全,并确保在应用启动时丢弃串行缓冲区
-
我尝试了 print ser.read(4) ...但它的值不断变化
-
马尔科·马基奇。我认为这可能有效,但抱歉我不知道该怎么做我不知道 python 我只是想制作一个简单的程序,我不明白为什么我的代码不起作用
标签: python arduino serial-port pyserial arduino-uno