0
私はかなり新しいpythonで、現在は自分のマイクロコントローラからデータを試してみるために使っています。シリアルデータによる文字列エラー
import serial
import numpy
import matplotlib.pyplot as plt
from drawnow import *
port = serial.Serial('com4',9600)
while True:
while (port.inWaiting()==0):
pass
sstring = port.readline()
dataArray = sstring.split(',')
Pterm = float(dataArray[0])
Iterm = float(dataArray[1])
Dterm = float(dataArray[2])
Error = float(dataArray[3])
print Pterm
print Iterm
print Dterm
print Error
print
ここで、いつか問題なくデータを受信します。
しかし、私はメッセージが好き得る他の回。書式文字列で
- 未認識文字0
- は
- 'ASCII' コーデックは位置35のバイト0xa9を復号することができない浮いているように文字列を変換できませんでした:序ない範囲で、(128)
マイクロコントローラからシリアルで送信する文字列は、常に上の図のようになりますが、大きさは異なります。
これらのエラーを解決するためにコードを調整したり、スクリプトの実行中にこれらのエラーを無視することはできますか?
実際にマイクロコントローラから受け取ったものを調査する必要があります。単に 'print sstring'を行うのは良いスタートのようです。 – mkrieger1
一般的に、可能な限り速い読み込みでシリアルポートをスラミングすると、ガベージデータが生成されることがあります。これらのケースのそれぞれを処理するだけです。 – csunday95
[例外を処理する](https://docs.python.org/3/tutorial/errors.html#handling-exceptions)、例外スイートでは関連するデータを印刷します。 – wwii