stm32でUART通信

投稿者:

マイコン内での変数やらの値をPCで読むためによく使うUART通信の備忘録。

 

厳密にいうと違いますが、UART通信はシリアル通信の上位互換的なものなので、シリアル通信をしたいときもこれでいけます。

 

今回は、stm32のf303k8を使いました。

使用環境

  • OS:Windows10 Home
  • CPU:i5-6200U
  • IDE:System Workbench for STM32
  • STM32CubeMX(初期コード作成に使用)

 

初期コード作成

いつも通り、CubeMXで初期コードを作成していきます。

 

ボードを選択した後、PinoutのUSART1のModeをAnsynchronousに設定します。

 

するとPA9、PA10が緑色になり、それぞれUSART1_RX、USART1_TXになると思います。

 

ここまで来たら、ConfigurationでUSARTの設定をします。

ボーレートはあまり大きくし過ぎると通信エラーのもとになるようなのでほどほどにします。

 

このボーレートは送信側、受信側が合わせていないときちんと受信できません。

メイン関数

次はメイン関数の内容です。

 

といってもCubeMXにてペリフェラル周りのコードは作成してあるので、USRT用の送信バッファ、受信バッファを用意して、無限ループ内で受信、又は送信のコードを追加するだけです。

 

まずUAER CODE BEGIN 0辺りに、

と記述して置きます。

 

次に、while文を

 

これで、PCでTeratermとかを使って通信ができます。

 

文字化けしているときはボーレートが合っているかや、文字コードの設定を見直しましょう。

 

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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