我是Arduino的新手,我正在尝试制作游戏。我正在使用Python将串行数据发送到Arduino。我想让Arduino等到它接收到来自Python的串行数据。
我的问题是:
Arduino代码:
int select;
void setup() {
Serial.begin(9600);
Serial.flush();
while(!Serial.available()){
}
if(Serial.available()>0){
select=Serial.read();
}
}
void loop() {
Serial.println(select);
delay(500);
}
Python代码:
import serial
ser=serial.Serial('COM4',9600)
ser.write(b'1235')
ser.close()
解决了我没有获取串行数据的问题,但是出现了一个新问题:
问题是,如果我获取了串行数据,我的Arduino程序将跳回到while(!Serial.available()){}循环,而不是void循环(){}。
答案 0 :(得分:0)
与ser=serial.Serial('COM4',9600)
的新USB连接重置了Arduino。连接后立即发送的数据会丢失,因为Arduino会启动。
答案 1 :(得分:0)
就像Juraj所说的那样,重置Arduino时,您应该添加代码以等待它重新出现
import serial
ser=serial.Serial('COM4',9600)
sleep(.5)
if arduino.is_open == 1:
print("open")
ser.write(b'1235')
ser.close()