Tutorial sullo sviluppo TouchGFX

Indice

TouchGFX Designer Overview

Nell’ultimo articolo, abbiamo introdotto come installare il software TouchGFX. Qui, introduciamo come utilizzare STM32CubeMX per trapiantare TouchGFX sulla scheda di sviluppo STM32 F429IGT6 e pilotare lo schermo RGB.

Come trapiantare un progetto TouchGFX utilizzando STM32CubeMX?

In questo tutorial, il nostro obiettivo è portare il progetto TouchGFX sulla scheda di sviluppo STM32.

Strumenti richiesti

  • Hardware
  1. Una scheda core/di sviluppo basata su MCU STM32: STM32F429IGT6;
  2. Un display con interfaccia RGB, risoluzione consigliata: 800*480;
  3. ST-Link o debugger compatibile;
  • Software
  1. ARM Keil uVision5 (versione utilizzata in questo articolo: V5.38.0.0);
  2. STM32 CubeMX (versione utilizzata in questo articolo: 6.9.2);
  3. Pacchetto software TouchGFX Generator (versione utilizzata in questo articolo: V4.22.1).

Configurazione STM32CubeMX

STM32CubeMX è utilizzato principalmente per configurare il livello di astrazione hardware e il livello middleware nel diagramma del framework dell’applicazione TouchGFX.

Avvia un nuovo progetto:

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

Sistema di clock RCC: clock esterno ad alta velocità (HSE) configurato come oscillatore a cristallo esterno.

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

Poiché dobbiamo utilizzare il sistema operativo FreeRTOS, si consiglia di modificare la sorgente Timebase della libreria HAL da SysTick ad altri timer. Dopo aver selezionato il timer, il sistema configurerà automaticamente TIM, che è impostato su TIM7 qui.

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

Impostazioni FMC: configura SDRAM esterna come memoria video di RGBLCD e configura parametri e pin in base al tuo 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

Impostazioni DMA2D: attiva DMA2D, configura la modalità colore su RGB565 e abilita le interruzioni 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

Impostazioni dei parametri LTDC: configura i parametri LTDC in base ai parametri dello schermo utilizzati.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

Impostazioni del livello LTDC: scegli di utilizzare il livello 1 qui e imposta l’indirizzo del frame buffer sul primo indirizzo di SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

Impostazioni dei pin GPIO LTDC: configura i GPIO in base alle connessioni dei pin della scheda di sviluppo specifica. Nota che la velocità di output deve essere impostata su “Very High”; e l’interruzione LTDC deve essere abilitata.

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

Configurazione dell’albero di clock: la dimensione del clock di pixel è 1056*705*60/1024/1024=42M, il valore massimo del clock di pixel è 42M, qui è impostato su 33M (1056 è la larghezza totale, 705 è l’altezza totale).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Impostazioni del pin della retroilluminazione: la scheda di sviluppo in questo articolo utilizza PB5 come pin della retroilluminazione ed è impostato su output push-pull.

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

Attiva CRC: TouchGFX deve abilitare la funzione CRC.

Activate CRC Mode
Activate CRC Mode

Attiva il sistema FreeRTOS: imposta la dimensione dell’heap su 32768 byte e il resto sulle configurazioni predefinite; e aggiungi un task 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

Seleziona il pacchetto componenti Touchgfx.

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

Impostazioni dei parametri TouchGFX: seleziona il double buffering, RGB565 e attiva l’accelerazione DMA2D.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Project Manager: impostazione del nome del progetto, della posizione del progetto e del linker. (La dimensione minima dello stack è impostata su 0X800.)

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

Genera il codice del progetto: dopo che STM32CubeMX genera il progetto, non aprire il progetto Keil. (Se compili il progetto Keil in questo momento, apparirà un gran numero di errori.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

TouchGFX Designer

Dopo che il progetto Keil è stato generato, il codice è stato generato correttamente sotto:

E:/STM32 Project/STM32F429/TouchGFX FreeRTOS

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

Troviamo questo percorso. C’è ApplicationTemplate.touchgfx.part nella directory TouchGFX. Fai clic per aprire TouchGFX Designer per progettare l’UI.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

Dopo aver trascinato e rilasciato alcuni controlli e aver cliccato su Genera codice per generare il codice, il codice relativo a TouchGFX verrà aggiunto automaticamente al progetto.

Compilazione MKD-ARM Keil

Aggiungere i file sorgente e i file di intestazione del driver SDRAM.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Aggiungere la funzione di inizializzazione SDRAM nella funzione MX_FMC_Init() del file fmc.c per pilotare il chip di memoria esterna.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Accendere la retroilluminazione dello schermo nel file touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Aggiungere la task corrispondente e aggiungere la funzione di elaborazione TouchGFX.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Scarica e Testa

Dopo che la compilazione è corretta, scaricala sulla scheda di sviluppo.

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

Se TouchGFX è stato trapiantato correttamente, lo schermo della scheda di sviluppo visualizzerà l’interfaccia progettata in TouchGFX Designer.

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

Iscriviti

Unisciti alla nostra lista di iscritti per ricevere aggiornamenti mensili sul blog, notizie tecnologiche, casi di studio. Non invieremo mai spam e potrai annullare l’iscrizione in qualsiasi momento.

Informazioni sull'autore

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.

Hai bisogno di aiuto?

Torna in alto

Instant Quote