Tabla de contenido
3. Configuración de STM3CubeMX
(1) Configure el reloj del sistema RCC
(4) Configure DMA2D y active la interrupción DMA2D
(5) Configurar LTDC, abrir interrupción LTDC
(7) Configure freeRTOS y cree 2 tareas
(1) Interfaz TouchGFX Designer
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í
- De acuerdo con la placa de destino, use STM32CubeMX para crear desde cero
- 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