STM32CubeIDEの設定
はじめに
STM32CubeIDEは、STマイクロエレクトロニクス社が提供しているSTM32マイコンの統合開発環境です。プロジェクト生成機能やSTM32マイコンの初期化コード自動生成ツールを統合したオール・イン・ワンの統合開発環境になっています。
用意するもの
Basic Kit 2 パソコン (Windows、macOS、または Linux)
事前準備
Javaのインストール
STM32CubeIDEを動かすには、Javaが必要です。こちらからインストールして下さい。
STM32CubeIDEのインストール
STM32CubeIDEのインストーラをこちらからダウンロードして下さい。 次に、インストーラは、Cドライブの直下で実行して下さい。詳しくは、こちらを参照して下さい。
STM32CubeProgのインストール
STM32MCUにプログラムを書き込むために、STM32CubeProgが必要です。こちらからインストールして下さい。
Tera Teamのインストール
STM32CubeIDEは、プログラムをアドオンしないとシリアルポートの出力が出来ないので、Tera Termsを使います。 こちらからインストールして下さい。
クイックスタート
「Hello Wold」の事例で、STM32CubeIDEの使ったプログラムの作成からシリアルポートの出力までを紹介します。使用するソフトウエアは以下の通りです。
- プロジェクトの作成からビルドまで:STM32CubeIDE
- プログラムの書込み:STM32CubeProg
- シリアルポートの出力:Tera Term
プロジェクトの作成
-
STM32CubeIDを起動すると、
STM32CubeID Launcherの画面が表示されます。 -
ワークスペースは、以下のデフォルトのままを使用し、
Launchをクリックします。- Work Space :
C:\Users\ユーザ名\STM32CubeIDE\workspace_1.11.2
- Work Space :
-
File→NEW→STM32 Projectを選択し、暫く経つと、STM32 Projectの画面が表示されます。 -
今回は、STM32 MCUリーフにプログラムを書き込むので、画面左上の
MCU/MPU Sectorをクリックします。 -
画面左の
Commercail Part Numberに、STM32L452REI6を入れて下さい。 -
画面右に
STM32L452REI6を選択してNextをクリックすると、Setup STM32 projectの画面が現れます。 -
Setup STM32 projectの画面に、以下を入力して、Finishをクリックすると、Hello_World.iocの画面が現れます。- Project Name : Hello_Worldと記入
- Targeted Language : C++を選択
- Targeted Binary Type : Excutableを選択
- Targeted Project Type : STM32Cubeを選択
デバイスの設定(初期化コードの自動生成)
-
Hello_World.iocで、UARTの設定をします。
-
PA2とPA3のPortを使ってシリアル通信をするので、Pinout & Configureationの画面で設定をします。 設定方法は、Port番号を左クリックして以下を選択します。- PA2 : USART2_TXを選択
- PA3 : USART2_RXを選択
-
画面左の
Connectivity→USART2をクリックすると、USART2 Model & Configrationの画面が現れます。Modelでは、以下の設定をします。Configrationは、デフォルトで使用します。(ボーレートの設定は115200を使用。Parameter Settingsで変更可能)- Model : Asynchronous
- Hardware Flow Control(RS232) : Disable
- Hardware Flow Control(RS485) :チェックを入れない(デフォルト)
Project→Generate Codeをクリックすると、Debugのフォルダの中にmain.cのコードが自動生成されます。
コードの記述
main.cの自動生成されたコードに、ユーザコードを追記します。
- 24行:stdio.hは、入力/出力のヘッダーファイルを読み込ませます。
/* USER CODE BEGIN Includes */
#include <stdio.h>
/* USER CODE END Includes */
- 68行:printfを呼び出す前に、初期化します。
/* USER CODE BEGIN 1 */
setbuf(stdout, NULL);
/* USER CODE END 1 */
- 101行:1秒毎に、「Hello World」を出力させます。
/* USER CODE BEGIN 3 */
printf("Hello World\r\n");
HAL_Delay(1000);
- 200行:printfを実装して、UARTでテキストを送信します。
/* USER CODE BEGIN 4 */
int _write(int file, char *ptr, int len)
{
HAL_UART_Transmit(&huart2,(uint8_t *)ptr,len,10);
return len;
}
/* USER CODE END 4 */
- main.cが書けたらビルドをします。
Project→Build Allをクリックして、ビルドして下さい。ログに0 errors, 0 warningsが表示されたらOKです。
- ソースコード:Hello_World1
STM32CubeProgによるプログラムの書込み
-
こちら を参考に、LeafonyをPCに接続し、STM32 MCUリーフの
プログラムスイッチをプログラム側(LED点灯)にし下さい。 -
STM32CubeProgを起動させて下さい。
-
画面右の接続先を
UARTにし、Connectをクリックして下さい。 -
画面左の
Erasing & Programingをクリックして、以下の設定をします。- File path:
C:\Users\ユーザ名\STM32CubeIDE\workspace_1.11.2\HelloWorld\Debug\HelloWorld.elfを選択 - Veryfy programing にチェツク
- File path:
-
Start Programmingをクリックし、Download verified successfullyが表示されたらokです。
シリアルポートの出力
ファイル→新しい接続先をクリックし、シリアルポートを接続します。- 次に
設定→シリアルポートをクリックし、スポードを115200を選択します。 Hello Wolrdが1秒毎に表示されれば、okです。
Tips
プロジェクトのインポート
-
STM32CubeIDを起動すると、
STM32CubeID Launcherの画面が表示されます。 -
ワークスペースは、以下のデフォルトのままを使用し、
Launchをクリックします。- Work Space :
C:\Users\ユーザ名\STM32CubeIDE\workspace_1.11.2
- Work Space :
-
File→Open Project From File System on Archievesを選択すると、Import Project From File System on Archievesの画面が表示されます。 -
ソースを選択し、
Finishをクリックすると、Project Explorerが立ち上がります。- Import Source :
C:\Users\ユーザ名\STM32CubeIDE\workspace_1.11.2\プロジェクト名を選択
- Import Source :
-
プロジェクトを終了する時は、
Project Explorerからプロジェクトを右クリックしDeleteします。 -
Project Explorerは、Window→Show View→Project Explorerで立ち上がります。
-
Githubには、プロジェクトのファイルを一度でアップロード出来ません。何回か分割してアップロードすれば出来ます。 ↩︎