Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi Community,This is my first post and sincerely hope someone can offer any help or advise please.I am working with a new STM32H747-DISCO board and need to use the Tear Effect interrupt to synchronize DMA2D transfers with screen updates (to stop flickering on the MB1166 LCD). I've tried both of the examples available within the STM32 CubeH7 Firmware Package available in the link below. I believe this to be latest version and it adds support for the NT35510 LCD controller (thank-you @MOBEJ:(https://github.com/STMicroelectronics/STM32CubeH7/commit/1c84713102f8509deb79ae14db8dbb104c17c45e#diff-8a5b12f7040dfb560c495dc0a1213725ba939bf19d531dd1e97067b6a1a79ec0The two examples are /Examples/LCD_DSI/LCD_DSI_CmdMode_TearingEffect and /Examples/LCD_DS/LCD_DSI_CmdMode_TearingEffect_ExtPin. I have tried using the OTM8009A and NT35510 Controller drivers. Everything builds correctly but I cannot get the HAL_DSI_TearingEffectCallback() function to assert in main.c. All of the other exa
In my project, SD card was used to store the video, JPEG peripherals +DMA2D were used to convert the video format and finally displayed on the LCD screen, but only the first 4 frames could be converted each time, and then HAL_JPEG_DecodeCpltCallback could not be entered.While entering HAL_JPEG_DataReadyCallback all the time, the output address increases consistently and eventually exceeds the SDRAM size area, causing DMA access errors.The relevant documents refer to:STM32Cube_FW_H7_V1.8.0\Projects\STM32H743I-EVAL\Examples\JPEG\JPEG_DecodingUsingFs_DMAHere's my project.Thank you very much for your help here!
Hey ST Employees!as I start a new project using the TouchGFX Designer, i noticed that there is some helpful feature missing:At the moment it is not possible to set some global colors just as it is possible for texts. Especially when using multiple screens and containers which contain e.g. box-widgets for background colors it would be great to use pre-defined colors. A big advantage would be, that you are able to change a background color used many times by just changing the pre-defined color.Just a small suggestion on how to accommodate the color definition in the TouchGFX Designer :smiling_face_with_smiling_eyes:I would love to get some feedback!
Hi,the Nema API shipped with the latest TouchGFX release is missing the "nema_set_recolor_color" API call.Will there be an update or, even better, an official way to download the API documentation, library and headers without the need to download TouchGFX?
Greetings,I just migrated the latest TouchGFX version (4.24.0) and now I am getting a compile error: [build] ...../touchgfx_win/generated/simulator/src/mainBase.cpp:39:10: error: 'lcd' is not a member of 'HAL'; did you mean 'lcd'? You have to change HAL::lcd().setVectorFontRenderer(&vectorFontRendererImpl);totouchgfx::HAL::lcd().setVectorFontRenderer(&vectorFontRendererImpl); In to get rid of the compile error. Any chances to fix this issue?
HiI’m looking to use LVGL on a STM32H7 with LTDC for driving a 4.3”, 800x480, no-touch display with 16bit (RGB565) parallel interface.The ST document titled ’Out-of-the-box GUI Software (BSPs) available for STM32 display kits’ (link below) indicates that ‘out-of-the-box’ support for LVGL is available specifically for three development boards, namely NUCLEO-G071RB, STM32H7B3I-DK and STM32MP135F-DK.https://www.st.com/content/dam/ecosystems/stm32-gui/stm32-gui-development-tools-portfolio.pdfThough searching through STM32H7B3I-DK repository files (including BSP’s folders) I don’t find any LVGL related code (only some for TouchGFX).Do there exist an official ST code example for LGVL on a STM32H7, and where is it located? or else why are LVGL specifically marked for these three dev-boards in the document?I’m aware of the several H7 ports on LVGL’s github, but afaik these are not written by ST.-Pete
Using 4.24.0 Designer, I have a container which has a dynamic graph in it. The Dynamic Graph has Line content.When I generate the files I sometimes get errors due to the Line content not being created correctly;Severity Code Description Project File Line Suppression StateError C2208 'touchgfx::GraphElementLine': no members defined using this type (compiling source file ..\..\generated\gui_generated\src\containers\GenericGraphBase.cpp) Application touchgfx\generated\gui_generated\include\gui_generated\containers\genericgraphbase.hpp 46 The offending line is;dynamicGraph.addGraphElement();Also in the header file the element is not declared correctly;touchgfx::GraphLabelsY dynamicGraphMajorYAxisLabel;touchgfx::GraphElementLine ;touchgfx::PainterRGB565 Painter;EditBoxParameter Parameter_EB; If I remove the line content in the designer, then add it again and regenerate - it is generated correctly. Then sometime later it will go bad again. If I compare the touchgfx xml file between a go
Hi,where do I find a list of touch controllers supported by TouchGFX "out of the box" so I don't need to write any drivers? Thank you
Hello,ic want to add container dynamically at runtime. For example I want to create new containers an delete old once. My first try was to allocate an object on the heap an store the pointer in the class object. But if a add them to a container the chip hangs up.Is there anyone with experience in this field?Thank you for help.BW NPr
I'd like to create a dynamic set of screens, where variables determine what containers are visable. Has anyone done anything like this?For instance, will have a series of settings screens and based on those settings/variables, the screens will dynamically add or remove containers.
Hi I am luis.I'm testing TouchGFX and have a question.1. Create a custom board project with TouchGFX V4.22.1 Designer2. Move the STM32F769I_DISCO.ioc file in the project created above to the STM32CubeIDE folder in the project, then run STM32F769I_DISCO.ioc to additionally set IO and generate code.(below picture)3. And when I compile the above project with the STM32CubeIDE compiler, an error occurs. These errors are too numerous to be easily resolved. I would like to know what is the optimal way to set up additional IO after creating a project with TouchGFX V4.22.1 Designer.
Hi Folks,I'm using the STM32L4R9 DISCO Board where some additional hardware is attached to (via I2C bus). My TouchGFX version is 4.14.0 and I'm using the ChromArtDMA class instead of the class generated by CubeMX to have fast L8 bitmap painting which enables smooth scrolling of such L8 bitmaps (found here: https://community.st.com/s/question/0D50X0000BdgJZkSQM/is-the-l8argb8888-image-format-supported-for-shapes-widget-if-not-will-it-be-in-the-future).As long as I have no file transfers active, TouchGFX works perfectly well.But when a background task writes data (read from the additional hardware via I2C) to a file on the SD card (some 10s of KBs per second), the guiTask of TouchGFX blocks in a call to touchgfx::HAL::lockFrameBuffer. This problem can be reproduced at 100% of my test-cases. Only the time, until it happens, varies (from 0.x to 5s).From what I can see in the debugger, one call to unlockFrameBuffer was missing and thus lockFrameBuffer cannot continue and block the guiTask.W
Hello ST community,I am developing a user interface with touchGFX in STM32F769i-Disco and i have multiple screens,one the screens it contains button and when a button is pressed i execute a command such a control a ledThe issue when i switch another screen and return to the screen which contain the buttons, the buttons return to their initial state I am talking just for user interface. Although the command still active when i switched the screen led still on but the button on the screen show off.The question is : How to save the state of a button when i switched the screens.Thanks for help.
Hi ST Team,I have completed my first custom board using the STM32H753BIT6, using the H753-EVAL board as a reference. I need to test its external SRAM, SDRAM, Flash, and QSPI, as I have included all the memory components present on the EVAL board. I have chosen the 10.1 " Ronbo 1280x800 (MRG10112) RGB display for my project. but I've to do use another board for lvds or rgb.because I've no pin left in my 208 lqfp h753..so, can any one suggest which external memory is enough for handle 1280*800.@ 16bit.. or is using another MCU for other added sensors is possible to get result.Could you please advise on how to make TouchGFX compatible with this display? Is it possible to create a full GUI in the simulator and later adapt it to the actual display? Any guidance on the best approach to efficiently complete this project would be greatly appreciated.Thanks in advance.Best regards,jr_engr_mbed
I'm working on a custom STM32U5 board with TouchGFX. The board features an external NOR flash memory used for storing the ExtFlashSection (as documented here).In my project testing, I aim to display a simple black and white image with a transparent area. Initially, I configured TouchGFX Designer to place both the "Section" and "Extra Section" within the internal flash (IntFlashSection), and everything functioned as expected. However, my application necessitates storing media files in the external memory.To achieve this, I successfully linked the ExtFlashSection to the external NOR flash. Subsequently, I modified the positions of both the "Section" and "Extra Section" from IntFlashSection to ExtFlashSection.after compilation this my external memory:When running the code, a hard fault occurs. This is likely due to TouchGFX attempting to directly fetch data from external memory during the loading of the "Extra Section" data, instead of using the BlockCopy function.This is the Trace:And th
Hello, we are finding it necessary to modify generated files. We have a few different cases, but just taking the first example, we had to change generated/OSWrappers.cpp as the variant of FreeRTOS we're using has slightly different function names.Is there a system for dealing with situations like this?Thanks.
I follow the guidelines in this articlehttps://support.touchgfx.com/docs/development/scenarios/example-gpioand my Touchgfx program can react to a single hardware button pressed event.Now I need to add 1 more hardware button and calculate how long the user has been pressing a button in order to direct a user to the relevant setup screen.I have a few questions I would like to ask:1. The HAL class has a single pointer to a ButtonController-inherited class object: ButtonController* buttonController, does it imply that I need to write a single class to handle all pressed events of all hardware buttons?2. How often the method ButtonController::sample(uint8_t &key) is called andby which class?3. How should I calculate the duration of a button press with the current Touchgfx's classes (ButtonController for example) and methods?Thank you for your help.
I'm trying to build myself a TouchGFX projectThe project runs and builds correctly via TouchGFX Designer but I'm unable to compile it with VSCode (cmake, ninja gcc) [build] C:/TouchGFXProjects/Circle_UI/Middlewares/ST/touchgfx/framework/source/platform/hal/simulator/sdl2/OSWrappers.cpp: In static member function 'static void touchgfx::OSWrappers::initialize()': [build] C:/TouchGFXProjects/Circle_UI/Middlewares/ST/touchgfx/framework/source/platform/hal/simulator/sdl2/OSWrappers.cpp:24:24: error: 'atexit' was not declared in this scope [build] atexit(deinitialize); [build] ^ [build] [174/177] Building CXX object CMakeFiles/TouchGFX.dir/C_/TouchGFXProjects/Circle_UI/Middlewares/ST/touchgfx/framework/source/platform/hal/simulator/sdl2/HALSDL2_icon.cpp.obj [build] [175/177] Building CXX object CMakeFiles/TouchGFX.dir/C_/TouchGFXProjects/Circle_UI/Middlewares/ST/touchgfx/framework/source/platform/hal/simulator/sdl2/HALSDL2.cpp.obj [build] C:/TouchGFXProjects/Circle_UI/Middlewares/
Hi everyone. I am working on STM32G0B0 MCU and develop UI with touchGFX. I researched how to generate external loader for external NOR FLASH(MX25L6433F). I use SPI2 on MCU(SMT32G0B0). And edited relevant files. I applied all of steps on following links:https://blog.embeddedexpert.io/?p=2189Like W25Q FLASH Memory || Part 9 || External Loader in SPI Mode (youtube.com)Like External loaders for SPI flash: a "standard" version (youtube.com)I separately tested it. But xxx.stldr file is not working. STM32CubeProgrammer is unknown my STLDR file. I build without any problem. I checked that makefile under debug folder. There is an error that: fail-specified-linker-script-missing: @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.' @exit 2 warn-no-linker-script-specified: @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.' .PHONY: all clean dependents ma
Hello everyone, I am using TouchGFX 4.23.1 on STM32H750xx and I am experiencing this behaviour. I have a screen with multilple flexbuttons and each one of them has a callback setted when it is pressed. Everything works fine except I've noticed that the callback is called only after I release the button. So after reading TouchGFX's guidelines, I have tried the handleClickEvent method but then button's flexButtonCallbackHandler is not called. So those are the two methods: 1) void MyScreen::flexButtonCallbackHandler(const touchgfx::AbstractButtonContainer &flexButton) -> It works fine but it is called only after I release the button; 2) void MyScreen::flexButtonCallbackHandler(const touchgfx::AbstractButtonContainer &flexButton) + void MyScreen::handleClickEvent(const ClickEvent& evt) -> My application can sense immediately the touch in handleClickEvent but then flexButtonCallbackHandler is not called. So I am able to differentiate PR
I am using the STM32H735G-DK boardWhen i tried the Debugging at this file the code gets stuck. /* USER CODE BEGIN Header */ /** ****************************************************************************** * File Name : STM32TouchController.cpp ****************************************************************************** * This file is generated by TouchGFX Generator 4.19.1. ****************************************************************************** * @attention * * Copyright (c) 2022 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* USER CODE BEGIN STM32TouchController */ #include <STM32TouchController.hpp> #include <stm32h735g_discov
Hlo i have to make a temperature sensor in which i have to take input from Can netwrok and change the slide progressor to the value which should be indicated. can anyone help me in this task as i am new using this all things it willl be really appriciated
We are using the STM32U5A9J-DK with another display from an older development kit (STM32L4R9-DISCO). The display 390x390 is driven with the MIPI-DSI interface in adapted command mode. After a first full screen refresh, we are refreshing only portions of the screen (5 rectangles with different background colors). The rectangle in the middle is refreshed just after the background.As you can see on the picture, the inside is wrongly refreshed (double vertical line on the left). If we add a delay (1.5 ms) between changing the LTDC layer registers and the LTDC immediate register reload (LTDC_SRCR.IMR = 1), then the system was working as expected.We are wondering why we need to add this delay. It is annoying us, because of performance reasons.Got somebody the same experience? Any advice is welcome? buggy resultexpected result
Hello:I am looking for a fast way to add an array of data to a static graph without adding them one point at a time using addDataPoint(). I also don't care about the x values. They are just sequential. I want to update the entire graph at once and then refresh the display. Is there a way to do this?Thanks,Dan
Hello Everyone,I have a problem. I am doing some testing with an STM32f429I board. My project involves controlling several peripherals. Now what I would like to ask is, once I have created a TouchGFX graphic with all the interactions and various pages, how do I integrate it into my pre-existing project on CubeIDE without upsetting everything?I already have TouchGFX enabled in the software package. I would like to physically figure out how to move the graphic from the project that GFX creates for me to my own. Then I will figure out how to implement the functions for the interactions in the graphics.ThanksTranslated with DeepL.com (free version)
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.