Tutorial de desenvolvimento TouchGFX

Índice

TouchGFX Designer Overview

No último artigo, apresentamos como instalar o software TouchGFX. Aqui, apresentamos como usar o STM32CubeMX para transplantar o TouchGFX para a placa de desenvolvimento STM32 F429IGT6 e acionar a tela RGB.

Como transplantar o projeto TouchGFX usando o STM32CubeMX?

Neste tutorial, nosso objetivo é portar o projeto TouchGFX para a placa de desenvolvimento STM32.

Ferramentas necessárias

  • Hardware
  1. Placa principal/placa de desenvolvimento baseada no MCU STM32: STM32F429IGT6;
  2. Um monitor com interface RGB, resolução recomendada: 800*480;
  3. ST-Link ou depurador compatível;
  • Software
  1. ARM Keil uVision5 (versão usada neste artigo: V5.38.0.0);
  2. STM32 CubeMX (versão usada neste artigo: 6.9.2);
  3. Pacote de software TouchGFX Generator (versão usada neste artigo: V4.22.1).

Configuração do STM32CubeMX

O STM32CubeMX é usado principalmente para configurar a camada de abstração de hardware e a camada de middleware no diagrama da estrutura de aplicativos do TouchGFX.

Iniciar um novo projeto:

Start a New Project from MCU STM32F429IGT6
Start a New Project from MCU STM32F429IGT6

Relógio do sistema RCC: Relógio externo de alta velocidade (HSE) configurado como um oscilador de cristal externo.

RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator
RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator

Como precisamos usar o sistema operacional FreeRTOS, é recomendável alterar a fonte da base de tempo da biblioteca HAL de SysTick para outros temporizadores. Após selecionar o temporizador, o sistema configurará automaticamente o TIM, que está definido como TIM7 aqui.

SYS Mode and Configuration_Setting Timebase Source as TIM7
SYS Mode and Configuration_Setting Timebase Source as TIM7

Configurações FMC: Configure a SDRAM externa como memória de vídeo do RGBLCD e configure os parâmetros e pinos de acordo com o seu próprio hardware.

FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration Configure the SDRAM parameters
FMC Mode and Configuration_Configure the SDRAM parameters

Configurações DMA2D: Ative o DMA2D, configure o modo de cor para RGB565 e habilite as interrupções DMA2D.

Activate DMA2D Mode and Configure Color Mode as RGB565
Activate DMA2D Mode and Configure Color Mode as RGB565
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt

Configurações dos parâmetros LTDC: Configure os parâmetros LTDC de acordo com os parâmetros de tela utilizados.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

Configurações da camada LTDC: Escolha usar a camada 1 aqui e defina o endereço do buffer de quadros como o primeiro endereço do SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

Configurações dos pinos GPIO do LTDC: Configure o GPIO de acordo com as conexões dos pinos da placa de desenvolvimento específica. Observe que a velocidade de saída deve ser definida como "Muito alta" e a interrupção do LTDC deve estar habilitada.

LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration NVIC Settings Enabled Interrupt
LTDC Mode and Configuration_NVIC Settings_Enabled Interrupt

Configuração da árvore do relógio: O tamanho do relógio de pixels é 1056*705*60/1024/1024=42M, o valor máximo do relógio de pixels é 42M, aqui está definido para 33M (1056 é a largura total, 705 é a altura total).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Configurações do pino da luz de fundo: A placa de desenvolvimento neste artigo usa PB5 como pino da luz de fundo e está configurada para saída push-pull.

GPIO Mode and Configuration_Configure PB5 as Backlight Pin
GPIO Mode and Configuration_Configure PB5 as Backlight Pin

Ativar CRC: O TouchGFX precisa ativar a função CRC.

Activate CRC Mode
Activate CRC Mode

Ative o sistema FreeRTOS: defina o tamanho da pilha para 32768 bytes e o restante para as configurações padrão; e adicione uma tarefa TouchGFX.

FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Add Tasks and Queues
FREERTOS Mode and Configuration_Add Tasks and Queues

Selecione o pacote de componentes Touchgfx.

Software Packs_Select Components
Software Packs_Select Components
Software Packs Component Selector TouchGFX Generator
Software Packs Component Selector_TouchGFX Generator

Configurações dos parâmetros TouchGFX: selecione buffer duplo, RGB565 e ative a aceleração DMA2D.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Gerente de projeto: definir o nome do projeto, a localização do projeto e o vinculador. (O tamanho mínimo da pilha é definido como 0X800.)

Project Manager_Setting Project Name, Location, Linker
Project Manager_Setting Project Name, Location, Linker

Gerar código do projeto: Após o STM32CubeMX gerar o projeto, não abra o projeto Keil. (Se você compilar o projeto Keil neste momento, aparecerá um grande número de erros.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

TouchGFX Designer

Após a geração do projeto Keil, o código é gerado com sucesso em:

E:/STM32 Project/STM32F429/TouchGFX FreeRTOS

STM32 Project_Open the Application Template.touchgfx
STM32 Project_Open the Application Template.touchgfx

Encontramos este caminho. Existe ApplicationTemplate.touchgfx.part no diretório TouchGFX. Clique para abrir o TouchGFX Designer e projetar a interface do usuário.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

Depois de arrastar e soltar alguns controles e clicar em Gerar Código para gerar o código, o código relacionado ao TouchGFX será automaticamente adicionado ao projeto.

Compilação MKD-ARM Keil

Adicione os arquivos fonte do driver SDRAM e os arquivos de cabeçalho.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Adicione a função de inicialização SDRAM na função MX_FMC_Init() do arquivo fmc.c para acionar o chip de memória externo.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Ative a luz de fundo da tela no arquivo touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Adicione a tarefa correspondente e adicione a função de processamento TouchGFX.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Baixar e testar

Após a compilação estar correta, faça o download para a placa de desenvolvimento.

Download the project code to the STM32F429 development board
Download the project code to the STM32F429 development board

Se o TouchGFX for transplantado com sucesso, a tela da placa de desenvolvimento exibirá a interface projetada no TouchGFX Designer.

TouchGFX was successfully ported to the STM32F429 development board
TouchGFX was successfully ported to the STM32F429 development board

Sobre o autor

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Compartilhar

Postagem recomendada

Precisa de ajuda?

Rolar para cima

Cotação instantânea

Instant Quote