我想通过 Python 中的 pyserial 向 Arduino 发送一些数据。我想让 Arduino 做的就是从串口读取可变长度的字符串数据,然后将其写回以便 Python 可以读取它。由于我无法做到这一点,下面的代码只有 Python 发送字符。这是Python代码:
import serial
import sys
import pywapi
import time
def main():
ser = serial.Serial(3, 9600, timeout=1)
print "Conn established"
print "Sending: %s" % "z".__repr__()
print ser.write('z'.encode("ascii"))
time.sleep(2)
print "Received: %s" % ser.read(10).__repr__()
ser.close()
这是Arduino代码:
void setup(){
analogReference(DEFAULT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0)
Serial.println("x");
while(Serial.available() > 0){
Serial.print(Serial.read(), BYTE);
}
}
输出:
Conn established
Sending: 'z'
1
Received: ''
我知道 Arduino 的代码有效,因为它在从 Arduino 终端发送数据时有效。但是,当我尝试从 Python 发送任何内容时,它失败了。我整天都在为此苦苦挣扎。任何帮助将不胜感激。