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

Inscreva-se

Inscreva-se na nossa lista de assinantes para receber atualizações mensais do blog, notícias sobre tecnologia e estudos de caso. Nunca enviaremos spam e você pode cancelar a assinatura a qualquer momento.

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.

Precisa de ajuda?

Rolar para cima

Instant Quote