STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI

Herhangi bir kesinti oluştuğunda mikro denetleyicimiz, o kesintiye ilişkin bir IRQ – Interrupt Handler fonksiyonunu çağırır. Oluşan kesinti ile ne yapacak isek bu handler fonksiyonlarını ona göre hazırlayarak main.c dosyası içine koymamız gerekiyor.

Bu durumda bu fonksiyonun adı, tipi ve argümanları, sistem kütüphanelerinde tanımlanmış olanlarla uyumlu olmak zorunda.

Bu yayında, STM32 cube IDE ile çalışırken hazırlayacağımız IRQ intterupt handler fonksiyonunlarına ait bu bilgilere nasıl ulaşılacağını -TIM3 zamanlayıcısı örneği üzerinde- anlatacağım.

Continue reading “STM32 Cube IDE – INTERRUPT IRQ ve CALL BACK FONKSİYONLARI”

STM32 – HAL KÜTÜPHANELERİ İLE UART INTERRUPT

Blog sitesini açtığımdan bu yana STM32 ile USART üzerinden veri alışverişini anlatmaya değer bir konu olarak düşünmemiştim. Ancak, internet üzerinde problemlerini paylaşan kişilerin yazdıklarına bakınca yaygın bir sorun olduğunu gördüm. Buna karşılık oluşturduğum çözümü paylaşmaya karar verdim.

Sorun şu : UART üzerinden ne zaman veri geleceğini bilmiyoruz. Herhangi bir anda gelebilir, ama biz o zamana kadar USART portu gözleyip beklemek istemiyoruz. Gelecek karakter dizisinin uzunluğunu da bilmiyoruz. Yani herhangi bir zamanda bir miktar karakter gelecek, son karakter hangisi onu da bilmiyoruz. Bu koşullar altında HAL kütüphaneleri ile işimizi halledeceğiz.

Bu yayında HAL kütüphaneleri kullanarak ürettiğim çözümü sunacağım. Yeni bir icat değil, HAL öncesinde alt seviye kodlama ile yaptığımız işin adaptasyonundan ibaret.

Güncelleme : Bu konudaki daha güncel ve gelişmiş bir teknik için yeni yayınıma burayı tıklayarak ulaşabilirsiniz.

Continue reading “STM32 – HAL KÜTÜPHANELERİ İLE UART INTERRUPT”

STM32 Cube IDE İÇİNDE GENEL TANIMLAMALAR

DEFINES / UNDEFINES WITHIN STM32 Cube IDE CONFIGURATION SETTINGS

Kod geliştirirken aynı kodun farklı seçeneklere göre derlenmesini isteyebiliyoruz. Örneğin bu kodun SPI arayüzlü bir ekranla ya da Paralel girişli bir ekranla çalışan tipleri olsun isteyebiliriz.
Ya da geliştirme süresince ekranda bir sürü debug mesajı versin ama kullanıma sürüleceği zaman bunları kapatsın (örneğin Debug ve Release tipleri) isteyebiliyoruz.

Bu durumda belirli bir sürümde istenen komut bloklarını etkinleştirirken, bu sürümde gereksiz ve istenmeyen başka blokları kapatabilmek için #define derleyici tanımlarını kullanıyoruz.

Continue reading “STM32 Cube IDE İÇİNDE GENEL TANIMLAMALAR”