我想通過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 23:53:36
對不起,奇怪的結果意味着我在這裏發佈的東西,即沒有。 – JohnS 2010-02-25 00:48:54
什麼是您的操作系統? Windows或* nix? – Earlz 2010-02-25 19:07:11