Я хочу, чтобы Arduino отправлял информацию в сценарий python только тогда, когда Arduino получает правильную команду из сценария python. Кажется, где-то есть недопонимание.
Код Arduino:
char inChar;
bool serial_ready;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
while (!Serial) {
;
}
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available()) {
// read the incoming byte:
inChar = Serial.read();
if (inChar == 'r') {
Serial.print('L');
} else {
Serial.print(inChar);
}
serial_ready = false;
}
}
Python script:
import serial
if __name__ == '__main__':
ser = serial.Serial('COM4',115200,timeout=0)
# send signal to arduino
ser.reset_input_buffer()
ser.reset_output_buffer()
try:
ser.write(b'r')
while (ser.inWaiting() <= 0):
print('waiting')
byte_wait = ser.inWaiting()
ard_in = ser.read(byte_wait)
print(ard_in)
except KeyboardInterrupt:
print('KeyboardInterrupt')
ser.close()
Иногда я получаю b'\xf0'
через несколько waiting
распечатываются (это не то, что я ищу), и иногда оно застревает в l oop и просто печатает waiting
, пока я не остановлю его. Почему возвращается b'\xf0'
вместо L
или r
? Почему иногда ничего не возвращается?
Заранее спасибо!