STM32 CubeIDE – SWD FLASH PROBLEMİNİ AŞMAK

STM32 Projelerimde ST Link V2 yi SWD (Serial Wire Debug) modunda çalıştırarak kullanıyorum.

ST Link ve STM32 yi elime ilk aldığım dönemlerde, kullandığım geliştirme kitlerinden bir kaçı aniden program yüklenemez hale gelmişti. Yükleme yapmaya kalkıştığımda “No device found on target” şeklinde bir mesaj almaya başlamıştım. Ben de “bunlar bozuldu” diyerek bu kitleri bir kenara koymuştum.

Sonradan öğrendim ki, bozulmamışlar. Hatalı bir kod yükleyerek ben kilitlemişim. Bunları tekrar hayata döndürmenin basit bir yöntemi varmış. Aşağıda anlatacağım bu yöntemi önceleri ST Link Utility adlı uygulamayı kullanarak uyguluyordum. Ama artık Mac OS ye geçtim, bu uygulama sadece Windows için var. O halde aynı işlemi STM32 CubeIDE platformu üzerinden yapmanın bir yolu olmalı. İşte aşağıda o yöntemi anlatıyorum.

Continue reading “STM32 CubeIDE – SWD FLASH PROBLEMİNİ AŞMAK”

STM32 CubeIDE – PROJEYE LINK VEREREK HARİCİ DOSYA EKLEMEK

Oluşturduğumuz yeni projelere daha önceki projelerimizden aldığımız dosyaları kopyala-yapıştır tekniği ile eklemeyi önceki yayınlarımda anlatmıştım. “Programa kaynak kodu eklemek” başlıklı yazım için burayı tıklayabilirsiniz. Aslında burada da, yazının amacı bu olmamakla birlikte, aynı işi kopyala yapıştır yöntemi ile değil de Import fonksiyonu ile yapmayı anlatmış oluyorum.

Bir süre sonra aynı kaynak kodlarını bir çok programımızda kullanır duruma geliyoruz. Ancak bu durumda karşımıza ciddi bir sorun çıkıyor. Türlü çeşitli yerlere kopyaladığımız bu kod bloklarında zaman zaman değişiklikler, iyileştirmeler yapmamız gerekiyor. Bu da aynı adı taşıyan kaynak kodların çeşit çeşit versiyonları ile ortalığa saçılmasına yol açıyor. Hangisi en son sürüm, hangisinde hangi hatalar hala duruyor bilemez hale geliyoruz.

Continue reading “STM32 CubeIDE – PROJEYE LINK VEREREK HARİCİ DOSYA EKLEMEK”

STM32F103 İLE DOKUNMATİK PANEL KULLANIMI

Gömülü de olsalar, sistemlerimizin kullanıcılarından giriş beklediği durumlar çok yaygın. Bunun için tuş takımları, tek tek butonlar, klavyeler, döner düğmeler türlü çeşitli araçlar kullanıyoruz. Dokunmatik paneller de en kullanışlı ve yaygın olanlarından. Cep telefonları ile iş çığırından çıkmış durumda. Dokunmatik ekranı olmayan alet kalmadı adeta.

Bu yayında STM32F103 ile rezistif tipte dokunmatik panel kullanımı anlatacağım. Bu panellerin kapasitif olan tipleri cep telefonlarında, tabletlerde kullanılıyor, daha da yetenekliler, onları belki ileride ele alırım, şu anda ihtiyacım yok.

Continue reading “STM32F103 İLE DOKUNMATİK PANEL KULLANIMI”

STM32 – TFT GRAFİK İNSAN MAKİNA ARAYÜZÜ LwGui

Projelerin çoğunda sistemimiz kullanıcısından bilgi girişi ya da bazı seçimler yapmasını ister. Bunu teknik adı ile “İnsan Makina Arayüzü – Human Machine Interface HMI” olarak andığımız sistem bölümleri üzerinden yaparız.

HMI dediğimiz, modern cihazların albenisini ve kullanışlılığını belirleyen önemli bir unsurdur. Basit bir tuş takımı ile, bazı LED lerle geri bildirim yapan HMI larla başlayıp, gayet şık dokunmatik, animasyonlu grafik ekranlara kadar geniş bir yelpaze söz konusu.

Bu iş için MCU tedarikçilerinin sunduğu çok yetenekli kütüphaneler var. Embedded Wizard gibi üçüncü parti geliştirme araçları da var. Bunların ücretsiz sürümleri ile bile dünyanın işini yapabiliyorsunuz. Ancak bu kütüphanelerin -en azından benim karşıma çıkanları- hep üst kategorideki yüksek kapasiteli mikro kontrolcülere yönelik, kapasite arsızı canavarlar.

