1文字送受信アプリ【STM32のシリアル通信】

STM32シリアル通信の最も簡易なプログラムです。通信アプリは文字列を扱うため、マイコン知識外のほぼ言語的なものです。文字を格納する配列ポインタアドレスの概念などに慣れるのには最適です。

めかのとろ

手始めに1文字(1バイト)のシリアル送受信を行うプログラムから始めましょう。

設定仕様:
入力PC10 フローティング入力
出力PC11 オルタネートプッシュプル出力

シリアル接続図
めかのとろ

main関数にdelay_ms(100)を挿入して100msのサイクル無限ループとします。

めかのとろ

文字が入力されたかどうかはUSART_GetFlagStatus関数フラグUSART_FLAG_RXNE100ms毎にポーリングしてチェックしています。

めかのとろ

受信があった場合にUSART_ReceiveData関数で1文字を変数RxDataに格納します。

めかのとろ

変数RxDataに格納された文字はUSART_SendData関数で送信します。エコーバックと呼ばれる通信です。次に文字を受信するまで同じ文字をサイクル毎(100ms)に表示し続けます。

コラム

マイコンからの送信文字はPC側のターミナルソフト(端末エミュレータ)と呼ばれるアプリでシリアル通信表示します。通信条件をマイコンと同じに設定しておきます。一般的なターミナルソフトとしてTera Termなどがあります。

 

 シリアル通信条件: 

  • ボーレート:9600
  • データ長:8ビット
  • ストップビット:1
  • パリティ:なし
  • フロー制御:なし