かめら工房

ものを作ったり,写真撮ったり

F4DiscoveryでLチカ

どうも,昨日SRCに行って帰ってを行った満身創痍のかめらです.みなさんいかがお過ごしでしょうか.

 

そういえばね,昨日SRCの帰りに湯涌温泉行ってきたんですよ,湯涌!

花咲くいろはの原案の地ですね.

 

温泉が好きで色んな温泉行くことはあるんですが,湯涌は初めてでした.

 

おたくだって言われても文句言わないくらい最高でしたね.

まぁそのことに関してはまた別記事に書くとして・・・.

 

マイコン学び始めましたって記事書いてから何も書いてないことに気づいてしまい,そろそろ書かねば(マイコン自体は弄ってるけど公開してないだけですはい.)と思ったのでとりあえずLチカからやっていきます.

 

まぁF4DiscoveryでLチカとか何人が記事書いてるねんってくらい書いてるでしょうけど気にせず書いていきます.

備忘録レベルですし,こんな風に書いた方がいいよとかあったらコメントかTwitterにリプください.

#include "stm32f4xx.h"

void GPIO_Configuration(void);
void delay(__IO uint32_t nCount);

uint32_t Count = 0xFFFFF;

int main(void)
{
	SystemInit();//システム全体の設定
	GPIO_Configuration();//GPIOの設定
    while(1)
    {
    	GPIO_ToggleBits(GPIOD,GPIO_Pin_13);//GPIO,Dポート13番ピンのオンオフ繰り返し.
    	delay(Count);
    }
}

void GPIO_Configuration(void)
{
        //GPIOをいじくる構造体GPIO_InitStructureを宣言
	GPIO_InitTypeDef GPIO_InitStructure;
    //GPIOのDポートを有効化する.
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
    //GPIODのどのピンを有効化するかを決定する.
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        //GPIOのモードを出力(Output)モードへ.
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    //出力タイプはプッシュプル(PP)に設定.
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    //内蔵プルアップ設定は無効に
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    //GPIOの速度は100MHzに
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    //GPIO_InitでGPIODを上の設定でを有効化する
	GPIO_Init(GPIOD, &GPIO_InitStructure);

}

void delay(__IO uint32_t nCount)
{
	while(nCount--);
}

今までArduinoしか使ったことなかったのでLチカにこんなに行数いるとは知らなかった(KONAMI
まぁ一度設定してしまえば書き換える必要があるのはmain文だけっぽいので最初だけの苦労と考えれば・・・.
簡単に実装できるDelay関数を実装したけれども,これでは汎用性がなさそうなので,今度はしっかりとタイマを使ってdelay_msとかdelay_usとかが実装できたらいいな,と思います.
が,ロボットとか作っていく上であまり必要ないかもしれない.
でもまぁあれば使うでしょ.ということで実装がんばります.

すぐに実装した方がデバッグしやすくなる方法・・・あれか,printfとかでPC-STM32間でシリアル通信できると値とか見られて楽だし次はそれの実装しますたぶん・・・.(できれば