cancel
Showing results for 
Search instead for 
Did you mean: 

Integrate your own code with TouchGFX-created code

Arash_Tah
Associate

Hi everyone

I am looking for a tutorial on: how to integrate your code in TouchGFX with some used case examples such as ON/OFF control of an LED or sending data over serial port to Putty terminal on PC

I am using the following Board:

STM32F469I-DISCO

7 REPLIES 7
mathiasmarkussen
ST Employee

Hello,

Tutorial 7: Creating an Application for TSD knob display | TouchGFX Documentation uses both LEDs and UART communication. You can follow that guide and inspect the project to see how the hooks to use the hardware is set up.

You can also find some examples of how to do things like that as board specific demos in TouchGFX Designer, although none of them are for your particular board:

mathiasmarkussen_0-1763469837448.png

 

Thanks mathias markussen 

I appreciate your help, I'll take a look

kind regards 

Hello, my favorite ST engineer!
I’m a junior developer, and I have an STM32F469-DISCO board. I’d like to learn how to create my own code and build a complete project by myself.
However, the TouchGFX examples feel a bit messy. Where should I start and how should I study the whole pipeline—from QuadSPI and FMC, through LTDC, all the way to DSI-video?

mathiasmarkussen
ST Employee

The board bringup documentation is a good place to start:

Board Bring Up Introduction | TouchGFX Documentation

In general, TouchGFX relies on a way to read assets and display them on a screen, and it is up to the user to supply the means to that. The source of assets would usually be flash. If the flash is Q/O/HSPI, it will usually be memory mapped, in which case it is just read directly. Alternatively there is an option to supply a data reader to read, for example, normal SPI flash or EMMC.

Drawing on the screen is usually done in a framebuffer or two. If the LTDC is used to send data to a parallel RGB or DSI screen, code is generated to handle the framebuffers automatically. For DSI video mode and parallel RGB, this is usually enough, but for DSI a little custom code may need to be added.

For screens with SPI, FMC or other interfaces, it is up to the user to tranfer the pixels. This will usually be done using DMA, so the system is free for other tasks, like rendering the upcoming frame. For low-bandwith displays with internal frame memory, it is also possible to use a partial framebuffer that just updates the parts of the screen that changes from frame to frame, and does not hold the entire framebuffer in memory.

I hope this clears up where to start, at least. Since we already supply a Board Setup for that board, you can take inspiration from there. I would advise not to spend too much time on your own on the DSI stuff, it's a pretty complicated protocol that is very hard to debug.

 

Thanks! If I have already configured LTDC, DSI-Video, and TouchGFX in STM32CubeIDE, do I still need to write any code myself to make TouchGFX use the DSI interface?

Not to make TouchGFX use the interface, it will send the framebuffer using LTDC, but the display needs to be initialized by sending a bunch of commands. 

You interface your TouchGFX GUI with your application using the model in the model tick.
In the tick your model can send data to and receive data from screens and send data to and get data from your application.
Model is in C++. If your application is in C you need to declare shared functions and shared global variables as extern "C".

Kudo posts if you have the same problem and kudo replies if the solution works.
Click "Accept as Solution" if a reply solved your problem. If no solution was posted please answer with your own.