(旧記事)Em::BlocksでCubeMXを使用する方法

(2014.12.14 作成)

 Em::Blocksを使用してCubeMXを使用する方法を紹介しています。まずはこちらで準備を行い、こちらでEm::Blocksのプロジェクト内にCubeMXのプロジェクトを追加してください。

ここではこの2つのプロジェクトを結合して動作するまでを説明したいと思います。

CubeMXプロジェクトの追加

 プロジェクトを選んで"Add files recursively" (再帰的にファイルを追加)をクリックし、CubeMXで作成したプロジェクトを指定してください。

  右図のように追加するファイルを選択するウインドウが出てきますが、何も考えずRelease/ Debugとも全て追加でOKです。

CubeMXが作成したプロジェクト中のDevice\ST\STM32F4xx\Source\Templates以下のフォルダーを削除します。

 CubeMXで出力Toolchainとして何を選んだかによってiar, arm またはgccというフォルダーになっていると思います。

Em::Blocksの環境設定

 再びプロジェクトを右クリックして"Build option"を選択し、ダイアログを表示します。そしてダイアログ左側でプロジェクト名を選択し、Compiler settingの#defineに以下のシンボルを追加します

  • USE_HAL_DRIVER
  • STM32F401xE

Debug->Plugins->SVD Repositoryと選んでSVDファイルを選択してプロジェクトに追加します。

プログラムの作成

ここまでくればようやくプログラムの作成を行うことが出来ます。

CubeMXで作成したSrcフォルダ中のmain.cを編集します。今回は右図の矢印部を編集しました。

HAL_Init()でエラーが出るため、HLA_RCC_Deint()を事前に呼んでいます。

あとは一定Wait毎にPA5(LED)ピンを上下させて点滅させているだけです。

あとはBuildを行い、Session Startボタンを押せば動作すると思います。

 ずいぶん面倒くさい感じでしたが、無事動いたでしょうか?管理人もあまり詳しく理解せずに紹介していますので、もしお気づきの点があればぜひご連絡ください。