Portabilidad de TouchGFX en STM32F429IGT6 (versión FreeRTOS)

Tabla de contenido

1. El entorno del trasplante

Dos, marco de aplicación

Tres, trasplante TouchGFX

1. Pasos

2. Componentes necesarios

3. Configuración de STM3CubeMX

(1) Configure el reloj del sistema RCC

(2) Configurar SYS

(3) Configurar FMC (SDRAM)

(4) Configure DMA2D y active la interrupción DMA2D

(5) Configurar LTDC, abrir interrupción LTDC

(6) Encienda CRC

(7) Configure freeRTOS y cree 2 tareas

(8) Configurar TouchGFX

(9) Generar proyecto

4. Ejecute TouchGFX Designer

(1) Interfaz TouchGFX Designer

(2) Agregar aplicación GUI

(3) Generar código

5. Toque la migración del controlador


1. El entorno del trasplante

hardware:

  • STM32F429IGT6, 1MB FLASH, 256KB SRAM
  • 800x480 Pantalla LCD RGB de 7 pulgadas
  • SDRAM de 256 MB expandido externamente (MT48LC16M16A2)
  • Pantalla táctil, el chip de la unidad es TSC2046 con interfaz I2C

software:

  • STM32CubeMX 6.0.1
  • TouchGFX Designer 4.14.0
  • IAR 8.11.2

Descripción:

Las versiones de STM32CubeMX 5.0 a 5.4 (incluida la 5.4) y las versiones de STM32CubeMX posteriores a la 5.4 admiten TouchGFX de una manera diferente, y la estructura del directorio del proyecto generado también es diferente. ¡No se puede mezclar! ! !

En STM32CubeMX 5.0 a 5.4, el componente GRAPHICS se selecciona en el middleware para configurar TouchGFX, y TouchGFX Designer también se puede abrir directamente en CubeMX para diseñar la parte de la interfaz de usuario

En la versión posterior a STM32CubeMX 5.0, TouchGFX se configura agregando un paquete de software de terceros. No hay ningún componente GRAPHICS en el middleware y TouchGFX Designer no se puede abrir directamente en CubeMX.

Dos, marco de aplicación

Tres, trasplante TouchGFX

Hay dos formas de crear un proyecto TouchGFX. El primero se usa aquí

  1. De acuerdo con la placa de destino, use STM32CubeMX para crear desde cero
  2. Utilice la plantilla proporcionada por Touch Designer para crear rápidamente un proyecto de demostración similar al tablero de destino

1. Pasos

STM32CubeMX cubre parte de la caja roja

2. Componentes necesarios

3. Configuración de STM3CubeMX

(1) Configure el reloj del sistema RCC

Tamaño del reloj de píxeles: 1056 * 705 * 60/1024/1024 = 42 M, el reloj de píxeles máximo es 42 M, lo configuro en 25 M aquí

(2) Configurar SYS

(3) Configurar FMC (SDRAM)

¡Asegúrese de tener en cuenta que el GPIO configurado debe ser coherente con su propio hardware! ! ! Porque algunos pines de SDRAM se pueden multiplexar en múltiples GPIO. No hay un programa de inicialización de SDRAM en el proyecto generado

(4) Configure DMA2D y active la interrupción DMA2D

(5) Configurar LTDC, abrir interrupción LTDC

¡Asegúrese de tener en cuenta que el GPIO configurado debe ser coherente con su propio hardware! ! !

(6) Encienda CRC

(7) Configure freeRTOS y cree 2 tareas

GUITask se utiliza para el procesamiento de TouchGFX

void StartGUITask(void const * argument)
{
	/* USER CODE BEGIN StartGUITask */
	MX_TouchGFX_Process();
	/* Infinite loop */
	for(;;)
	{
		osDelay(1000);
	}
	/* USER CODE END StartGUITask */
}

LEDTask se usa para hacer parpadear la luz del latido del corazón

void StartLEDTask(void const * argument)
{
	/* USER CODE BEGIN StartLEDTask */
	/* Infinite loop */
	for(;;)
	{
		HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
		osDelay(1000);
	}
	/* USER CODE END StartLEDTask */
}

(8) Configurar TouchGFX

Abra el paquete de software TouchGFX

Configurar TouchGFX

(9) Generar proyecto

Después de usar CubeMX para generar el proyecto, no abra primero el proyecto IAR, sino que también debe ejecutar Touch Designer para diseñar la parte de la interfaz de usuario y mejorar el proyecto.

4. Ejecute TouchGFX Designer

Use CubeMX para configurar solo la parte en el cuadro rojo, y luego use TouchGFX Designer para completar el proyecto

Después de generar el proyecto, hay un ApplicationTemplate.touchgfx.part en el directorio Src. Haga clic en este enlace para abrir TouchGFX Designer

(1) Interfaz TouchGFX Designer

(2) Agregar aplicación GUI

El primer paso: crear la pantalla 1, colocar un control de cuadro y un control de botón, establecer las coordenadas del cuadro en (0, 0) y el tamaño de 800x480, establecer las coordenadas del botón y la imagen de fondo cuando se presiona y suelta. La imagen puede ser de la biblioteca de iconos vectoriales de Alibaba Descárguelo y colóquelo en el directorio… \ Src \ assets \ images; agregue Interaction para realizar la función de cambiar a screen2 haciendo clic en el botón

Paso 2: Cree la pantalla 2. Los pasos son similares al primer paso, excepto que hay 7 controles de Línea más para mostrar 7 colores, y haga clic en el botón para cambiar a la pantalla3.

El tercer paso: crear screen3, agregar principalmente el control de imagen animada, que se utiliza para cambiar imágenes dinámicamente en un tiempo fijo, haga clic en el botón para volver a la pantalla1

(3) Generar código

Haga clic en Generar código para generar el código. En este momento, abra el proyecto con IAR y el código relacionado con TouchGFX se agregará automáticamente al proyecto; al mismo tiempo, habrá un archivo adicional "xxxx.touchgfx" en el directorio Src, que será directamente Abra este archivo y podrá continuar usando TouchGFX Designer para diseñar la interfaz de usuario

5. Toque la migración del controlador

Después de completar la configuración anterior, la pantalla LCD se puede encender, pero la pantalla táctil aún no se puede usar y es necesario agregar un controlador táctil; la adición del controlador táctil también es relativamente simple, primero agregue el código del controlador de acuerdo con el chip táctil de su propia placa y luego mejore el STM32TouchController Las dos funciones en .cpp servirán

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_37845735/article/details/108933983
Recomendado
Clasificación