我想通过Python中的pyserial发送一些数据到Arduino。我希望Arduino所做的就是从串口读取可变长度的字符串数据,并将其写回以便Python可以读取它。由于我一直无法做到这一点,下面的代码只有Python发送字符。这里的Python代码:Arduino和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发送任何东西的时候,它就会失败。我一整天都在苦苦挣扎。任何帮助将不胜感激。
2010-02-24
JohnS
+0
“奇怪的结果”是什么意思?也许这是一个握手问题 –
2010-02-24 23:53:36
+0
对不起,奇怪的结果意味着我在这里发布的东西,即没有。 –
2010-02-25 00:48:54
+0
什么是您的操作系统? Windows或* nix? –
2010-02-25 19:07:11