このページでLチカをしました。前回はSTM32G4+LLという構成でLチカをしていますが、STにはLLに非対応なマイコンもあります。そこで今回は、GPIOCtrl.hppとGPIOCtrl.cppをほんの僅かに変更して、STM32H7+HALで全ての機能が動くようにします。以下、既にSTM32H7のプロジェクトがCubeMXを用いて吐かれてる状態から書きます。1前回のソースこれが前回のソースです。{ON();}}2次のように変更する以下のように変更します。//LLは用意されていないのでHALを利用する。{ON();}}これだけです。(内容が薄くてすいません。)このように、システムの中核のClassをすこし変更すれば、マイコンを変更しても対応できます。やる気になれば、別のメーカーのマイコンへの移植も容易にできます。Libraryを利用すると、簡単に高速な演算ができます。できることは、三角関数や平方根だけに留まらず、行列操作、FIRフィルタ・FFT、PIDコントローラ、クラーク変換・パーク変換等、幅広く入っています。導入することで利用できる関数は以下のページにまとめられています。https://www.keil.com/pack/doc/cmsis/dsp/html/modules.htmlさて、このCMSIS-DSPですが、故・TrueStudioでの環境構築は、わかりやすくまとめられておりますが、CubeIDEでは少し操作する項目が増えておりますのでまとめてみます。以下、執筆時の環境です。(UTC)マイコンSTM32F446RE1ライブラリの追加STM32Cubeのディレクトリから以下の2ファイルをコピーします。これらをプロジェクトフォルダ内にコピーします。Windows環境でしたらユーザフォルダ内にSTM32Cubeがあるかと思います。Vxxxxは適宜読み替えてください。>Linker>Librariesの設定で以下の2項目を登録します。(先程arm_cortexM4lf_math.aをコピーしたディレクトリ)を選択します。endian,fpuの略。endian)のfpuなしのmathライブラリは使う機会があるのか疑問。precision)を扱えるものもある。3Includeをする関数を使いたい.c/.cppファイルにて、以下を定義してIncludeします。マイコンボードによって変更します。別のCPUの時は適宜読み替えてください。3足りないものを追加する試しにこの段階でビルドしてみましょう。次のような怒られが発生するはずです。^~~~~~~~~~~~(以前のTrueStudio環境では、この段階で勝手に足りないものを取ってきてくれて、ビルドが通った記憶があります。)いろいろ足りないので、必要なファイルをIncに追加します。STM32Cube\Repository\STM32Cube_FW_F4_Vxxxx\Drivers\CMSIS\DSP\Include内にある、arm_math.harm_const_structs.harm_common_tables.hをインクルードできる場所に追加します。(例えばプロジェクト内のInc)以上の操作にて、CMSIS-DSPのライブラリが利用できるようになります。試しに以下のようにmainの内部を変更して、コードを実行してみます。*/ブレークポイントを打って実行をすると、以下のように動作の確認ができるかと思います。今回は手抜きをしたのでタイマを動かして動作時間の解析等はしませんでしたが、タイマを動作させて実行時のタイマ値を読んだりすると面白いかと思います。Tips今回は説明の便宜上、必要なものを全てプロジェクトフォルダやIncに入れていますが、別のフォルダにパスを通して、ライブラリに必要なもの一式を入れると見やすくて良いかと思います。2019年8月15日サイトをリニューアルしました。サーバの変更に従い、Webページもリニューアルしました。