Merhabalar,

Bu makalemi okuyup , uygulamayı yaptığınızda STM32F429 deney kiti/entegresini kullanarak 1 buton ile 1 LED’i kontrol edebileceksiniz.

Bu makaleyi okumadan önce lütfen bir önceki makale olan “CUBEMX – STM32F429 İLE GPIO KONTROLÜ (LED YAKIP SÖNDÜRME)”yi okuyun. Çünkü buradaki bazı işlemleri bilmeniz gerekiyor.

Şimdi uygulamamıza geçelim.

1) STM32F429 – Disco deney kiti üzerinde, Kullanıcı butonu ve Kullanıcı LED’leri bulunuyor.
Kullanıcı butonu PA0’a bağlı. Kullanıcı LED’leri ise PG13 ve PG14’e bağlı.
Bizim amacımız PA0’a bağlı olan buton ile PG14’e bağlı olan LED’in kontrolünü sağlamak.
Öyleyse şimdi :

– CubeMX programını açıp yeni proje oluşturun. STM32F429 MCU’sunu seçin.
– Açtıktan sonra PA0 yani buton pinimizi GPIO_Input olarak tanımlayın. (Resimde gösterdim)

gpio_input

PG14‘den LED kontrol edeceğimize göre bu pini de GPIO_Output olarak tanımlamalıyız. (Resimde gösterdim)

gpio_output

2) Clock Configuration sekmesine girin ve bir önceki uygulamadaki gibi Clock ayarlarını yapın.

3) Bir önceki uygulamamızda yaptığımız gibi Project menüsünden “Generate Code“u seçin. MDK-ARMV5 yada MDK-ARMV4 seçmeyi unutmayın.

4) Projeyi açın.(Open Project). Soldaki dosya ağacı altından Drivers’a girin. Drivers altından “stm32f4xx_gpio.c” dosyasını açın. Bu dosya GPIO modülünün nasıl kullanılacağı ve hangi komutlar ile işlem yapılacağı hakkında bize bilgi verir. Açacağınız dosyayı aşağıdaki resimde gösterdim.

adim

5)How To Use This Driver” bölümüne göz atalım.

howto

GPIO_Input pinimizi okumak için “HAL_GPIO_ReadPin()” fonksiyonunu kullanmamız gerektiğini yazmış.

6) Dosya ağacımızdan, Application/User altına girerek, “main.c” dosyamızı açalım ve programımızı yazalım .

Yazmamız gereken program betiği şu şekilde olmalıdır. Resimde gösteriyorum.

prog

Kodunuzu yazıp, derleyin ve yükleyin. Reset tuşuna basarak programın çalışmasını sağlayın.

Bu program ile butona bastığınızda LED ışık verecek, butonu bıraktığınızda ise LED sönecektir 🙂

Böylece STM32F4 serisi bir mikrodenetleyici üzerinde basit GPIO işlemlerinin nasıl yapıldığını görmüş olduk.

Gelecek yazımda aynı entegre ile Harici Kesme (EXTI) işlemlerini anlatacağım. Takipte kalın 🙂

İyi çalışmalar 🙂