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
- Placa principal/placa de desenvolvimento baseada no MCU STM32: STM32F429IGT6;
- Um monitor com interface RGB, resolução recomendada: 800*480;
- ST-Link ou depurador compatível;
- Software
- ARM Keil uVision5 (versão usada neste artigo: V5.38.0.0);
- STM32 CubeMX (versão usada neste artigo: 6.9.2);
- 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:
Relógio do sistema RCC: Relógio externo de alta velocidade (HSE) configurado como um oscilador de cristal externo.
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.
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.
Configurações DMA2D: Ative o DMA2D, configure o modo de cor para RGB565 e habilite as interrupções DMA2D.
Configurações dos parâmetros LTDC: Configure os parâmetros LTDC de acordo com os parâmetros de tela utilizados.
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.
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.
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).
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.
Ativar CRC: O TouchGFX precisa ativar a função CRC.
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.
Selecione o pacote de componentes Touchgfx.
Configurações dos parâmetros TouchGFX: selecione buffer duplo, RGB565 e ative a aceleração DMA2D.
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.)
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.)
TouchGFX Designer
Após a geração do projeto Keil, o código é gerado com sucesso em:
E:/STM32 Project/STM32F429/TouchGFX FreeRTOS
Encontramos este caminho. Existe ApplicationTemplate.touchgfx.part no diretório TouchGFX. Clique para abrir o TouchGFX Designer e projetar a interface do usuário.
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.
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.
Ative a luz de fundo da tela no arquivo touchgfxhal.cpp.
Adicione a tarefa correspondente e adicione a função de processamento TouchGFX.
Baixar e testar
Após a compilação estar correta, faça o download para a placa de desenvolvimento.
Se o TouchGFX for transplantado com sucesso, a tela da placa de desenvolvimento exibirá a interface projetada no TouchGFX Designer.



