26 Ağustos 2016 Cuma

1 - STM32F4 ile Led Yakma

Merhaba arkadaşlar,

         Öncelikle ilk program olarak led yakma işlemi yapılacaktır.burada genel bir bilgi verildikten sonra kodların detaylı açıklanması verilecektir.

            İlk olarak kullandığımız işlemcinin kütüphanesi programa eklenmesi gerekmektedir. Bunu kod ile aşağıda gösterildiği gibi yapılır:
            #include "stm32f4xx.h" //stm32f4 kütüphanesi

           Daha sonra portların kütüphesi kod olarak eklenir:
           #include "stm32f4xx_gpio.h" //GPIO kütüphanesi

           Portların clock kütüphanesi:
           #include "stm32f4xx_rcc.h" // RCC clock kütüphanesi

Bu işlemler yapıldıktan sonra ana fonksiyona geçilir. her programda olduğu gibi bu derleyicide de aşağıdaki gibi ana fonksiyon eklenir:
          int main(void)               //Ana fonksiyon
             {
             
        GPIO_InitTypeDef  GPIO_InitStructure; // Port yönlendirmesi yapilir

               /* GPIOD Periph clock hatti aktif edilir */
               RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);  

               /* PD12, 13, 14 ve PD15 pinleri kullan1lacak */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;

       [ /* Eger sadece tek bir pin ornegin PD12 kullanilacak ise,
              GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; yazmaniz yeterli olacaktir*/ ]

                //Pinler cikis olarak belirlenir
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

                //Pinler PushPull olarak ayarlandi
                GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

//GPIO Bus hizi 100 MHz ayarlandi
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

                //Yukarida tanimlanan bilgileri GPIOD adresine ait oldugu belirtilir
        GPIO_Init(GPIOD, &GPIO_InitStructure);

                     while (1) //Sonsuz donguye girilir
       {

                        //PD portunun 12.pini Set yapilir. yani logic 1
GPIO_SetBits(GPIOD,GPIO_Pin_12);

                        //PD portunun 13.pini Set yapilir. yani logic 1
GPIO_SetBits(GPIOD,GPIO_Pin_13);

                        //PD portunun 14.pini Set yapilir. yani logic 1
GPIO_SetBits(GPIOD,GPIO_Pin_14);

                //PD portunun 15.pini Set yapilir. yani logic 1
GPIO_SetBits(GPIOD,GPIO_Pin_15);

/* yada asagidaki gibi tek satirla hepsi Set edilebilir
[ GPIO_SetBits(GPIOD,GPIO_Pin_12 | GPIOD,GPIO_Pin_13 | GPIOD,GPIO_Pin_14 | GPIOD,GPIO_Pin_15 |); */ ]

}

}

programı artık STM32F4 discovery board'a yükleyebilir. öncelikle derleme işlemi yapılır. sonra aşağıdaki resimde gösterildiği gibi yüklenir:

Derleme işlemi aşağıdaki gibidir



KODU Yüklem işlemi de aşağıdaki gibidir.


Bu işlemler yapıldıktan sonra discovery board'da 4 ledin de yandığını göreceksiniz.

İyi Çalışmalar.




                                                                                                                                   

1 yorum:

  1. Merhaba hocam
    Toggle komutu ile 5 saniye yanip, 2 saniye sönen programi nasil yapabiliriz. İlk durumda led sönük baslama kuralı ile ilk durum led yanık ile yapabildim yardimci olabilir misiniz.
    Tesekkur ederim

    YanıtlaSil