15 Ocak 2017 Pazar

STM32F407 İle Keil'de Proje Oluşturulması

Merhaba arkadaşlar,
Keil'de sıfırdan proje oluşturma aşamalarını adım adım anlatıp Led Yak söndür uygulaması yapıcaz. Keil'in sitesinden üyelik alıp Keil derleyicisini indiriyoruz. Standart bir şekilde kuruyoruz.

Pack installer ile paket güncelleştirmelerinin yapılması

Kurulum bittikten sonra Pack installer bölümü açılacaktır. Pack sekmesinin altından Check For Updates'e tıklayıp paket güncellemelerini alıyoruz. Burada kritik nokta STM32F407'nin kütüphane sürümleridir.Projelerimde kırmızı şerit ile gösterilen 1.0.8 kütüphanesini kullanıyorum. Aktif kütüphane olarak 1.0.8 kütüphanesini seçmelisiniz.

Keil'i kurduk paket güncellemelerini alıp 1.0.8 kütüphanesini kurduk.
2.adımda Keil'e çift tıklayıp açıyoruz. Project --> New uVision Project'e tıklayıp boş bir klasör oluşturup devam ediyoruz.


Açılan sekmeden STM32F407VG işlemcisini seçiyoruz.Eğer bu bölümde STM32F407  yoksa Pack İnstaller bölümündeki güncelleştirmeleri alamamışsınız demektir. Yukarıdaki kırmızı daire içerisindeki Pack İnstaller'a tıklayarak güncelleştirmeleri kontrol etmelisiniz.

Driver dosyalarının eklenmesi

Manage Run-Time Environment bölümünden projeye ilgili driver dosyalarının eklenmesi gerekir.
Led yak söndür için gerekli driver'lar,
CMSIS --> Core, Dsp
Complier-->Device -->Startup
Complier-->Device -->StdPeriph Drivers-->Framework, GPIO,RCC
Bu işlemi eksiksiz yapmalısınız yoksa derleme aşamasında başınız çok ağrır.



Driver'ları ekledikten sonra proje dosyası yandaki gibi olmalıdır. Source Group'a sağ tıklayıp main.c ekleyin.









Options For Targets Ayarları

Yukarıdaki işlemleri yaptıktan sonra main.c dosyasında istediğiniz kadar yazılım yapın  option for targets ayarları yapmazsanız derleme sorunu yaşarsınız.Bu yüzden buradaki ayarları harfiyen yapın. Daire içerisinde Option For Targets'a tıklıyoruz. Target bölümünün altında Xtal (MHz) default olarak 12 MHz gelmiştir.Discovery kitinin üzerindeki osilatör 8 MHz'dir. Bu yüzden 8 MHz olarak değiştirin.
C/C++ sekmesinin altında resimdeki tanımı yapıp imclude path kısmına proje klasörünün yolunu gösterin.
USE_STDPERIPH_DRIVER,STM32F4XX,HSE_VALUE=8000000



Debug kısmı altında ST-Link Debugger'ı seçin. Kartı usb kablosu ile bilgisayara bağlayın ve Settings'e tıklayın. Açılan sekmede Stm kiti tanınmalıdır.Eğer tanınmamışsa bilgisayarın usb portlarını kontrol edebilirsiniz.


Proje dosyasını indirmek için tıklayınız.


#include "stm32f4xx.h"
void Delay(uint32_t time)
{
  while(time)
  time--;
}

int main()
{
GPIO_InitTypeDef GPIO_InitStructure;   //GPIO Için bir Structure olusturuldu
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);  //GPIOD'nin clock hatti Enable edilmistir

/* Led konfigurasyon ayarlari*/
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;          //Output olarak ayarlandi
GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15 ;//Kit üzerinde D portuna bagli pinleri seçin
//GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;        //Bu uygulama için bu satirlara gerek yoktur.Fakat Pin'in çikis durumu önemlidir
 //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //Kullanim amaciniza göre GPIO_OType durumunu güncellemelisiniz.
GPIO_Init(GPIOD,&GPIO_InitStructure);                                //Led konfigurasyon ile yapmis oldugumuz ayarlari GPIO_Init ile GPIOD içerisine aktardik

while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
  Delay(20000000);                                        //500 ms High
GPIO_ResetBits(GPIOD,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
Delay(20000000);                                        //500 ms Low
}
}