STM32duinoの導入
2018.2.2 JH7UBC
STM32F103C8T6ボードをArduino IDEで使う場合、一般的にはArduinoのブートローダーをボードに書き込み、
USBを利用してArduino IDEからスケッチを書き込みます。
ここでは、ブートローダーを書き込まないで、STM32F103C8T6ボードに内蔵されているシリアル通信ファームウエアを利用し、
USBシリアル変換を通してスケッチ(プログラム)を書き込む方法を紹介します。
Arduino IDE側の準備(STM32duinoの導入)
(JA2GQPさんのブログを参考にしています。)
まず、Arduino IDEを立ち上げます。(バージョンは、最新バージョンでOKです)
ツール→ボード→ボードマネージャーを開き、
Arduino SAND Boards(32bit ARM Coretex-M0+)をインストールします。
次に、GitHubからArduino_STM32_master.zipをダウンロードします。
ダウンロードしたzipファイルを解凍し、Arduino_STM32というフォルダーを作成し、そのフォルダに内容を保存します。
このフォルダーをArduino IDEが保存されているフォルダ内のhardwareというフォルダ内にコピーします。
(hardwareというフォルダがない場合は、作成します)
USBシリアル変換との接続
USBシリアル変換モジュールは、手持ちの秋月電子のFT232RLモジュールを使いました。
FT232RLのジャンパーピンは、J1は、3.3V側に、J2は、ショートします。
FT232RLとSTM32F103C8T6との接続は、次のように行います。
FT232RL | STM32F103C8T6 | |
RXD | --- | A9(TX1) |
TXD | --- | A10(RX1) |
3V3 | --- | 3.3V |
GND | --- | GND |
STM32F103C8T6ボードのBOOTジャンパーは、次のようにセットします。
プログラム書き込み時
BOOT0 | 1側 |
BOOT1 | 0側 |
BOOT0 | 0側 |
BOOT1 | 0側 |
スケッチ(プログラム)の書き込みと実行
Lチカ(ボード内蔵のLEDを点滅させる)のスケッチを例に説明します。
Arduinoでは、ピンの指定は、番号だけで良いのですが、STM32の場合は、ポートがA,B,Cと2種類ありますので、PC13(内蔵LED)のように指定します。
スケッチを書き込むために、Arduino IDEのツールを開き、次のように設定します。
ボードは、"Generic STM32F103C Series"に
Upload methodは、"Serial"に設定します。
パソコンとFT232RLをUSBで接続し、書き込みをクリックすると、スケッチがコンパイルされ、プログラムがボードに書き込まれます。
書き込まれたプログラムは、そのまま実行され、BOOTジャンパがそのままでも、PC13に接続されているLEDが1秒ごとに点滅します。
その後、BOOTジャンパをBOOT0,BOOT1とも0側に設定して、電源を入れ直すか、RESETをかければ、プログラムが実行され、LEDが点滅します。
これで、Arduino IDEからスケッチをボードに書き込み、プログラムを実行できるようになりました。