Bagaimana Cara Memindahkan Proyek TouchGFX Menggunakan STM32CubeMX?
Dalam tutorial ini, tujuan kita adalah memporting proyek TouchGFX ke papan pengembangan STM32.
Peralatan yang Diperlukan
- Perangkat Keras
- Papan inti/papan pengembangan berbasis MCU STM32: STM32F429IGT6;
- Layar dengan antarmuka RGB, resolusi yang disarankan: 800*480;
- ST-Link atau debugger yang kompatibel;
- Perangkat Lunak
- ARM Keil uVision5 (versi yang digunakan dalam artikel ini: V5.38.0.0);
- STM32 CubeMX (versi yang digunakan dalam artikel ini: 6.9.2);
- Paket perangkat lunak TouchGFX Generator (versi yang digunakan dalam artikel ini: V4.22.1).
Konfigurasi STM32CubeMX
STM32CubeMX terutama digunakan untuk mengonfigurasi lapisan abstraksi perangkat keras dan lapisan middleware dalam diagram kerangka kerja aplikasi TouchGFX.
Mulai Proyek Baru:
Jam sistem RCC: Jam eksternal berkecepatan tinggi (HSE) yang dikonfigurasi sebagai osilator kristal eksternal.
Karena kita perlu menggunakan sistem operasi FreeRTOS, disarankan untuk mengubah sumber Timebase pada pustaka HAL dari SysTick ke timer lain. Setelah memilih timer, sistem akan secara otomatis mengonfigurasi TIM, yang dalam hal ini disetel ke TIM7.
Pengaturan FMC: Konfigurasikan SDRAM eksternal sebagai memori video RGBLCD, dan sesuaikan parameter serta pin sesuai dengan perangkat keras yang Anda gunakan.
Pengaturan DMA2D: Aktifkan DMA2D, atur mode warna ke RGB565, dan aktifkan interupsi DMA2D.
Pengaturan parameter LTDC: Konfigurasikan parameter LTDC sesuai dengan parameter layar yang digunakan.
Pengaturan lapisan LTDC: Pilih untuk menggunakan lapisan 1 di sini, dan atur alamat buffer bingkai ke alamat pertama SDRAM 0XC0000000.
Pengaturan pin GPIO LTDC: Konfigurasikan GPIO sesuai dengan koneksi pin pada papan pengembangan yang bersangkutan. Perhatikan bahwa kecepatan output harus diatur ke "Sangat Tinggi"; dan interupsi LTDC harus diaktifkan.
Konfigurasi pohon clock: Ukuran clock piksel adalah 1056*705*60/1024/1024=42M, nilai clock piksel maksimum adalah 42M, di sini nilainya diatur menjadi 33M (1056 adalah lebar total, 705 adalah tinggi total).
Pengaturan pin lampu latar: Papan pengembangan yang dibahas dalam artikel ini menggunakan PB5 sebagai pin lampu latar dan disetel ke mode keluaran push-pull.
Aktifkan CRC: TouchGFX perlu mengaktifkan fungsi CRC.
Aktifkan sistem FreeRTOS: atur ukuran heap menjadi 32768 byte dan biarkan pengaturan lainnya tetap pada konfigurasi default; lalu tambahkan tugas TouchGFX.
Pilih paket komponen Touchgfx.
Pengaturan parameter TouchGFX: pilih double buffering, RGB565, dan aktifkan akselerasi DMA2D.
Manajer Proyek: menentukan nama proyek, lokasi proyek, dan penghubung. (Ukuran tumpukan minimum ditetapkan sebesar 0x800.)
Buat kode proyek: Setelah STM32CubeMX menghasilkan proyek, jangan buka proyek Keil. (Jika Anda mengkompilasi proyek Keil pada tahap ini, akan muncul banyak kesalahan.)
TouchGFX Designer
Setelah proyek Keil dibuat, kode berhasil dihasilkan di:
E:/STM32 Project/STM32F429/TouchGFX FreeRTOS
Kita temukan jalur ini. Di dalam direktori TouchGFX terdapat berkas ApplicationTemplate.touchgfx.part. Klik untuk membuka TouchGFX Designer guna mendesain antarmuka pengguna.
Setelah menyeret dan meletakkan beberapa kontrol serta mengklik "Generate Code" untuk menghasilkan kode, kode yang terkait dengan TouchGFX akan secara otomatis ditambahkan ke proyek.
MKD-ARM Keil Compile
Tambahkan berkas sumber dan berkas header driver SDRAM.
Tambahkan fungsi inisialisasi SDRAM ke dalam fungsi MX_FMC_Init() pada berkas fmc.c untuk mengendalikan chip memori eksternal.
Aktifkan lampu latar layar pada berkas touchgfxhal.cpp.
Tambahkan tugas yang sesuai dan tambahkan fungsi pemrosesan TouchGFX.
Unduh dan Coba
Setelah proses kompilasi berhasil, unduh ke papan pengembangan.
Jika TouchGFX berhasil diinstal, layar papan pengembangan akan menampilkan antarmuka yang dirancang di TouchGFX Designer.



