System workbench for STM32 (3)

(2016.7.30 作成) 

 ここまではSTマイクロさん謹製のライブラリを使用した方法を紹介してきました。

 次は自作ライブラリを追加する方法を紹介しようと思います。ここでは自作ライブラリとして、このサイトでダウンロードできるものを使用し、前ページと同じくLED点滅を行います。

 ただし前回はNucleo基板を使いましたが、今回はDiscovery基板(F3Discovery基板)を使用してみます。

 ちなみに管理人も素人なので、このやり方が本当に最も効率が良いのか自信がありません。。。

ライブラリの追加

 プロジェクトを作成し、main.cをmain.cppにリネームするまではこちらに記載の通りです。

 その後まず不要なファイルを削除します。管理人の場合左図の矢印のファイルは使用しませんので除きます。

 ここからダウンロードしたフォルダをプロジェクトにドラッグ&ドロップします。

 今回使用するフォルダはDKSlib_Base, DKSlib_stm32HALとDKSlib_F303xCになります。

 Dropすると左のようなダイアログボックスが開きます。管理人の場合ライブラリは常に新しいものを使用したいため、リンクとして追加しています。

パスの設定

 左のツリーからプロジェクトを右クリックしてプロパティページを開きます。

 プロパティページが開いたらC/C++ General -> Paths and Symbols -> Includes タブを選びデフォルトで設定されている不要なインクルードパスを削除します。

今回の場合F3Discovery基板に実装されている加速度センサ等のライブラリを削除しています。

 削除する際はLanguagesにリストされているC, C++どちらに対しても行います。

 そして先ほどドロップして追加したフォルダのパスを追加するのですが、追加しようとすると右図のようなダイアログが出ます。

 すべてチェックします。また、Wrokspaceボタンを押すと先ほどドロップしたフォルダ選択できるので、追加するディレクトリを設定します。

 この際面倒なのですがインクルードパスはサブフォルダまでそれぞれ手動で追加する必要があります。

 すべて追加した例を左に示します。

 インクルードパスが設定できれば次はソースコードのパスを設定します。Source Locationタブを選んで、Add Folderからドロップしたパスを設定します。この場合もサブフォルダは検索してくれないので、手動ですべて追加します。

コード作成

 ここまでくるとようやく実際のコーディング開始です。今回はLED点滅だけなので、簡単に以下のようなコードをmain.cppに記入します。

/*
Copyright (c) 2016 DenshiKousakuSenka
 This software is released under the MIT License.
 http://opensource.org/licenses/mit-license.php
 */

#include "DKS_Common_F303xC.h"
#include "DKS_GPIO_F303xC.h"

int main(void)
{
        DKS::InitSystem();
        DKS::DigitalOut led3(GPIOE, GPIO_PIN_9, DKS::Push_Pull, DKS::Pull_Up);  //Red

        for(;;)
        {
                led3.toggle();
                DKS::Delay(500);
        }
}

マイコンへの書き込み

ここまでくると後は書き込むだけです。

F3Discovery基板のUSB ST-LINKと記載されたUSBコネクタにケーブルをさし、前ページと同じようにデバッグ実行を開始します。

数秒コネクタ横のCOM LEDが赤/緑に点滅して書き込まれ、その直後からプログラムの実行が始まります。

うまくいくとLED3が500ms周期で点滅します。

 うまく動いたでしょうか?今回はこのサイトでダウンロードできるライブラリを使って説明しましたが、自作ライブラリでも同じです。

 参考にしていただければと思います。