Tutoriel de développement TouchGFX

Table des Matières

TouchGFX Designer Overview

Dans le dernier article, nous avons présenté comment installer le logiciel TouchGFX. Ici, nous expliquons comment utiliser STM32CubeMX pour transplanter TouchGFX sur la carte de développement STM32 F429IGT6 et piloter l'écran RVB.

Comment transplanter un projet TouchGFX à l'aide de STM32CubeMX ?

Dans ce tutoriel, notre objectif est de porter le projet TouchGFX sur la carte de développement STM32.

Outils nécessaires

  • Matériel
  1. Une carte mère/carte de développement basée sur le microcontrôleur STM32 : STM32F429IGT6 ;
  2. Un écran avec interface RVB, résolution recommandée : 800*480 ;
  3. ST-Link ou débogueur compatible ;
  • Logiciel
  1. ARM Keil uVision5 (version utilisée dans cet article : V5.38.0.0) ;
  2. STM32 CubeMX (version utilisée dans cet article : 6.9.2) ;
  3. Logiciel TouchGFX Generator (version utilisée dans cet article : V4.22.1).

STM32CubeMX Configuration

STM32CubeMX est principalement utilisé pour configurer la couche d'abstraction matérielle et la couche middleware dans le schéma du cadre d'application de TouchGFX.

Commencer un nouveau projet :

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

Horloge système RCC : horloge externe haute vitesse (HSE) configurée comme un oscillateur à quartz externe.

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

Comme nous devons utiliser le système d'exploitation FreeRTOS, il est recommandé de changer la source de base de temps de la bibliothèque HAL de SysTick à d'autres minuteries. Après avoir sélectionné la minuterie, le système configurera automatiquement TIM, qui est réglé ici sur TIM7.

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

Paramètres FMC : configurez la SDRAM externe comme mémoire vidéo du RGBLCD, puis configurez les paramètres et les broches en fonction de votre matériel.

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

Paramètres DMA2D : activez DMA2D, configurez le mode couleur sur RGB565 et activez les interruptions DMA2D.

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

Réglages des paramètres LTDC : Configurez les paramètres LTDC en fonction des paramètres d'écran utilisés.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

Paramètres de couche LTDC : choisissez ici d'utiliser la couche 1 et définissez l'adresse du tampon de trame sur la première adresse de la SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

Paramètres des broches GPIO LTDC : configurez le GPIO en fonction des connexions des broches de la carte de développement spécifique. Notez que la vitesse de sortie doit être réglée sur « Très élevée » et que l'interruption LTDC doit être activée.

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

Configuration de l'arbre d'horloge : la taille de l'horloge pixel est de 1056*705*60/1024/1024=42M, la valeur maximale de l'horloge pixel est de 42M, ici elle est réglée sur 33M (1056 correspond à la largeur totale, 705 à la hauteur totale).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Paramètres des broches du rétroéclairage : la carte de développement présentée dans cet article utilise PB5 comme broche de rétroéclairage et est configurée en sortie push-pull.

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

Activer le CRC : TouchGFX doit activer la fonction CRC.

Activate CRC Mode
Activate CRC Mode

Activez le système FreeRTOS : définissez la taille du tas à 32768 octets et laissez les autres paramètres par défaut ; ajoutez une tâche TouchGFX.

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

Sélectionnez le package de composants Touchgfx.

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

Paramètres TouchGFX : sélectionnez le double tampon, RGB565, et activez l'accélération DMA2D.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Chef de projet : définition du nom du projet, de son emplacement et du lieur. (La taille minimale de la pile est définie sur 0X800.)

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

Générer le code du projet : une fois que STM32CubeMX a généré le projet, n'ouvrez pas le projet Keil. (Si vous compilez le projet Keil à ce stade, un grand nombre d'erreurs apparaîtront.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

Concepteur TouchGFX

Une fois le projet Keil généré, le code est généré avec succès sous :

E:/STM32 Project/STM32F429/TouchGFX FreeRTOS

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

Nous trouvons ce chemin. Le fichier ApplicationTemplate.touchgfx.part se trouve dans le répertoire TouchGFX. Cliquez pour ouvrir TouchGFX Designer afin de concevoir l'interface utilisateur.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

Après avoir glissé-déposé certains contrôles et cliqué sur Générer le code pour générer le code, le code lié à TouchGFX sera automatiquement ajouté au projet.

MKD-ARM Compilation Keil

Ajouter les fichiers source et les fichiers d'en-tête du pilote SDRAM.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Ajoutez la fonction d'initialisation SDRAM dans la fonction MX_FMC_Init() du fichier fmc.c pour piloter la puce mémoire externe.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Activez le rétroéclairage de l'écran dans le fichier touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Ajoutez la tâche correspondante et ajoutez la fonction de traitement TouchGFX.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Télécharger et tester

Une fois la compilation correcte, téléchargez-la sur la carte de développement.

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

Si TouchGFX est transplanté avec succès, l'écran de la carte de développement affichera l'interface conçue dans TouchGFX Designer.

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

Abonnez-vous

Rejoignez notre liste d’abonnés pour obtenir mensuel blog des mises à jour, des nouvelles technologies, des études de cas. Nous n’enverrons jamais de spam, et vous pouvez vous désinscrire à tout moment.

À Propos De L'Auteur

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Besoin D'Aide?

Retour en haut

Instant Quote