STM32F429I DISCOVERY ile TouchGFX Uygulaması

Merhaba Arkadaşlar,

Bu yazımda sizlere STM32 bünyesinde bulunan görsel bir ekran hazırlamamızı sağlayan TouchGFX uygulamasından bahsedeceğim. STM32F429 Disco için basit led yakma ve adc değer okuma gibi uygulama ile anlatacağım. Daha önceden ST STemWin destekliyordu ve yine blog sayfamda anlatmıştım, fakat ST artık STemWin desteğini kestiği için kullanamıyorsunuz.

İlk önce GUI yani görsel tarafı için TouchGFX Designer i indirmemiz gerekiyor. Aşağıdaki linkten indirebilirsiniz.

https://www.st.com/content/st_com/en/ecosystems/stm32-graphic-user-interface.html

İndirip kurduktan sonra programı açıp başlayabiliriz. Karşımıza aşağıdaki ekran gelecektir.

Application Name kısmına isim yazıp, Aplication Template ksımına gelerek elimizdeki kiti seçiyoruz. Örneği 429I-Disco ile yapacağım için bunu seçtim.

UI Template ise boş seçiyoruz isterseniz daha sonra fazla örnek açısından buradaki hazır şablonları inceleyebilirsiniz. Create e basıp proje dosyalarını oluşturmasını sağlıyoruz. Karşımıza boş ekran geliyor ve sol yukarıdan + ya basarak ekrana widget ekliyoruz örnek te incelediğiniz gibi ledleri kontrol etmek için toggle switch ekledim. Diğer sayfaya geçmek için buton ekledim. Aynı şekilde soldan 2 tane daha ekran ekleyerek projemizi hazırlıyoruz. Örnek uygulamayı aşağıda linkte paylaşacağım.

Şimdi gelelim 1. sayfa için eklediğimiz widgetlerı kontrol edelim. İlk olarak board üzerindeki LED3 ve LED4 için sırası ile ayarlayalım. LED3 için sağ taraftaki interactions kısmına basarak Add Interactions tıklıyoruz.

Daha sonra sırası ile aşağıdaki seçimleri yapıyoruz.

Trigger ile click eylemini seçip sonra hangi kaynak onu belirliyoruz, action ile new virtual function ile kendi fonksiyon ismimizi giriyoruz. Bu fonksiyonu program kodları içinde kullanacağız. Aynı işlemi diğer led için yapıyoruz.

Şimdi gelelim diğer sayfaya geç işlemine. Burada ise fonksiyonu kendi otomatik tanımlayacağız.

Yine trigger dan buton is clicked seçip sonra hangi buton olacağını belirtiyoruz. Action kısmına ise Screen2 yi seçiyoruz. (kendi yaptığınız 2. ekran). Böylelikle ilk ekranla ilgili işimiz bitti 2. ekran a geçebiliriz.

2. ekranda ise işlemci üzerindeki ADC yi okuyup circle progress de göstereceğiz. Bu sayfada 2 buton ekledim, önceki sayfa ve sonraki sayfa diye birde slider ekledim kod içerisinde değerini okuyup ekranda text e yazdıracağız. Gerekli actions ları ekledikten sonra 3. sayfaya geçebiliriz.

3. sayfada ise board üzerinde bulunan Gyroscope dan değerleri okuyup ekrana yazdırıyorum.

Bu sayfada ise sadece geri butonu ekleyip actions verdikten sonra artık görsel tarafı tamamladık kodumuzu oluşturabiliriz. Bunun için sağ yukarıda bulunan Generate Code a basıyoruz ve proje dizinine bütün dosyaları oluşturuyor. (STM32CubeIDE dahil).

Kod düzenlemek için STM32Cube IDE yi açıp yeni bir proje ekliyoruz ve kendi projemizi seçiyoruz. Açılan proje aşağıdaki gibi olacak ve eklediğimiz ekran dosyaların c++ kodlarını göreceksiniz.

Bu aşamada TouchGFX program ile oluşturduğumuz fonksiyonları manuel olarak tek tek ekleyeceğiz. Bir tanesi için nasıl eklendiğini anlatacağım. 1. sayfadaki led3 ve led4 toggle için Screen1View.cpp dosyasına gidip aşağıdaki fonksiyonu ekliyoruz.

void Screen1View::led3_toggle()
{

	if(toggleButton1.getState())
		HAL_GPIO_WritePin(LED3, GPIO_PIN_SET);
	else
		HAL_GPIO_WritePin(LED3, GPIO_PIN_RESET);
}

Bununla birlikte h dosyasına gidip tanımlamaları da ekliyoruz.

class Screen1View : public Screen1ViewBase
{
public:
    Screen1View();
    virtual ~Screen1View() {}
    virtual void setupScreen();
    virtual void tearDownScreen();
    virtual void handleTickEvent();
    virtual void led3_toggle();
    virtual void led4_toggle();
protected:
    bool increase = true;
    int tickCounter;
    int8_t screen_cnt=0;
};

Bütün fonksiyonları tamamladıktan sonra projemizi derleyip borda yüklediğimizde istediğimiz gibi çalışacaktır.

Tüm projeyi indirmek için TIKLAYIN

Bir sonraki projede görüşmek üzere,
Kolay Gelsin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.