STM32DiscoveryでLEDの点滅
STM32Discoveryというマイコンボードサンプルのプログラムは色々とファイルが付いているのでシンプルに作ってみたいと思います。とりあえず開発環境のIARをインストールします。私が使っているのはARMのv6.10のKickstart edition製品版は30日限定なので…制限版だけど期限のない方を…30日以内にライセンスを購入してアクティベーションするとそのまま使えるhttp://www.iar.com/website1/1.0.1.0/675/1/http://www.st.com/internet/evalboard/product/250863.jspUSER MANUALSのUM0985: Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench softwareを見ると9ページからはじめからプロジェクトを作る方法が記載されています。結構、面倒な割りには空のプロジェクトしか生成しないで、I/Oをコントロールするのにはhttp://www.st.com/internet/evalboard/product/250863.jspこの一番下の方にあるSTM32VLDISCOVERY firmware package (AN3268)というファイルが必要です。これを解凍して使用します。とりあえずSTM32vldiscovery.hというヘッダファイルを用意してくれているので使ってみたいと思います。stm32f10x_gpio.hというヘッダでGPIOのPin9を点滅させた方が楽な気がしなくもないけど…下記のプログラムを空のmainファイルの代わりに張り替えます。#include "stm32f10x_gpio.h"#include "STM32vldiscovery.h"/* Private function prototypes -----------------------------------------------*/void Delay(__IO uint32_t nCount);int main(){ STM32vldiscovery_LEDInit(LED3); STM32vldiscovery_LEDInit(LED4); while (1) { /* Turn on LD2 and LD3 */ STM32vldiscovery_LEDOn(LED3); STM32vldiscovery_LEDOn(LED4); /* Insert delay */ Delay(0xAFFFF); /* Turn off LD3 and LD4 */ STM32vldiscovery_LEDOff(LED3); STM32vldiscovery_LEDOff(LED4); /* Insert delay */ Delay(0xAFFFF); }/* return 0; */}void Delay(__IO uint32_t nCount){ for(; nCount != 0; nCount--);} 作成したプロジェクトのフォルダにincというフォルダを作ってFirmwareを解凍した上記の図にあるファイルをコピーします。実際はFirmwareのパスを指定すればいいんだけどね依存関係を調べて最小のプロジェクトを作ってみるという実験的なことをしています。プロジェクト(P)-->オプション(O)を選択C/C++コンパイラを選択追加インクルードディレクトリに$PROJ_DIR$\incと記述定義済みシンボルにUSE_STDPERIPH_DRIVERSTM32F10X_MD_VLと記述します。ビルドしてボードと接続して書き込みこれでLEDは点滅すると思うんですけど…ああ、忘れてた…書き足しておこう下記の3つを解凍したFirmwareからコピーしておかないとライブラリが足りないのでリンクできないというエラーになります。普通はLIBファイルとかで供給されるものなんだけどソースなんだよねこの3つはプロジェクトに追加して下さい。STM32vldiscovery.cstm32f10x_gpio.cstm32f10x_rcc.cこれで大丈夫か…で、前回書いたクリスタルの発振モードを設定する記述はなくなりましたが…24MHzのクリスタルを付けても外しても変化なしです。デフォルトでは何のモードになっているんだろう?高速で実行するモードは設定しないといけないようですねまたまた、それは後日に…そのパターンでひっぱるブログだな新規からここまで設定するのが結構面倒なマイコンだねとりあえず一つ作って後はテンプレート代わりにコピーして使うか…【送料無料】ARM Cortex-M3システム開発ガイド【送料無料】ARMマイコンパーフェクト学習基板ビュート ローバー ARM ARMマイコン搭載の教材ロボット 【ヴイストン】