2017-08-15 8 views
0

Pyserialでスクリプトを開発してデータをマイクロコントローラに送信し、マイクロコントローラがデータを読み込んで処理し、デバッグ情報をPythonスクリプトに返します。Pyserialがデータ送信後にフルラインを読み込めませんでした

マイクロコントローラからデータを読み込んでいたとき、私のpythonスクリプトは問題なく動作していました。今私はマイクロコントローラにデータを送信し、その直後に読書を開始する必要がある、私が読んでいるデータは完全ではありません。

私は[TAG1]のようなもの、10,11,12、[TAG1]、13,14,15 \ nはを受けるべきであるが、時々私は、データの先頭が、などの端部のみを受け取っていません。 1,12、[TAG1]、13,14,15 \ nは

私は基本的にやってる:

serial.write(dataOut) 
dataIn = serial.read(sizeOfTheDataToReceive) 

私ならば、問題は、私はそれを確信しているマイクロコントローラから来ていませんパティを使ってデータを送受信する私は常に完全なデータを見る。

私はマイクロコントローラのコードに、Pythonからデータを受け取った後にデータを送信するための遅延を追加しようとしましたが、毎回動作しません。

何が原因なのでしょうか? COMポートは、Pythonスクリプトが開始されたときに開かれ、スクリプトの最後に閉じられます。あなたの読み取りをクリアし、バッファを記述する必要が

答えて

0

serial.flushInput() 
serial.flushOutput() 

その後はデータバイト単位で読み:

serial.write(dataOut) 
time.Sleep(0.3) 
s='' 
while serial.inWaiting()>0: 
    b=serial.read(1) 
# time.Sleep(0.1) 
    s += b 
+0

を私は(1)しばらく内の2つのフラッシュ機能を含め、ことを試してみました私は送ることができるようにループを読んでください。 send、read; ...遅延があってもまだ動作していない、時々私は入ってくるデータの一部を見逃した。 – Asmature

関連する問題