Python serial.write什么都不做

时间:2018-03-25 23:52:59

标签: python python-3.x arduino pyserial

基本上,我要做的是从Python向Arduino输入一个字符串,Arduino应该将其打印回来,然后再从Python中读取它。但是,当我运行此代码时,没有任何事情发生。

我已经单独尝试过Arduino代码,它与串行监视器配合得很好。我检查问题是否与readline()有不同的问题并且运行正常,所以我猜问题是write()

这是我的Arduino代码:

void setup() {
  Serial.begin(9600);
}

char rx_byte = 0;

void loop() {
  if(Serial.available() > 0) {
    rx_byte = Serial.read();
    Serial.println(rx_byte);
  }
}

这是我的Python代码:

import time
import serial

ser = serial.Serial('COM5', 9600)
ser.write(b's')
ser.flush()
time.sleep(1)    
message = ser.readline()
print(message)    
ser.close()

3 个答案:

答案 0 :(得分:0)

我认为ser.flush()可能会杀死回应。当我在没有它的情况下运行你的代码时,我的代码工作正常。

答案 1 :(得分:0)

我尝试过更改

message = ser.readline()

message = ser.read()

一切都适合我。尝试使用read()代替readline()

答案 2 :(得分:-1)

您应该检查Arduino - Available,因为如果const nextYear = date.clone(); nextYear.add(1, 'year') 错过了一个()