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
- Una placa base/placa de desarrollo basada en MCU STM32: STM32F429IGT6;
- Una pantalla con interfaz RGB, resolución recomendada: 800*480;
- ST-Link o depurador compatible;
- Software
- ARM Keil uVision5 (versión utilizada en este artículo: V5.38.0.0);
- STM32 CubeMX (versión utilizada en este artículo: 6.9.2);
- 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:
Reloj del sistema RCC: Reloj externo de alta velocidad (HSE) configurado como un oscilador de cristal externo.
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.
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.
Configuración de DMA2D: Active DMA2D, configure el modo de color a RGB565 y habilite las interrupciones de DMA2D.
Configuración de parámetros LTDC: Configure los parámetros LTDC según los parámetros de pantalla utilizados.
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.
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.
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).
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.
Activar CRC: TouchGFX necesita habilitar la función CRC.
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.
Seleccione el paquete de componentes TouchGFX.
Configuración de parámetros de TouchGFX: seleccione doble búfer, RGB565 y active la aceleración DMA2D.
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.)
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.)
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
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.
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.
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.
Encender la retroiluminación de la pantalla en el archivo touchgfxhal.cpp.
Añadir la tarea correspondiente y la función de procesamiento de TouchGFX.
Descargar y Probar
Una vez que la compilación sea correcta, descárguelo a la placa de desarrollo.
Si TouchGFX se trasplanta con éxito, la pantalla de la placa de desarrollo mostrará la interfaz diseñada en TouchGFX Designer.




