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には、プロジェクトのファイルを一度でアップロード出来ません。何回か分割してアップロードすれば出来ます。 ↩︎