使用Pyserial中的flush()函数可以清空串口缓冲区,从而让Arduino能够即时读取Python发送的更新值。示例代码如下:
Python代码:
import serial
import time
ser = serial.Serial('COM3', 9600) # 串口号和波特率
while True:
ser.write(b'1') # 向Arduino发送数据
print('Sent 1 to Arduino')
ser.flush() # 清空串口缓冲区
time.sleep(1)
Arduino代码:
int val;
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available() == 0) {}
val = Serial.read(); // 读取串口数据
Serial.print("Received: ");
Serial.println(val);
delay(1000);
}
在上面的示例中,Python每秒向Arduino发送一个字符“1”,并使用flush()函数清空串口缓冲区。Arduino将读取Python发送的最新值并将该值打印到串行监视器中。
上一篇:Arduino步进电机问题