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
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
Cree un proyecto de interfaz de usuario TouchGFX desde cero
Seleccione el modelo de MCU (STM32H750XBH6)
|
|
Seleccionar y configurar componentes (sistemas, periféricos, middleware)
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
CRC
|
|
NVIC
|
|
Necesidades de middleware
Configuración de parámetros básicos
|
|
Tareas y colas
Paquete de software TouchGFX
|
|
Necesidades de la capa de aplicación
UART
UART4
|
|
Configurar el árbol del reloj
Configurar el proyecto y generar el proyecto
Ejecute TouchGFX Designer