cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX documentation feedback

Romain DIELEMAN
ST Employee

We wish to always improve our documentation. The best reviews and critics always come from the people that read it, so we would like to use this post to collect your thoughts and feedbacks.

Please share what you like, dislike, what you think is missing, etc ...

/The TouchGFX team

36 REPLIES 36

I ran into the same issues for my custom board. You are not dumb. I ended up creating the project in STM32CubeMX and then adding TouchGFX later. I was able to write a custom build script (using STM32CubeIDE headless build) and also a custom script for flashing (using STM32CubeProgrammer) and they both get called when clicking the program button in TouchGFX.

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.
nico23
Associate III

Overall the documentation is quite good.

I would add a section regarding how to set up VSCode to compile and debug the simulator as not everyone can use Visual Studio. VSCode is widely used worldwide (ESP has the whole toolchain builtin, for instance) so, ST could do the next step for their products

codebuk
Associate III

https://support.touchgfx.com/docs/api/classes/classtouchgfx_1_1_circle

The sample code is a bit confusing.

Does not work:

int x, y, r;
circle.getCenter(&x, &y); // Will return (1, 1)
circle.getRadius(&r); // Will return 0

 

Works:

short int x;
short int y;
short int r;
circle_level.getCenter<short int>(x, y); // Will return (1, 1)
circle_level.getRadius<short int>(r); // Will return 0
CommanderCloud
Associate II

https://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internal

stm32f7xx_it.c
void LTDC_IRQHandler(void)
{
  /* USER CODE BEGIN LTDC_IRQn 0 */
  /* USER CODE END LTDC_IRQn 0 */
  HAL_LTDC_IRQHandler(&hltdc);
  /* USER CODE BEGIN LTDC_IRQn 1 */
  HAL_LTDC_ProgramLineEvent(&hltdc,0);
  /* USER CODE END LTDC_IRQn 1 */
}

Sample code doesn't work -

HAL_LTDC_ProgramLineEvent(&hltdc,0);

shouldn't be in there.

I am developing an application using an external frame buffer so I hadn't looked too closely at this page for a frame buffer in internal RAM, however I think the need to re-enable the LCD interrupt once per frame is the same in both cases.

That said, I can't see what is wrong with the sample code? Could you be more specific please?  
My own code development for integrating a custom display with TouchGFX has been slow and I currently render a static screen so I haven't implemented this code (yet) but now it is drawn to my attention I am thinking of doing so.

Hello!

 

Sorry for not being specific. HAL_LTDC_ProgramLIneEvent is used in the HAL_LTDC_LineEventCallback function in TouchGFXGeneratedHAL.cpp. HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line) basically just sets LTDC->LIPCR equal to Line. LIPCR is used as a conditional in HAL_LTDC_LineEventCallback, and it needs to be set to a specific value as defined in that function. Setting it in the interrupt routine breaks the conditional and prevents this LineEventCallback from working properly, which breaks the Tick.

 

Kind regards, Cloud.

RobNewbury
Associate III

Great explanation, thanks.