以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2019/02/13/235842より取得しました。


raspberry PiとArduinoをシェルだけで通信する場合、ちゃんと通信レートは初期化しないとダメ

どうしてもシェルだけで完結させたいアプリがあったものの、今までことごとくシェル単体での初期化に失敗していました。
仕方なくArduino IDEで通信したのですが……これではいつまで経ってもスタンドアローンにならないので調査。
その結果、実に初歩的なミスだったのでメモ。

実際のところ

Arduino IDEで初期化したあと、ふとsttyで状況を確認してみたところ、
当然というか以下のような値になってました。

$ sudo stty -F /dev/ttyUSB0
speed 115200 baud; line = 0;
min = 0; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

今までボーレート位しか設定しなかったのだから、それじゃ動かなくて当然ですね。

というわけで、上のパラメーターに則り初期化コマンドを修正します。

$ stty -F /dev/ttyUSB0 speed 115200 min 0 -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo -echoe -echok -echoctl 

これで無事に通信できるようになりました。

読むときは

$ tail -f /dev/ttyUSB0

書くときは開いた状態で

$ echo -n "YOUR MSG" > /dev/ttyUSB0

参考もと

superuser.com




以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2019/02/13/235842より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14