Tutorial de Desarrollo de TouchGFX

Índice

TouchGFX Designer Overview

En el último artículo, presentamos cómo instalar el software TouchGFX. Aquí, presentamos cómo usar STM32CubeMX para trasplantar TouchGFX a la placa de desarrollo STM32 F429IGT6 y controlar la pantalla RGB.

¿Cómo trasplantar un proyecto TouchGFX usando STM32CubeMX?

En este tutorial, nuestro objetivo es portar el proyecto TouchGFX a la placa de desarrollo STM32.

Herramientas necesarias

  • Hardware
  1. Una placa base/placa de desarrollo basada en MCU STM32: STM32F429IGT6;
  2. Una pantalla con interfaz RGB, resolución recomendada: 800*480;
  3. ST-Link o depurador compatible;
  • Software
  1. ARM Keil uVision5 (versión utilizada en este artículo: V5.38.0.0);
  2. STM32 CubeMX (versión utilizada en este artículo: 6.9.2);
  3. Paquete de software TouchGFX Generator (versión utilizada en este artículo: V4.22.1).

Configuración de STM32CubeMX

STM32CubeMX se utiliza principalmente para configurar la capa de abstracción de hardware y la capa de middleware en el diagrama del marco de aplicación de TouchGFX.

Iniciar un nuevo proyecto:

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

Reloj del sistema RCC: Reloj externo de alta velocidad (HSE) configurado como un oscilador de cristal externo.

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

Dado que necesitamos usar el sistema operativo FreeRTOS, se recomienda cambiar la fuente de tiempo (Timebase Source) de la biblioteca HAL de SysTick a otros temporizadores. Después de seleccionar el temporizador, el sistema configurará automáticamente TIM, que aquí se establece en TIM7.

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

Configuración de FMC: Configure la SDRAM externa como la memoria de video del RGBLCD, y configure los parámetros y pines de acuerdo con su propio 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

Configuración de DMA2D: Active DMA2D, configure el modo de color a RGB565 y habilite las interrupciones de 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

Configuración de parámetros LTDC: Configure los parámetros LTDC según los parámetros de pantalla utilizados.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

Configuración de capa LTDC: Elija usar la capa 1 aquí y configure la dirección del búfer de fotogramas a la primera dirección de la SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

Configuración de pines GPIO de LTDC: Configure el GPIO de acuerdo con las conexiones de pines de la placa de desarrollo específica. Tenga en cuenta que la velocidad de salida debe establecerse en «Muy Alta»; y la interrupción LTDC debe estar habilitada.

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

Configuración del árbol de reloj: El tamaño del reloj de píxeles es 1056*705*60/1024/1024=42M, el valor máximo del reloj de píxeles es 42M, aquí se establece en 33M (1056 es el ancho total, 705 es el alto total).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Configuración del pin de retroiluminación: La placa de desarrollo en este artículo utiliza PB5 como pin de retroiluminación y está configurado como salida push-pull.

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

Activar CRC: TouchGFX necesita habilitar la función CRC.

Activate CRC Mode
Activate CRC Mode

Activar el sistema FreeRTOS: establezca el tamaño del montón (heap size) en 32768 bytes y el resto en configuraciones predeterminadas; y añada una tarea de 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

Seleccione el paquete de componentes TouchGFX.

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

Configuración de parámetros de TouchGFX: seleccione doble búfer, RGB565 y active la aceleración DMA2D.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Administrador de proyectos: configuración del nombre del proyecto, ubicación del proyecto y enlazador. (El tamaño mínimo de la pila se establece en 0X800.)

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

Generar código del proyecto: Después de que STM32CubeMX genere el proyecto, no abra el proyecto de Keil. (Si compila el proyecto de Keil en este momento, aparecerá una gran cantidad de errores.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

Diseñador de TouchGFX

Después de generar el proyecto Keil, el código se genera con éxito en:

E:\STM32 Project\STM32F429\TouchGFX FreeRTOS

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

Encontramos esta ruta. Hay un archivo ApplicationTemplate.touchgfx.part en el directorio TouchGFX. Haga clic para abrir TouchGFX Designer y diseñar la interfaz de usuario.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

Después de arrastrar y soltar algunos controles y hacer clic en Generar código para generar el código, el código relacionado con TouchGFX se agregará automáticamente al proyecto.

Compilación MKD-ARM Keil

Añadir los archivos fuente y de cabecera del controlador SDRAM.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Añadir la función de inicialización de SDRAM en la función MX_FMC_Init() del archivo fmc.c para controlar el chip de memoria externo.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Encender la retroiluminación de la pantalla en el archivo touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Añadir la tarea correspondiente y la función de procesamiento de TouchGFX.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Descargar y Probar

Una vez que la compilación sea correcta, descárguelo a la placa de desarrollo.

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

Si TouchGFX se trasplanta con éxito, la pantalla de la placa de desarrollo mostrará la interfaz diseñada en TouchGFX Designer.

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

Suscríbete

Únete a nuestra lista de suscriptores para recibir actualizaciones mensuales del blog, noticias de tecnología y estudios de caso. Nunca enviaremos spam y puedes cancelar tu suscripción en cualquier momento.

Acerca del Autor

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.

¿Necesitas ayuda?

Scroll al inicio

Cotización