STM32の統合開発環境には、
- IAR Embedded Workbench(有償)
- ARM MDK-ARM(有償)
- AC6 SW4STM32(無償)
- Atollic TRUEStudio(無償)
などがありますが、今回はAtollic TRUEStudioを使いました。パソコンはWindows10で、ターゲットボードはNucleo-F446REです。
参考にした記事
「楽しくやろう。」さんの「TrueSTUDIO fo STM32を動かしてみた https://blog.boochow.com/article/456508260.html」
「HappyTech Blog」さんの「STM32CubeMXの使い方 http://happytech.jp/wordpress/2017/06/05/how-to-use-stm32cubemx/」
TrueSTUDIOのインストール
https://atollic.com/truestudio/よりAtollic_TrueSTUDIO_for_STM32_windows_x86_v9.0.1_20180420-1214.exeを入手してインストール。
Quickstart guideを一読
EclipseベースのIDEを使うのは10年ぶり?ぐらいです。[ヘルプ] - [Information Center]より「Quickstart Guide」を一読してなんとなく操作法を確認しました。パースペクティブの切り替えなど少しクセがあります。
新規プロジェクトの作成
[新規] - [C++ Project] で現れる[C++ Project]ダイアログでプロジェクト名を指定。
[Project type:]を[Embedded C++ Project]を指定。
[ターゲット]で[Boards]-[NUCLEO_F446RE]を指定。
[デバッグプローブ]で[ST-LINK]を指定。
以上でカウンターをインクリメントするプロジェクトが作成され、コンパイル&デバッグできますが、これだけでは周辺機能のドライバが何もありません。
STM32CubeMX & STM32Cubeのインストール
STM32CubeはSTM32の開発を行うためのHALその他もろもろのソフトウェアを集めたもので、F3とかF4などのSTM32のシリーズごとに別れています。STM32CubeMXはSTM32Cubeを使ったプログラムに必要な初期化コードを生成するグラフィカルなツールです。
まずは、STM32CubeMXをインストールします。途中で「Java Runtime Enviroment」のインストールが促され、インストールしました。
STMicroの日本語の記事
https://www.stmcu.jp/design/sw_dev/pc_soft/52798/?gclid=EAIaIQobChMI-P6p9qfD3QIVQamWCh3FhQNcEAAYASAAEgIFxvD_BwE
インストールファイルはSTMicroの本家サイト(https://www.st.com/ja/development-tools/stm32cubemx.html)から入手しました。
STM32CubeMXのスタンドアロン版の[Help]で「UM1718 User manual」が参照でき、これに従って以降の設定を行いました。
4.3 Installing STM32CubeMX plug-in version
プラグインバージョンのインストールです。TRUEStudio上でCubeMXを利用できるようになります。
4.5.2 Installing STM32 MCU packages
STM32Cubeのインストールです。NucleoF446REを使うので、「STM32F4 1.21.0」をインストールしました。
動作テスト
STM32F4Discovery & Keilの記事ですが、
「@gkmaro634」さんの「STM32CubeMXでSTM32F4Discoveryを動かす1~Lチカ編~ (https://qiita.com/gkmaro634/items/7b2ce4f72615c96f41d3)」を参考にしてLチカさせました。
CubeMXでBoardを指定してデフォルトの設定のまま初期化コードをを生成するものです。とりあえず動かしてみるにはちょうどいいと思います。
CubeMXの[New Project] - [Board Selector]で[Nucleo-F446RE]を選択、デフォルト・モードで初期化。
[Project] - [Settings...]で[Project Name]、[Project Location]を設定。
[Toolchain / IDE]で[TrueSTUDIO]を選択。
[Project] - [Generate Code]でコードを生成。
以上でTRUEStudio用の雛形プロジェクトが生成されます。コード生成後あらわれるダイアログで、「Open Project」を選択するとエラーメッセージが表示されましたが、TrueSTUDIOで生成されたプロジェクトを開けば大丈夫でした。
プロジェクト内のmain.cppのmain()関数内のwhile()ループ内にLチカさせるコードを追加します。
/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_Delay(500); HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */
[実行] - [デバッグ]で、PCに接続したNucleoにプログラムが書き込まれ、LEDがチカチカします。
HAL_GPIO_WritePin()、HAL_Delay()などはSTM32CubeのAPIで、ドキュメントを参照しながら習得する必要があります。
参考になりそうなドキュメント:
UM1725 Description of STM32F4 HAL and LL drivers
UM1730 Getting started with STM32CuberF4 MCU Package for STM32F4 Series
STM32Cube ファームウエア テクニカル・プレゼンテーション STM32Cube_training_JPN_rev1.pdf
STM32F4 シリーズ テクニカルトレーニング STM32F40x_training_JPN_rev1.pdf
Best-practices / FAQ: TrueSTUDIO + STM32CubeMx http://blog.atollic.com/best-practices-faq-truestudio-stm32cubemx
STM32CubeF4のExample:
<ドキュメントフォルダ>\STM32Cube\Repository\STM32Cube_FW_F4_V1.21.0\Projects\
0 件のコメント:
コメントを投稿