1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

STM32のUART【Arduinoフレームワーク】

Posted at

ArduinoフレームワークでSTM32のプログラムを書いているときのUARTのやり方について紹介します。

方法

以下のように記述するとUARTを使えるようになります。

HardwareSerial uart1(PA10, PA9); //RX=PA10, TX=PA9

UARTに対応しているピンのピン番号を引数にしてHardwareSerialクラスのインスタンスを作るとUARTが使えます。
このクラスはArduinoでいうSerialと同じなので、あとはSerialと同じように使えます。

sample.cpp
#include <Arduino.h>

HardwareSerial uart1(PA10,PA9);

void setup() {
  uart1.begin(115200);
}

void loop() {
  uart1.println("Hello, World!");
}

HardwareSerialのインスタンスを複数宣言すれば、複数のUARTが使えます。
ただし同じ系統のUARTは使えないので、UART〇の〇の数字が異なるものを使用してください。

注意点

STM32では、大体一つのUARTに対してTXとRXがそれぞれ複数のピン用意されているのですが、どのTXとRXの組み合わせでも使えるわけではなく、同じ系統のUARTのTXとRXでも使えない組み合わせがあります

これはSTM32全体の問題なのかArduinoフレームワークの問題なのかPlatformIOの問題なのかよくわからないのですが、PlatformIOのArduinoフレームワークで開発しようと考えている人は、基板で実装したりする前にNucleoボード等で確認してみることをおすすめします。

基本的にピンが隣り合っている組み合わせだとうまくいって、そうでない場合はうまくいかないようです。

もし原因や解決策のわかる人がいらっしゃいましたら教えていただきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?