Trasplante de TouchGFX en ART-Pi H750 (1) —— Utilice STM32CUBMX para generar un proyecto TouchGFX

Tabla de contenido

Transplante TouchGFX en ART-Pi H750 (1) -Utilice STM32CUBMX para generar un proyecto TouchGFX
Transplante TouchGFX en ART-Pi H750 (2) -Realice el algoritmo de programación QSPI-FLASH externo de MDK
Transplante TouchGFX en ART-Pi H750 ( Tres) -Transplante TouchGFX al sistema RT-Thread Transplante TouchGFX
en ART-Pi H750 (cuatro) -Utilice RT-Thread Studio para trasplantar TouchGFX y trasplante TouchGFX
en ART-Pi H750 (5) -Hacer ST-LINK externo Algoritmo de programación QSPI-FLASH

plataforma de experimentos:

Hardware: RT-Thread versión de desarrollo oficial ART-PI H750, pantalla Punctual Atom de 4.3 pulgadas RGBLCD (800 * 480)
Software: la última versión de la biblioteca de firmware STM32CubeH7, TouchGFXDesigner v4.14 y STM32CubeMX V6.0.1, entorno de desarrollo MDK v5.29
Inserte la descripción de la imagen aquí

Descarga de código:

CSDN: https://download.csdn.net/download/sinat_31039061/12849862

Póngase en contacto con el autor:

Siga la cuenta oficial, véala gratis, responda a "agregar grupo", únase al grupo de intercambio técnico
Inserte la descripción de la imagen aquí

Cree un proyecto de interfaz de usuario TouchGFX desde cero

Seleccione el modelo de MCU (STM32H750XBH6)

Inserte la descripción de la imagen aquí

Seleccionar y configurar componentes (sistemas, periféricos, middleware)

Inserte la descripción de la imagen aquí

Necesidades del sistema

RCC

SYS

Se requiere la función GUI

I2C

FMC

Agregue el código de inicialización de SDRAM en el programa principal:

#define REFRESH_COUNT        677
#define SDRAM_TIMEOUT                            ((uint32_t)0xFFFF)
#define SDRAM_MODEREG_BURST_LENGTH_1             ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_LENGTH_2             ((uint16_t)0x0001)
#define SDRAM_MODEREG_BURST_LENGTH_4             ((uint16_t)0x0002)
#define SDRAM_MODEREG_BURST_LENGTH_8             ((uint16_t)0x0004)
#define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL      ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED     ((uint16_t)0x0008)
#define SDRAM_MODEREG_CAS_LATENCY_2              ((uint16_t)0x0020)
#define SDRAM_MODEREG_CAS_LATENCY_3              ((uint16_t)0x0030)
#define SDRAM_MODEREG_OPERATING_MODE_STANDARD    ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000) 
#define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE     ((uint16_t)0x0200) 
void MX_SDRAM_InitEx(void)
{
    
    
  __IO uint32_t tmpmrd = 0;
  
  /* Step 1: Configure a clock configuration enable command */
  Command.CommandMode            = FMC_SDRAM_CMD_CLK_ENABLE;
  Command.CommandTarget          =  FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);

  /* Step 2: Insert 100 us minimum delay */ 
  /* Inserted delay is equal to 1 ms due to systick time base unit (ms) */
  HAL_Delay(1);
    
  /* Step 3: Configure a PALL (precharge all) command */ 
  Command.CommandMode            = FMC_SDRAM_CMD_PALL;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);  
  
  /* Step 4: Configure an Auto Refresh command */ 
  Command.CommandMode            = FMC_SDRAM_CMD_AUTOREFRESH_MODE;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 4;
  Command.ModeRegisterDefinition = 0;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);
  
  /* Step 5: Program the external memory mode register */
  tmpmrd = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_4          |\
                     SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL   |\
                     SDRAM_MODEREG_CAS_LATENCY_2           |\
                     SDRAM_MODEREG_OPERATING_MODE_STANDARD |\
                     SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;

  Command.CommandMode            = FMC_SDRAM_CMD_LOAD_MODE;
  Command.CommandTarget          = FMC_SDRAM_CMD_TARGET_BANK1;
  Command.AutoRefreshNumber      = 1;
  Command.ModeRegisterDefinition = tmpmrd;

  /* Send the command */
  HAL_SDRAM_SendCommand(&hsdram1, &Command, SDRAM_TIMEOUT);
  
  /* Step 6: Set the refresh rate counter */
  /* Set the device refresh rate */
  HAL_SDRAM_ProgramRefreshRate(&hsdram1, REFRESH_COUNT); 
}

QUADSPI

DMA2D

Ajuste de
parámetros básicos de LCDC LTDC

Ajuste de parámetros de capa
Inserte la descripción de la imagen aquí
CRC

NVIC

Necesidades de middleware

Configuración de parámetros básicos

Tareas y colas

Inserte la descripción de la imagen aquí
Paquete de software TouchGFX

Necesidades de la capa de aplicación

UART
UART4

Configurar el árbol del reloj

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Configurar el proyecto y generar el proyecto

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Ejecute TouchGFX Designer

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Prueba la interfaz de usuario básica de la pantalla TouchGFX

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/sinat_31039061/article/details/108599356
Recomendado
Clasificación