Stm32F429-Disco GPIO Led Yakıp Söndürme

7
STM32F429 GPIO (Dijital Çıkış) İşlemleri (Hazırlayan : Çağatay KAYNAK | Elektrik – Elektronik Mühendisi | www.cagataykaynak.com ) Bu yazımda ARM tabanlı STM32F429ZIT6x mikrodenetleyicisine sahip olan STM32F429 Discovery Deney kiti üzerinde basit dijital çıkış uygulamasının yapılışını anlatacağım. Bu uygulamayı yaparken STM32 üzerinde GPIO ayarlarının nasıl yapıldığını ve GPIO kullanımını da kavramış olacaksınız. Bu işlemi yaparken STM’in artık desteği yavaş yavaş kestiği Standart Periph. Library yerine HAL Library kullanacağız. CubeMX desteği ile programımızın ana iskeletini oluşturacağız. Ve denememizi yapacağız. Bu uygulamayı yapabilmek için elimizde STM32 serisi bir deney kiti, Keil programı, CubeMX programı olmalıdır. Basamak basamak nasıl yapacağız anlatmaya başlıyorum. 1) Öncelikle CubeMX programını açın. New Project’e basın. STM32F429-Disco deney kitinizin üzerine bakın. LCD’nin arka yüzeyinde LQFP 144 kılıfına sahip 144 pinli bir mikrodenetleyici göreceksiniz. Üzerine baktığınızda STM32F429ZIT6 yazdığını göreceksiniz. Bu kit aslında üzerinde bazı modülleri barındıran deneme aracıdır. Bizim esas amacımız bu kitin üzerinde bulunan mikrodenetleyiciyi programlamaktır. Bu sebeple kullanacağımız denetleyiciyi aşağıdaki ekranda görüldüğü şekilde seçiyoruz.

Transcript of Stm32F429-Disco GPIO Led Yakıp Söndürme

Page 1: Stm32F429-Disco GPIO Led Yakıp Söndürme

STM32F429 GPIO (Dijital Çıkış) İşlemleri (Hazırlayan : Çağatay KAYNAK | Elektrik – Elektronik Mühendisi | www.cagataykaynak.com ) Bu yazımda ARM tabanlı STM32F429ZIT6x mikrodenetleyicisine sahip olan STM32F429 Discovery

Deney kiti üzerinde basit dijital çıkış uygulamasının yapılışını anlatacağım. Bu uygulamayı yaparken

STM32 üzerinde GPIO ayarlarının nasıl yapıldığını ve GPIO kullanımını da kavramış olacaksınız.

Bu işlemi yaparken STM’in artık desteği yavaş yavaş kestiği Standart Periph. Library yerine HAL

Library kullanacağız. CubeMX desteği ile programımızın ana iskeletini oluşturacağız. Ve denememizi

yapacağız.

Bu uygulamayı yapabilmek için elimizde STM32 serisi bir deney kiti, Keil programı, CubeMX programı

olmalıdır.

Basamak basamak nasıl yapacağız anlatmaya başlıyorum.

1) Öncelikle CubeMX programını açın. New Project’e basın.

STM32F429-Disco deney kitinizin üzerine bakın.

LCD’nin arka yüzeyinde LQFP 144 kılıfına sahip 144

pinli bir mikrodenetleyici göreceksiniz. Üzerine

baktığınızda STM32F429ZIT6 yazdığını göreceksiniz.

Bu kit aslında üzerinde bazı modülleri barındıran

deneme aracıdır. Bizim esas amacımız bu kitin

üzerinde bulunan mikrodenetleyiciyi

programlamaktır. Bu sebeple kullanacağımız denetleyiciyi aşağıdaki ekranda görüldüğü şekilde

seçiyoruz.

Page 2: Stm32F429-Disco GPIO Led Yakıp Söndürme

2) Karşımıza aşağıda göreceğiniz pencere gelir. Burada denetleyicimizin tüm pin-out’unu ve içerisinde

bulunan modülleri(özellikleri) görebilirsiniz.

3) Kullanılan deney kitinin üzerinde kullanıcının programlaması için PG13 ve PG14 pinlerine bağlı 2

adet LED bulunuyor. Bu LED’lerden PG13’e bağlı olanı yakıp – söndürmek istiyoruz. Biliyorsunuz LED

yakıp söndürdükten sonra gerisi gelecektir

LED’in yanması için PG13 pininden çıkış yapılması gereklidir. Yani PG13 pininin çıkış(output) olarak

ayarlanması gerekir. Bunu şu şekilde ayarlayabiliriz. Öncelikle PG13 pininin üzerine tıklanır.

Biz çıkış(output) modunda kullanacağımız için buradan GPIO_Output’u seçeriz. Eğer başka bir

özelliğini kullanacak olsaydık buradan seçebilirdik.

