読者です 読者をやめる 読者になる 読者になる

ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

STM32F103C8T6をHALで使ってみる。

STM32 SW4STM32

f:id:gsmcustomeffects:20161023234754j:plain

ででん!

とりあえず仕様から

Model: STM32F103C8T6.
Core: ARM 32 Cortex-M3 CPU.
Debug mode: SWD.
72MHz work frequency.
64K flash memory, 20K SRAM.
2.0-3.6V power, I/O.
Reset(POR/PDR).
4-16MHz crystal.

簡単に言うとArduinoNanoサイズのCortexM3のってるやつと認識してくれれば良いです。

値段はEbayで270円 Aliexpressで150円

ARMがこの値段ならやるっきゃないっしょ!!ってことで速攻購入

必要なもの

  • デバッガ(ST-Link、Jlink)
  • SystemWorkbench for STM32(EclipseベースのIDE)
  • CubeMX(プロジェクト生成補助ツール)

たぶんこれがあればLチカはできると思う。


導入

とりま開発環境のインスコとかをする
僕が説明すると下手なので

強いお兄さんの記事を参考にしよう!(本人から許可いただきました。

yuqlid.hatenablog.com

さっそくCubeでプロジェクト設定をしていくよ

引用すいません
f:id:gsmcustomeffects:20161024000526p:plain

Cube起動!

NewProjectをクリック

f:id:gsmcustomeffects:20161024001207p:plain

MCU選択画面が出るので画像を参考に選択肢を絞って今回使うSTM32F103C8T6を選択

f:id:gsmcustomeffects:20161024001333p:plain

次にクロックのピン設定を行う

f:id:gsmcustomeffects:20161024002204p:plain

次にクロックコンフィギュレーションタブに移動してクロックの設定をしていく
本ボードはオンボードに8MHzの水晶が実装されているので画像を参照に設定すべきところ設定していく

f:id:gsmcustomeffects:20161024002828p:plain

それが終わったらConfigurationタブに移動して割り込みなどの設定をするが今回は特に特殊なことをしないためそのままでいい
GPIOとかでプルアップとかしたいときは画像を参考にしてそこをいじればOKだ

f:id:gsmcustomeffects:20161024003244p:plain

最後に上部メニューProject→Settingをクリック

f:id:gsmcustomeffects:20161024003755p:plain

設定が終わったら上部メニューからGenerateをクリックして終了。

やっとSW4STM32を起動!

インポートをクリック
f:id:gsmcustomeffects:20161024004802p:plain

次に先ほど作ったProjectを選んでインポート

f:id:gsmcustomeffects:20161024004836p:plain

最後にFinishをクリック

ビルドする。

とりあえずmain文の中に以下のコードを入れる

HAL_Delay(500);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);

f:id:gsmcustomeffects:20161024015410p:plain
いんぽーとしたプロジェクトをビルドします。

僕の場合こんな感じ

f:id:gsmcustomeffects:20161024005008p:plain

デバッグ設定をする

今回はこの中華なSTLINKV2ドングルを使う

f:id:gsmcustomeffects:20161024005447j:plain

んでさっそくデバッグ設定をしていくここで注意が必要なのがメーカー純正ボードでないのでOpenOCDのcfgファイルが用意されていません

まずはデバッグコンフィグレーションを開く
f:id:gsmcustomeffects:20161024005910p:plain

するとこのチップのcfgがないよって画面が開きます。

f:id:gsmcustomeffects:20161024010024p:plain

んで適当につくってとりあえずOKします
こっから僕が作ったコンフィグをダウンロードしてください
www.dropbox.com

それをOpenOCDのScript直下においてください

そのあとこのように選択してデバッグ
f:id:gsmcustomeffects:20161024015235p:plain

接続はこんなもん

f:id:gsmcustomeffects:20161024005546j:plain

動作の様子

デバッグ画面
f:id:gsmcustomeffects:20161024015856p:plain


動かない場合

素直に純正STLINK/V2を買うかNucleoの片方についているSTLINKV2-1を用いる方法が良いと思う
STLINKV2-1の場合はコンフィグファイルのInterface側をV2→V2-1に変更の必要あり。

動かない場合はGNUARMEclipseからOpenOCDをダウンロードしてきてそれを使うと比較的うまく動きます。
Ac6標準のOpenOCDはなんか調子悪いっぽいので・・・・・・