2016-04-05 10 views
0

私は、nduardia tegraのシリアルポートでarduinoへの単純なシリアル接続を作成するためにPythonを使用しています。私は整数と文字列を渡そうとしていますが、Pythonのシリアル戻り値ランダムなascii

私のコードは、それ以外の場合は▒ 私の場合である。この

ser = serial.Serial(
port=/dev/ttyS0, 
baudrate=9600, 
parity=serial.PARITY_ODD, 
stopbits=serial.STOPBITS_ONE, 
bytesize=serial.EIGHTBITS 
) 
print ser.isOpen() 
ser.write("hello\n") 

これは私が整数をしようとすると、それが唯一の整数を返します 、h▒▒▒▒を2,4,7,8返すようになりますser.write(str( "hello"))のようなことをやってみてください。もっとランダムな文字を取得します。何とか別の方法でエンコードされていますか?

+0

受信側で正しい設定をしていますか?たとえばパリティを使用していることがわかります。それは受信側で有効になっていますか? –

+0

@JacobPålssonは受信側でパリティに慣れていません。私はちょうどarduino serial.read()を使用していますので、それはないと推測しています – SudoJay

答えて

0

Pythonコードのparityビットを受信Arduinoで有効にできない可能性があるため、無効にしてください。

結果のコードは次のようになります。

ser = serial.Serial(
port=/dev/ttyS0, 
baudrate=9600, 
parity=serial.PARITY_NONE, 
stopbits=serial.STOPBITS_ONE, 
bytesize=serial.EIGHTBITS 
) 
print ser.isOpen() 
ser.write("hello\n") 

それともあなたはArduinoの上のあなたのシリアル通信を開始するとき、あなたは以下のように設定パラメータで奇数パリティを追加します。

意志
Serial.begin(9600, SERIAL_8O1) 

ボーレート9600,8データビット、奇数パリティビット、1ストップビットでシリアル通信を開始します。

+0

ありがとう、 – SudoJay

関連する問題