Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I have :STM32U5G9J-DK2Windows 10STM32CubeIDE 1.7.0TouchGFX 4.23.0 installed in STM32CubeIDE with helps/manage embedded software packageTouchGFX designer 4.23.0 Sometimes when I generate the code from the .ioc, after having made a modification in the configuration,compilation errors appears with the filesnema_hal.cTouchGFXConfiguration.cpplocated in Application/User/TouchGFX/target/generatedIt seems to be a problem with GPU2D.After the first generation of the files with Designer, it does work without any problem.I can make some modifications in the .ioc and generate the code but after a while I have compilations errors, always with those 2 files, even if I have only add a GPIO_Output.I have tried some things like regenerate code in Designer and STM32CubeIDE,delete some directories and regenerate code in Designer and STM32CubeIDE, butimpossible to repair those errors.Is this a known issue ?I have searched on the forum but nobody seems to have the same problem than me.&nb
Hi GFX team,GFX auto generates Typography/TypographyFontIndex structs in "\generated\fonts\include\fonts\ApplicationFontProvider.hpp" struct Typography { static const touchgfx::FontId DEFAULT = 0; }; Could you consider adding a tag that would alias type of struct members ie: struct Typography { using type_t = touchgfx::FontId; static const touchgfx::FontId DEFAULT = 0; }; This would allow to write eg funtion with Typography as a parameter: void functUsingTypography ( Typography::type_t tpg ); Thanks
Hi everyoneI’m looking for more design inspiration for a TouchGFX GUI especially for button layouts.Does anyone have a tip where I can find suitable layouts (besides the TouchGFX Stock)? Is there a library for this, or maybe a community site?Thanks for your help.
I have four languagese/translation with their translations in TouchGFX DesignerIs there a way to reorder them? I would like to have IT GB ESP FR
have a STM32F429I-DISCO board, start to a new touchgfx project from cubeide,run part file to completed touchgfx setup, cubeide compile project OK, debugging -> white screen! want to konw how to setup LTDC(double buffer -> by address, by allocate single buffer ->by address, by allocate)
Hi, I am using Touch GFX 4.26.0 and the EWARM9 compiler.It was announced that libcpp support was available from 4.25.0 onwards.I have confirmed that IAR9.x\touch_core_libcpp.a for cortex-m7 is supported. (STM32H7)However, I cannot build touch_core_libcpp.a for other cores, such as cortex-m33(STM32U5).As a temporary measure, I am using cortex-m7\IAR9.x\touch_core_libcpp.a for cortex-m33.Could there be a mistake in the compile switch when generating the library?I had the same issue with 4.25.0, and was hoping it would be fixed in 4.26.0, but it wasn't.エラー[Li009]: runtime model conflict: Module Font.o(touchgfx_core_libcpp.a) specifies that '__CPP_Library' must be 'DLib', but module AnalogInThread.o has the value 'libc++'
Hello All, I am working on the touchgfx project and have an application where I have created some screens and performing the different operations while button pressed.I am writing and reading the data content to external EEPROM, eg, some 10-15 parameters while button is pressed and reading it while other button is pressed. Before adding the Eeprom operation My Screens and operations were working fine and fluently, but after adding the code for writing the parameters to eeprom, the screens started to flicker between screens and the GUI is getting distorted. This is not normal behavior, Can any one suggest how shall I take care of it or what would be the best way to perform external Eeprom read write operations, without interrupting the GUI ? Regards,Shi
Hardware: STM32H743, SPI2, DMA, TFT: 320×320, RGB565, DMA transfer, MX correctly configured SPI2 interface, CRC, MPU, DMA, touchGFX component...When creating a new project in Designer, how do I select a template? Or guide me step-by-step to correctly start a HELLO interface. *This post has been translated from Chinese to comply with the ST Community guidelines.
Hello. I've been struggling to flash a simple TouchGFX application through the STM32 VS Code extension. I am using the Nucleo-G071RB dev board with the GFX01M2 display board. My project was initially created using the TouchGFX designer, then generated the CMake project in CubeMX. In VS Code, I added the SPI_FLASH section in STM32G071RBTX_FLASH linker file, and the cmake/touchgfx sub directory in the CMakeLists. This allowed me to build the project with no errors. However, whenever I try to flash, I get the following:I suspect this has something the do with the external flash. I am aware of an external loader file that you have to select in STM32CubeIDE, but I'm not too sure what would be the equivalent in VS Code.
Hello, I am developing a Touch GUI for STM32U5G9J-DK1 using Touch GFX [ 4.25.0]+STM32CubeIDE [1.19.0]. The Display is working correctly, but touch input is not gettingdetected. Following information will be helpful: 1. If any specific power/reset/initialization sequence is needed for the touchcontroller?2.Any reference project with verified touch support for STM32U5G9J-DK1?
Hello,I'm experimenting with the STM32N6570-DK, using the STM32N657X0H3Q MCU.The problem is that the framebuffer contents aren't being displayed by the LTDC.Not when the framebuffer is alocated into internal SRAM, and not when it's in external RAM.First I tried it in the Appl, but now I'm trying it in the FSBL.I've performed a RIF configuration to enable access to the LTDC, but that doesn't help.static void SystemIsolation_Config(void) { __HAL_RCC_RIFSC_CLK_ENABLE(); RIMC_MasterConfig_t RIMC_master = {0}; RIMC_master.MasterCID = RIF_CID_1; RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV; uint32_t SecPriv = GPIO_PIN_SEC | GPIO_PIN_NPRIV; /*RIMC configuration*/ HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC1, &RIMC_master); HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC2, &RIMC_master); /*RISUP configuration*/ HAL_RIF_RISC_SetSlaveSecureAttributes(RIF_RISC_PERIPH_INDEX_LTDC, RIMC_master.SecPriv); HAL_RIF_RISC_SetSlaveSecureAt
when I click and open the touchGFX, it can't access into main menu and list following message. how to fix it ? pls help .
Hi!Trying to get a TouchGFX working with Trustzone has shown itself to be quite the hassle. Although I have worked through a lot of issues already, my latest one has deemed real stubborn.When enabling GPU2D in a trustzone enabled project, the code throws a securefault when trying to use LCDGPU2D::fillbuffer(). My BBMPC is set correctly as the LTDC is able to create and change the framebuffer without issues. Due to the precompiled nature of the GPU2D library i am unable to figure out what buffer GPU2D is trying to access which is throwing this error.I'm running the STM32u5G7 on a custom board. Everything works in a non-trustzone project.My non-secure project has a flash offset of 0x20000 (starts at 0x08020000) and a RAM offset of 0x40000 (starts at 0x20040000). Everything before that is part of the secure code. Maybe GPU2D is trying to access a default address somewhere? Aside from this I've found other issues in my path to this point so far:TouchGFX Designer post generate target c
Hello,I’m working with the STM32H745I-DISCO board and I’d like to use the Cortex-M7 core for GUI (TouchGFX/LVGL) and the Cortex-M4 core for backend tasks like sensor data handling, communication protocols (CAN, UART, I2C), and preprocessing.I’m looking for guidance and resources on:Recommended project structure in STM32CubeIDE / CubeMX for dual-core applications.How to set up inter-core communication (M7 ↔ M4) (OpenAMP, shared memory, or mailboxes).Examples or reference projects where M7 is dedicated to GUI and M4 to background tasks.Any best practices for memory allocation (framebuffer vs shared RAM) and FreeRTOS usage across cores.If anyone has worked on a similar setup or can point me to example projects, tutorials, or documentation, that would be really helpful.Thank you!
uC – STM32U5G9NJH6Q Display – 720 × 720 (ST7703 panel) Display controller – ST7703 MIPI lanes – 2 lanes DSI Host Mode – Video Mode (DSI_VID_MODE_BURST) Pixel format – RGB888 Problem / Symptoms After the initial display setup (LP mode initialization sequence), the backlight turns ON, but no image is displayed on the LCD. I have verified that the MIPI DSI clock and data line waveforms are present and active on the scope — both lanes appear to be toggling correctly. Despite proper DSI signal activity, the panel remains blank (black screen), and there is no visible frame output from TouchGFX. What I have verified/working I can communicate with the display over DSI and run the initialization sequence (LP command mode) — panel responds, backlight comes on. LTDC timings & basic parameters match the panel spec and st7703.c values (see below). PHY frequency configured around panel-recommended range (450–510 MHz / VCO ~800 MHz–1 GHz). TouchGFX / display d
Hello,I'm trying to use the GPU2D on the STM32N6570-DK, with NemaGFX.However, the GPU hangs on random functions.Well actually every time the same funtions, but depending on the number of functions to be executed, so it seems it can only execute a limited number of functions, and the it hangs.And many of these doen't even complete the drawing of the shape. The nema_vg_draw_circle doesn't complete drawing the circle and hangs. When only drawing the rounded rectangle results in an incomplte draw and hang of the function: If I remove some functions, the app hangs on nema_cl_wait.I think it might be related to the buffer initialization in nema_hal.c, or that nema_hal.c contains other errors./* * File : nema_hal.c */ /* Includes ----------------------------------------------------------------- */ #include <stdlib.h> #include <string.h> #include "tsi_malloc.h" #include "nema_sys_defs.h" #include "nema_core.h" #include "nema_vg.h" #include "main.h" /* Include pl
Hello, I would like to know if there are any methods to load PNGs/JPGs from a USB for the stm32 (I am on stm32F7). I currently imported lodepng but, it seems the malloc used by it is way too large for the device. The png I am loading is relatively small, 185 x 43.unsigned err = lodepng_decode24(&img, &w, &h, file, fileSize); if(err) { return MEMORY_ERROR; }
I have been trying to update a wild caard text area.updateTarget will be called externally, value passed in will be 0-100I started calling the function with 0 -> 10 -> 20...etc incrementally.However whenever I passed the 100, the value will fallback to 0 and start again. This is the where the problem occursOnce I reached 100, and then the 0 will be displayed properly, but for later values there will be a "0" in the third character, even though I have checked the buffer is set properly.The pattern is 0 -> 10 -> 20 -> 30 ... -> 100 -> 0 -> 100 -> 20 -> 300 -> 40 -> 500...etcBelow is an exaple of the buffer being set to "30" in asciiBut the display is If I didnt trigger any screen update, after some time I can see there is a frame rendered (around per ~30s)And the the display is back to normal again It seems to be there is some kind of cache?Anyone has a similar issue? I am using the STM32U5G9J-DK2TouchGFX: 4.26 
Hi everyone,I am working on an STM32H7S78-DK with its built-in display and developing under Keil uVision 5. I am using the RTOS X-CUBE-AZRTOS-H7RS example with the WiFiEMW3080 module, specifically the following project:Repository/Packs/STMicroelectronics/X-CUBE-AZRTOS-H7RS/1.1.0/Projects/STM32H7S78-DK/Applications/NetXDuo/Nx_Iperf_wifi.Goal:I want to create a weather display project on the screen using STemWin.Current Status:- I tested two projects independently:1. WiFi project (with WiFiEMW3080): Works perfectly.2. Display project (with STemWin): Works perfectly.- I merged both projects and adapted the .sct file to define memory regions as follows:/********************************************************************************************/LOAD_FLASH 0x70000000 0x08000000 { ; load region size_regionER_ROM 0x70000000 0x08000000 { ; load address = execution address*.o (RESET, +First)*(InRoot$$Sections).ANY (+RO).ANY (+XO)}ER_ITCM 0x00000000 0x00010000 { ; ITCM (64 KB) - Critical code ex
Hi,I have a container with buttons, images and text (around 30).I would like to change the alpha from 255 to 128 of each widget inside the container.On the documentation, it says it it possible with container with FadeAnimator in Mixins :https://support.touchgfx.com/docs/development/ui-development/ui-components/containers/container#propertiesbut I think it is a mistake in the documentation.So, without this feature, what is the best way to change all the alpha value of each widget in a container ?If the function forEachChild (https://support.touchgfx.com/docs/api/classes/classtouchgfx_1_1_container#function-foreachchild) is recommended, can I have a link of an exemple program using this function or a zip file with a test program with this feature ?Regards,Sébastien
Dear all,Can you please help to point me to any of the repeat button implementation example?I have successfully implement the single button with plus and minus but the number target is too big and it is taking too many clicks to get to the target number. I would like to use the repeat button feature to achieve the goal that if the repeat button is holding, the setting will go faster and reach the goal.
HelloI have been trying to add multiple paths to my ADDITIONAL_INCLUDE_PATHS in simulator/gcc/Makefile, based on this thread: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/how-to-add-several-include-path-to-touchgfx-simulator/m-p/227349So my ADDITIONAL_INCLUDE_PATHS look like this now:ADDITIONAL_INCLUDE_PATHS := ${platform_path}/src \ ${platform_path}/src/config/PRODUCT \However trying to make this file results in the following terminal output:g++.exe: fatal error: no input files compilation terminated. /usr/bin/sh: line 2: c:TouchGFX4.25.0envMinGWmsys1.0SW_developmentplatformsrc: command not found /usr/bin/sh: line 2: c:TouchGFX4.25.0envMinGWmsys1.0SW_developmentplatformsrcconfigPRODUCT: command not found If I add all paths as their own as such:ADDITIONAL_INCLUDE_PATHS := ${platform_path}/src CONFIG_PATH := ${platform_path}/src/config/PRODUCT/ export ADDITIONAL_SOURCES ADDITIONAL_INCLUDE_PATHS ADDITIONAL_LIBRARY_PATHS ADDITIONAL_LIBRARIES CONFIG_PATH And update t
Hi, I have been using NemaGFX on STM32U5G9J-DK2 kit with no problems however my luck with the STM32H7S78-DK kit is different.1. The NemaGFX for this platform only seems to work with 32-bit framebuffers, not 24-bit ones. Or am I doing something wrong?2. The NemaGFX for this platform uses the beginning of the framebuffer as a sort of workspace. We see random dots at the beginning. I think I'm having trouble allocating buffers correctly.3. I can draw filled rectangles, but filled circles with 'nema_vg_draw_circle()' only show the edge slightly and produce small images in a sort of workspace at the beginning of the frame buffer.nema_vg_set_fill_rule(NEMA_VG_FILL_NON_ZERO); does not fill the shape, as it should.Well, 'nema_vg_draw_rect()' works fine with nema_vg_set_fill_rule(NEMA_VG_FILL_NON_ZERO).4. Many more graphics functions don't work properly on the STM32H7S78, but they all work fine on the STM32U5G9J, which one uses 24-bit framebuffers, while the STM32H7S78 can o
Hi,I'm developing a SW project in a WINSTAR display (MCU STM32F750) and using the STM SW (TouchGFX Designer, STM32CubeIDE and STM32CubeProgrammer).Until now, I design different screens and some parameters are saved and managed by means of the Model.cpp & Model.hpp.But now I need to save some values in the non-volatile memory because I need the screen starts with specific values stored.What I need to configure and add in the code (and where) to enable the writing and reading in non-volatile memory?Thanks in advance for your time :)Josep
I am using STM32F469I-DISCO interfaced to a custom display operating in DSI-Video Burst mode.I'm using TouchGFX, all compiles ok, however I am getting a HardFault_Handler error relating to TouchGFX::TextProvider as follows. The memory is organised as follows.I think the fault may relate to text object(s) with related wildcards that have been deleted from within TouchGFX designer. I am using TOUCHGFX V4.26.0 but had the same problem with V4.25.0
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.