5

シリアル ポートを介したシリアル通信を使用して Arduino ボードに接続する単純な Python コードがあります。

Pythonライブラリ「pyserial」を使用しています。Python2.7です

私は基本的に次のようなことをして接続を作成します

 ser = serial.Serial("/dev/ttyACM0", 115200)

この後、serial.write を使用して arduino ボードにコマンドを送信します。コマンドを読み取り、いくつかのモーターを動かす自家製のファームウェアがあります。

このコードは機能しています。現時点では機能しています。私は毎日何回も接続したり切断したりして、ロボットを操作しています。私は常にすべてをフラッシュします (serial.flush)。ある時点で、単に失敗します。接続しているように見えますが、何も実行していません。ある時点でシリアルポートが破損したようなものです。

コンピューターを再起動すると、すべて正常に動作します。

コンピューターを再起動せずに修正するにはどうすればよいですか?

USBケーブルを抜いてもダメ。

4

1 に答える 1

1

私が抱えていた問題は、シリアル接続を閉じなかったことです。

ser.close()

これにより、python プロセスが閉じられず、シリアル接続へのアクセスがブロックされました。バックグラウンドでスレッドを開始するため、pyserial がプロセスの停止を防止している可能性があります。

于 2013-11-20T20:36:15.550 に答える