GR-SAKURAでシリアル通信(かふぇるね補足)

  • このエントリーをはてなブックマークに追加
  • LINEで送る

以前、GR-SAKURAのシリアル通信について書きましたがかふぇるねで質問があがっていましたので回答しました。

元ソースは質問者さんの記事をご参照ください。以下は私が修正した内容です。

プログラムの方ですが、文字が数字であるかを判定するためにctype.hを追加しています(line 4)。同時に受信した文字が数字であるかの判定をisdigit(char)に置き換えました(line 29)。
文字列の終端処理は文字格納の度に行いました(line 31)。
cStrは折角文字列になったので、atoi()などせずに、そのまま送信します(line 40)

続いてTeraTermの方ですが、Enterを押した時の送信データを設定します。
TeraTermメニューの設定、端末より設定画面を開きます。

serimon02

改行コードはCR+LFに切り替えます。また、ローカルエコーを有効にします。

仮に改行がCRだったらどうなるかというと

serimon03

CRによってカーソルが初期位置に戻り、その位置から受信データを表示するので、動作としては上書きされたことになり、結果として何も起きていないように見えます。

改行がCR+LFだったら

serimon04

CRまでは動作が同じですが、LF(Line Feed)が加わることによってカーソルが1段進み、次の行に受信データを表示することになります。

動作例は下記のようになります。

serimon01

数字はデータが積み重ねられ、数字以外(英字や改行)でGR-SAKURAからデータをもらいます。バッファフルにおいても正常に動作しています。

SNSでもご購読できます。

スポンサー リンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください