TouchGFX-Entwicklungs-Tutorial

Inhaltsverzeichnis

TouchGFX Designer Overview

Im letzten Artikel haben wir Ihnen gezeigt, wie Sie die TouchGFX-Software installieren. Hier zeigen wir Ihnen, wie Sie TouchGFX mit STM32CubeMX auf das STM32-Entwicklungsboard F429IGT6 übertragen und den RGB-Bildschirm ansteuern können.

Wie kann man ein TouchGFX-Projekt mit STM32CubeMX übertragen?

In diesem Tutorial ist es unser Ziel, das TouchGFX-Projekt auf das STM32-Entwicklungsboard zu portieren.

Benötigte Werkzeuge

  • Hardware
  1. Eine Kernplatine/Entwicklungsplatine auf Basis der STM32-MCU: STM32F429IGT6;
  2. Ein Display mit RGB-Schnittstelle, empfohlene Auflösung: 800*480;
  3. ST-Link oder kompatibler Debugger;
  • Software
  1. ARM Keil uVision5 (in diesem Artikel verwendete Version: V5.38.0.0);
  2. STM32 CubeMX (in diesem Artikel verwendete Version: 6.9.2);
  3. TouchGFX Generator-Softwarepaket (in diesem Artikel verwendete Version: V4.22.1).

STM32CubeMX-Konfiguration

STM32CubeMX wird hauptsächlich zur Konfiguration der Hardware-Abstraktionsschicht und der Middleware-Schicht im Anwendungs-Framework-Diagramm von TouchGFX verwendet.

Neues Projekt starten:

Start a New Project from MCU STM32F429IGT6
Start a New Project from MCU STM32F429IGT6

RCC-Systemtakt: Hochgeschwindigkeits-Externer Takt (HSE), konfiguriert als externer Quarzoszillator.

RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator
RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator

Da wir das Betriebssystem FreeRTOS verwenden müssen, wird empfohlen, die Zeitbasisquelle der HAL-Bibliothek von SysTick auf andere Timer umzustellen. Nach Auswahl des Timers konfiguriert das System automatisch TIM, das hier auf TIM7 eingestellt ist.

SYS Mode and Configuration_Setting Timebase Source as TIM7
SYS Mode and Configuration_Setting Timebase Source as TIM7

FMC-Einstellungen: Konfigurieren Sie externes SDRAM als Videospeicher für RGBLCD und konfigurieren Sie Parameter und Pins entsprechend Ihrer eigenen Hardware.

FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration Configure the SDRAM parameters
FMC Mode and Configuration_Configure the SDRAM parameters

DMA2D-Einstellungen: DMA2D aktivieren, den Farbmodus auf RGB565 konfigurieren und DMA2D-Interrupts aktivieren.

Activate DMA2D Mode and Configure Color Mode as RGB565
Activate DMA2D Mode and Configure Color Mode as RGB565
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt

LTDC-Parametereinstellungen: Konfigurieren Sie die LTDC-Parameter entsprechend den verwendeten Bildschirmparametern.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

LTDC-Layer-Einstellungen: Wählen Sie hier Layer 1 und setzen Sie die Frame-Buffer-Adresse auf die erste Adresse von SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

LTDC-GPIO-Pin-Einstellungen: Konfigurieren Sie den GPIO entsprechend den Pin-Anschlüssen der jeweiligen Entwicklungsplatine. Beachten Sie, dass die Ausgabegeschwindigkeit auf „Sehr hoch“ eingestellt und der LTDC-Interrupt aktiviert sein sollte.

LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration NVIC Settings Enabled Interrupt
LTDC Mode and Configuration_NVIC Settings_Enabled Interrupt

Taktbaumkonfiguration: Die Pixel-Taktgröße beträgt 1056*705*60/1024/1024=42M, der maximale Pixel-Taktwert beträgt 42M, hier ist er auf 33M eingestellt (1056 ist die Gesamtbreite, 705 ist die Gesamthöhe).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Einstellungen für den Backlight-Pin: Das in diesem Artikel verwendete Entwicklungsboard nutzt PB5 als Backlight-Pin und ist auf Push-Pull-Ausgabe eingestellt.

GPIO Mode and Configuration_Configure PB5 as Backlight Pin
GPIO Mode and Configuration_Configure PB5 as Backlight Pin

CRC aktivieren: TouchGFX muss die CRC-Funktion aktivieren.

Activate CRC Mode
Activate CRC Mode

Aktivieren Sie das FreeRTOS-System: Stellen Sie die Heap-Größe auf 32768 Byte ein und belassen Sie die übrigen Einstellungen auf den Standardwerten. Fügen Sie eine TouchGFX-Aufgabe hinzu.

FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Add Tasks and Queues
FREERTOS Mode and Configuration_Add Tasks and Queues

Wählen Sie das Touchgfx-Komponentenpaket aus.

Software Packs_Select Components
Software Packs_Select Components
Software Packs Component Selector TouchGFX Generator
Software Packs Component Selector_TouchGFX Generator

TouchGFX-Parametereinstellungen: Wählen Sie Doppelpufferung, RGB565 und aktivieren Sie die DMA2D-Beschleunigung.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Projektmanager: Festlegen des Projektnamens, des Projektstandorts und des Linkers. (Die minimale Stackgröße ist auf 0X800 festgelegt.)

Project Manager_Setting Project Name, Location, Linker
Project Manager_Setting Project Name, Location, Linker

Projektcode generieren: Nachdem STM32CubeMX das Projekt generiert hat, öffnen Sie das Keil-Projekt nicht. (Wenn Sie das Keil-Projekt zu diesem Zeitpunkt kompilieren, werden zahlreiche Fehler angezeigt.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

TouchGFX Designer

Nachdem das Keil-Projekt generiert wurde, wird der Code erfolgreich unter folgendem Pfad generiert:

E:/STM32 Project/STM32F429/TouchGFX FreeRTOS

STM32 Project_Open the Application Template.touchgfx
STM32 Project_Open the Application Template.touchgfx

Wir finden diesen Pfad. Im Verzeichnis „TouchGFX“ befindet sich die Datei „ApplicationTemplate.touchgfx.part“. Klicken Sie darauf, um TouchGFX Designer zu öffnen und die Benutzeroberfläche zu gestalten.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

Nachdem Sie einige Steuerelemente per Drag & Drop verschoben und auf „Code generieren“ geklickt haben, um den Code zu generieren, wird der TouchGFX-bezogene Code automatisch zum Projekt hinzugefügt.

MKD-ARM Keil kompilieren

SDRAM-Treiber-Quelldateien und Header-Dateien hinzufügen.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Fügen Sie die SDRAM-Initialisierungsfunktion in die Funktion MX_FMC_Init() der Datei fmc.c ein, um den externen Speicherchip anzusteuern.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Aktivieren Sie die Hintergrundbeleuchtung des Bildschirms in der Datei touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Fügen Sie die entsprechende Aufgabe hinzu und fügen Sie die TouchGFX-Verarbeitungsfunktion hinzu.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Herunterladen und Testen

Nachdem die Kompilierung korrekt ist, laden Sie sie auf das Entwicklungsboard herunter.

Download the project code to the STM32F429 development board
Download the project code to the STM32F429 development board

Wenn TouchGFX erfolgreich übertragen wurde, zeigt der Bildschirm des Entwicklungsboards die in TouchGFX Designer entworfene Benutzeroberfläche an.

TouchGFX was successfully ported to the STM32F429 development board
TouchGFX was successfully ported to the STM32F429 development board

Abonnieren

Tragen Sie sich in unsere Abonnentenliste ein, um monatliche Blog-Updates, Technologie-News und Fallstudien zu erhalten. Wir versenden niemals Spam, und Sie können sich jederzeit wieder abmelden.

Nach oben scrollen

Instant Quote