Page 3: Stm32F429-Disco GPIO Led Yakıp Söndürme

4) Bu işlemi yaptıktan sonra denetleyicimizin çalışabilmesi için gerekli Clock ayarlarını yapmalıyız.

Denetleyicide dahili olarak 8 MHz kristal bulunuyor. Bu uygulamamızda dahili kristali

kullanacağımızdan Pinout sekmesinde herhangi bir ayar yapmıyoruz.

Clock configuration ekranına giriyoruz. Denetleyici içerisinde her bir modülün çalışması için farklı

clock üreteçleri vardır. Bu ekrandan bize gerekli olan modül/modüllerin çalışması için gerekli clock

konfigürasyonunu yapıyoruz.

Ayarlamaya ilk önce HCLK üzerinden başlayın. Daha sonra kırmızı ile belirtilen diğer ayarları da

yapın.

Page 4: Stm32F429-Disco GPIO Led Yakıp Söndürme

5) Böylece programımızın ana iskeletinde gerekli olan tüm ayarları tamamlamış olduk. Şimdi ise

Project menüsü altından “Generate Code”a tıklayın. Karşınıza aşağıdaki ekran gelir. Burada proje

adını yazın, projeyi kaydedeceğiniz konumu belirleyin ve kullanacağınız derleyiciyi seçin.

Eğer Keil 5 kullanıyorsanız : MDK-ARM V5, 4 kullanıyorsanız : MDK-ARM V4 seçin.

Tamamladığınızda OK’a basın. Kod derlenmeye başlar. Derlenme bittiğinde karşınıza gelen iletişim

kutusundan “Open Project”i seçin. Keil programında projemiz açılacaktır.

6) Projemiz açıldığında sol taraftaki ağaçtan Application/User altından main.c ‘yi seçeriz. Diğer

klasörlerdeki dosyalar, programı yazmamıza yardımcı olacak driver’ları içerir. Ancak programı

main.c’ye yazarız. Main’e çift tıklayarak açın.

Page 5: Stm32F429-Disco GPIO Led Yakıp Söndürme

7) Açtığınızda içerisinde USER CODE’lar yazan bir dosya göreceksiniz. Bu dosya tamamen CubeMX

tarafından sizin yaptığınız ayarlara göre oluşturuldu. Siz ayarları yapılmış bir dosya üzerinde kendi iş

yapan komutlarınızı yazarak, denetleyicinin istediğiniz şekilde çalışmasını sağlayacaksınız.

Gerekli olan komutları görebilmek için kullanacağımız modülün Driver dosyasını açmamız gerekir.

GPIO modülünü kullanacağımıza göre soldaki ağaçtan gösterilen dosyayı 2 kez tıklayarak açıyoruz.

8) Dosyayı açınca içerisinde “How To Use This Driver” yazan kısmı görürsünüz. Bu kısımda adım adım

bu özelliği program içerisinde nasıl kullanacağınızı, hangi komutları kullanmanız gerektğini size anlatır.

1.adımda HAL_GPIO_Inıt(); komutunun çalıştırılması gerektiğini söylemiş. Resimde görebilirsiniz.

Page 6: Stm32F429-Disco GPIO Led Yakıp Söndürme

9) main.c dosyasına geri döndüğümüzde programın başında MX_GPIO_Init(); fonksiyonunun

çalıştırıldığını görüyoruz. Programdaki fonksiyona inip bakıldığında zaten HAL_GPIO_Inıt();

komutunun çalıştırılmış olduğunu görüyoruz. Bu sebeple bu komutu yazmayacağız.

10) stm32fxx_gpio.c driver dosyamıza geri dönüp “How To” kısmına bakmaya devam edelim.

Baktığımızda dijital çıkış işlemleri için; HAL_GPIO_WritePin(); ve HAL_GPIO_TogglePin();

komutlarının kullanılacağını anlattığını görüyoruz. Şimdi bu komutları programımızda uygulayalım.

Page 7: Stm32F429-Disco GPIO Led Yakıp Söndürme

11) HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET); => PG13 pinini Lojik-1 yapar.(LED

yanar.)

HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET); => PG13 pinini Lojik-0 yapar.(LED

söner.)

Kodumuzu yazdıktan sonra F7 tuşu ile programımızı Build ediyoruz. Build işlemi hatasız tamamlanmış

ise, STM32F429-Disco kitimizi USB ile bilgisayarımıza bağlıyoruz ve F8’e basarak kodumuzu

yüklüyoruz. Eğer STM32F429-Disco kiti kullanıyorsanız, programı yükledikten sonra kitin üzerindeki

Reset tuşuna basıp-bıraktığınızda, kit üzerindeki LED’in yanıp söndüğünü göreceksiniz

İyi çalışmalar dilerim.

Çağatay KAYNAK

Elektrik-Elektronik Mühendisi

[email protected]

http://www.cagataykaynak.com