それで、開発環境としては、Eclipseとか、CoIDEとかいろいろな無料環境もあるのだけれど、ねむいさんのブログで紹介されている環境を作ってみた。
環境を作った後、同じくねむいさんが公開しているサンプルプロジェクトのmakeまでは上手くいったのだけれど、STM32の導入としてLチカをしようと思うのだけれど、プロジェクトが複雑すぎて、何を削っていいのか良く分からなかった。
それに、makefileというのをこれまで使ったことはなかったので、内容をどう変えていいのか、そこから始めないと。
それで、今日になってようやくmakeが通って、ターゲットにプログラムを書き込んで実行することが出来た。
さぁ、これから手探りでSTM32を食べていこう。
STM32F4 discovery向けのLチカプロジェクトをこちらに保存しておく。
#include "stm32f4xx.h" int main(void) { /* structure to initialize GPIO */ GPIO_InitTypeDef GPIO_InitStructure; // -------------------------------------------------- // Port A 設定(SW入力) ここから // SW on = 1 , off = 0 /* supply the clock to AHB1(GPIOD) */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //GPIO pin configuration GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); // Port A 設定(SW入力) ここから // -------------------------------------------------- // -------------------------------------------------- // Port D 設定(LED出力) ここから // PD12(LED4) , PD13(LED3) , PD14(LED5) , PD15(LED6) // GPIOD->BSRRL(点灯) , GPIOD->BSRRH(消灯) /* supply the clock to AHB1(GPIOD) */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE); //GPIO pin configuration GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD,&GPIO_InitStructure); // Port D 設定(LED出力) ここまで // -------------------------------------------------- while(1){ if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)){ //ボタンが押されて1になっていたら以下を実行 GPIOD->BSRRL = GPIO_Pin_13; // (点灯) }else{ GPIOD->BSRRH = GPIO_Pin_13; // (消灯) } } return 0; }