STM32Primer2をBARE-METALで使ってみる1

BARE-METALとか横文字でかっこつけてみたけれどつまりCircleOS(とそのAPI)使わないで
やってみるというわけです。STM32F103VET6(を使ったSTM32Primer2のハードウエア)
に合わせたフレームワーク作りをやって行きます。

今までSTM32F103VBT6(CQ-STARM),STM32F107VCT6とやって来てリンカスクリプトや
スタートアップの組み方は熟知してますので定義だけ変えてあげれば終わりです。
STM32F107VCT6をベースにしてPrimer2上の2つのLEDを交互に点滅するプログラムを
こしらえるのが今回の最初の目標です。(FWライブラリは勿論V3.1.2の最新で)

STマイクロさんが用意してくれているCソースのシステムクロック用の設定は、デフォルトが
103,101系は8MHz,107系は25MHzの外部クロックを想定しています。STM32Primer2は
12MHzのクリスタルを使用するため、system_stm32f10x.cにあるクロックPLLを設定する
関数内で一部定義を書き換える必要があります。提供されたライブラリにはなる
べく触りたくなかったので、コピーしたファイルをリネームしてmain.cと同じ場所に置きました。
un
↑赤で囲った部分がPLLの定義を書き換えたところ

さらに、使用している外部クロックを決める定義(HSE_Value)はmakefile内で行っています。

プログラムの書き込みは先日無理やり適用したWinUSBのドライバで安定して動くよ
うになったRlink(ビルドイン)を使い、RFlasher7で書き込みます。

un
まだ電源制御は乗っけていませんのでtodotani氏のブログ内の記述にある
とおり電源のONは出来てもOFFはできません。電源切る時はリチウムイオン電池の
ジャンパとPCにつなげてるUSBケーブル引っこ抜いて切る必要があります。

次回はこの電源制御を中心としてsystickタイマ・キー入力の実装を行うつもりです。

Comments

Post a Comment








Go to top of page