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

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

手始めに1文字(1バイト)のシリアル送受信を行うプログラムから始めましょう。
設定仕様:
入力:PC10 フローティング入力
出力:PC11 オルタネートプッシュプル出力


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

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

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

変数RxDataに格納された文字はUSART_SendData関数で送信します。エコーバックと呼ばれる通信です。次に文字を受信するまで同じ文字をサイクル毎(100ms)に表示し続けます。
コラム
マイコンからの送信文字はPC側のターミナルソフト(端末エミュレータ)と呼ばれるアプリでシリアル通信表示します。通信条件をマイコンと同じに設定しておきます。一般的なターミナルソフトとしてTera Termなどがあります。
シリアル通信条件:
- ボーレート:9600
- データ長:8ビット
- ストップビット:1
- パリティ:なし
- フロー制御:なし