Ben, mütevazi seviyedeki işlemciler ile kullanabileceğim bir kütüphane oluşturdum. Bunu CNC geliştirme çalışmalarımda karşılaştığım ihtiyaçları dikkate alarak yaptım. Gayet de tatminkar olduğunu düşündüğüm bir paket ortaya çıktı.

Bu yayının konusu bu; Selçuk Özbayraktar yapımı LwGui sistemi.

Continue reading “STM32 – TFT GRAFİK İNSAN MAKİNA ARAYÜZÜ LwGui”

STM32 – SD KARTTAN .bmp DOSYA OKUMAK ve TFT ÜZERİNDE GÖRÜNTÜLEMEK

KONUYLA İLGİLİ YAYINLAR

Aşağıdaki bölümlerde STM32F103 ile SD kart ve TFT ekran kullanımını görmüştük.

Önceki aşamalarda TFT Ekranın sürülmesi, SD kartın açılıp okunması gibi temel işlemleri ele almıştık. Şimdi sıra SD karttan .bmp uzantılı fotoğraf dosyalarının okunarak TFT ekranda görüntülenmesine geldi.

Continue reading “STM32 – SD KARTTAN .bmp DOSYA OKUMAK ve TFT ÜZERİNDE GÖRÜNTÜLEMEK”

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.

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

STM32 – FATFS İLE SD KART UYGULAMALARI – 2

Bir önceki yayınımda STM32F103 ile SD Kart kullanmak üzere, SM32 CubeIDE platformunda bir projenin oluşturulmasını anlatmıştım. SD kartı okuyup yazan kod ayrıntılarına girmemiştim.

Bu yayında biraz daha program ayrıntılarına girerek, SD kart içeriğinin okunmasını, SD üzerindeki dosya ve klasörlerin TFT ekranda listelenmesini anlatacağım.

Continue reading “STM32 – FATFS İLE SD KART UYGULAMALARI – 2”

STM32-FATFS İLE SD KART UYGULAMALARI – 1

STM32 projelerimde yıllardır SD kart kullanırım. Özellikle CNC uygulamalarımda Gerber kodları makinaya vermek için iyi bir seçenek oluyordu. Ancak kullanmakta olduğum sürücü kodları, zamanında internetten bulduğum örnekler üzerinden geliştirmiştim. Bu kodlar yaptığım eklemeler ve değişiklikler ile yamalı bohçaya dönmüş bir durumda idi.

Son zamanlarda, STM32 cube IDE platformuna geçtiğimden beri bunları güncelleyip temize çekmeyi aklıma koymuştum. STM32 CubeIDE FATFS alt yapısını da entegre etmiş olduğundan bu işe el atmanın zamanı gelmişti ve geçiyordu.

Geçenlerde kolları sıvayıp işe giriştim ve derli toplu bir sonuca ulaştım. Bu yayında bunu nasıl yaptığımı anlatacağım.

Continue reading “STM32-FATFS İLE SD KART UYGULAMALARI – 1”

STM32 GPIO – ODR MI YOKSA BSRR MI KULLANMALI

STM32 mikrodenetleyicisinin GPIO çıkışlarına bir şeyler göndermek istediğimizde başvuracağımız iki farklı yöntem var.
ODR ya da BSRR kayıtçılarının seçtiğimiz bitlerine “1” ya da “0” yazarak bunlara karşı düşen GPIO pinlerini “1” ya da “0” konumlarına getirebiliyoruz.

Aynı işi yapmak üzere neden iki farklı kayıtçı kullanıldığı ilk bakışta çok belirgin değil. STM32 dokümantasyonundaki açıklamalar da tekrar açıklama gerektiriyor.

Hatta işi biraz daha kurcalarsak, aynı işi yapmak üzere kullanılabilecek iki kayıtçı daha, BRR ve BSR kayıtçılarının da olduğunu görüyoruz. Ben konuyu burada kendi cümlelerimle açıklamak istiyorum.

Continue reading “STM32 GPIO – ODR MI YOKSA BSRR MI KULLANMALI”

STM32 – GPIO YAZMA HIZI OPTİMİZASYONU

STM32 ye TFT bağlarken, paralel veri aktarımının SPI a göre çok yavaş kaldığını görerek şaşırmıştım. Halbuki tersi olmalıydı. Üstelik SPI’ı DMA ile kullanmadığımda dahi durum böyle idi. TFT SPI Hızları konusundaki yayınım için burayı tıklayabilirsiniz.

Halbuki benim elimde epeyce paralel arayüzlü TFT var, paralel TFT kullanan kitlerim ve projelerim var. Dahası, TFT nin dışında başka uygulamalar için de paralel veri aktarımı yapıp duruyorum. O halde bu konunun üzerine gitmeye değer diye düşündüm ve epeyi ilerleme kaydettim. Bu yayının konusu “STM32 de GPIO porta nasıl daha hızlı veri aktarılır” olacak.

Continue reading “STM32 – GPIO YAZMA HIZI OPTİMİZASYONU”