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タイマ・キー入力の実装を行うつもりです。

Go to top of page