Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I am trying to flash the STM32H753I-EVAL-2 board with a .hex file generated from STM cube IDE version 1.14.0. The code is build without error, but while loading it using the STMCube Programmer, I am getting the following errors:Error: Failed to download Segment [1]These are the options that I have selected while starting the programming : External Loader selected: M29W128GL_STM32H743I_EVALKIndly help.
Im getting hardfault at 0x817c364 address and can not debug where exactly hardfaults and why because no source available:I moved my heap to external SDRAM and it started hardfault at this function, maybe someone knows why? and how can I debug it if function not exist?Im using STM32H743ZIT6 and IS42S16400J-6TLI sdram.
I am looking for a .ioc file to jumpstart a project using GFX02Z with a nucleo-f767zi board.Can anyone help?Thanks in advance!sesh
Hi everyone, I'm experiencing a very frustrating issue with TouchGFX Designer version 4.25.0. Whenever I click "Generate Code", the process hangs for several minutes (up to 5 minutes) at the step:make -f simulator/gcc/Makefile assets -j8. This used to work quickly in the past with the same version on the same PC, but the issue suddenly started recently without any apparent changes.I'm running Windows 11, and this problem affects all projects, even the official TouchGFX examples. Here’s what I’ve tried so far (none of which helped): Disabled antivirus and security software completely Completly remove and reinstall TouchGFX Designer Run the Make command manually from the TouchGFX environment terminal – the issue presist Tested the same project on another (slower) PC – and it works fine there I use TouchGFX on a daily basis, so this issue is really slowing down my workflow. Has anyone else experienced this?Any advice would be highly appreciated! Best regards,Jure
Good evening.1) Can I public my personal project on the Github, with the source code which has been generated in the TouchGFX Designer (like a template project or example)? Are there any licensing issues with it?2) Can I use the GPL-v3.0 license for my project?
Hello,I am using an STM32F769I-DISCO board to implement USB HS in my TouchGFX project, but it is not working as expected. I have already tested USB functionality with FreeRTOS CMSISv2 without TouchGFX, and it works fine. However, when I try to run both TouchGFX and USB HS host (MSC) together, the application state remains stuck at APPLICATION_START when the USB disk is connected and never make transition to APPLICATION_READY.I have tried adjusting the priorities of the USB and TouchGFX tasks and increased the stack size for the USB task, but the issue persists.Any suggestions to help get both working together properly would be greatly appreciated ?Best regards.
Hi, i would need information about setLineSpacing (int16 space) method in textarea widget.Documentation says that it's used for increasing space between lines, but the parameter "space" defines the space in pixel or other unit measurement ?Thanks a lot anyone can help me
I purchased the NUCLEO-L476RG and X-NUCLEO-GFX01M2 boards and connected them together.I downloaded the STM32L476 LCD Example project (I think I found in X-CUBE-DISPLAY v3.0.0 projects), compiled and loaded the code onto the NUCLEO-L476RG. The example worked great with a couple minor changes like HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin).The provided images (.H const char arrays) displayed correctly and the text strings with various size fonts worked as well. Text strings are displayed at x/y position with selected color and background color. But when text strings are positioned over an image, there is no way to make the text character background transparent using the supplied evaluation code. I tried using the different layers of the Nucleo-GFX01M2, but only one default layer seems to be supported by the supplied software driver. See "SetLayer" below.It seems the STM32L476RG eval board cannot support two graphic layers for the Nucleo-GFX01M2, or STM did not bother
Post edited by ST moderator to be inline with the community rules especially with the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code Everything works fine when using the GNU compiler. However, when using the ARM V6 compiler,The touchGFX program cannot automatically run. The reason is that the printf statement was used in the touchgfx library. In ARM V6 C++ Standard Library, The printf IO is redefined to breakpoint instruction. So the program cannot run automatically when using touchgfx library in KEIL. Solutions: Retargeting printf() /* Defining __FILE_INCOMPLETE as 1 allows compilation of __FILE with * a strict ANSI C standard without conflict with stdio.h. */ #define __FILE_INCOMPLETE 1 #include <stdio.h> struct __FILE { int handle; /* Whatever you require here. If the only file you are using is */ /* standard output using printf() for debugging, no file handling */ /* is requi
HI all,I have a custom board composed by an stm32h743 and 2 QSPI memory (2x 16MB) with different CS. The proejct uses only the first memory to access the graphic contents and doesn't use the second memory.For this reason, I want to use the second memory to store new text and graphic contentsIs it possible to share the external QSPI memory with another task to write data on QSPI while touchgfx is running?Is it possible to stop Touchgfx_task for the time I need to read or write into the second memory?There is a more elegant way to do it? thanks
I have TouchGFX UI running on STM32H7. Only with one screen there is an issue, fonts gets distorted. What could be the reason for this?
I have a multi-language graphics project which requires the use of characters beyond the standard ASCII set. I have not found a working method to convert C++ wstring to TouchGFX::Unicode. I have attempted the following: Unicode::strncpy(txtTitleBuffer, headerText.c_str(), buf_size1); //No matching funtions...Unicode::strncpy(txtTitleBuffer, headerText, buf_size1); //No matching funtions... Unicode::snprintf(txtTitleBuffer, buf_size1, "%s", headerText.c_str()); //Compiles without error but only shows 1st character.Unicode::snprintf(txtPasswordTitleBuffer, buf_size1, "%s", headerText); //Compiles without error but only shows ??? which is the default undefined font character. If possible I would like to stay with the standard C++ type for the strings and convert as it is about to be displayed as manipulating TouchGFX::Unicode is a bit clunky.
Hi,I have a project derived from the demo6 from ST on the STM32U5G9J-DK1 devkit, where I want to display SVG images. The only difference is that the rounded display of the original kit has been substituted with another rounded display of the same resolution (480x480 pixels) but smaller. The PCB of the display is then different as well as the display driver chip which is driven through MIPI-DSI commands (and not using video mode of MIPI-DSI like the original demo is). I'm using latest version of TGFX 4.25.0.All the subdemos of this demo6 project are working the same as on the original display, but not the SVG subdemo. All the .SVG images of this specific sub demo, which should animate and start bouncing on the screen, are simply not rendered at all. I only see the background image which is a .PNG file. And I can come back on the main screen as the touch display is working.I tried to strip down this demo6 project and display a simple background .PNG image and on top of this last, some .S
Hi,I’d like to terminate the build process, but pressing F7 causes GfxDesigner(4.24.1) to crash.2025-10-17 13:46:51,280 [1] WARN TouchGFXDomainModel.Texts.FontGetter: font already added. (path: HPSimplified_LtIt.ttf, name: HPSimplified_LtIt 2025-10-17 13:46:51,280 [1] WARN TouchGFXDomainModel.Texts.FontGetter: font already added. (path: HPSimplified_Rg.ttf, name: HPSimplified_Rg 2025-10-17 13:48:35,702 [26] ERROR TouchGFXDesigner.App: Invalid class System.Management.ManagementException: Invalid class at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode) at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext() at TouchGFXApplication.Executors.Executor.Cancel() at TouchGFXApplication.MonitorCommands.RunSimulatorCommand.Cancel() at TouchGFXApplication.TouchGFXApplication.<CancelCompile>b__38_0() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object
Hello everyone,I am experiencing a HardFault on an STM32F746G-DISCO board while working with TouchGFX. The issue seems to be related to code automatically generated by the TouchGFX Generator in STM32CubeMX.The fault occurs when my application tries to set text on a TextArea widget. The debugger stops inside the HardFault_Handler, and the call stack clearly indicates the issue originates from the setTypedText() function chain.Here is the relevant part of the call stack from the debugger:HardFault_Handler()touchgfx::TextArea::getTextWidth()touchgfx::TextArea::resizeToCurrentText()touchgfx::TextArea::setTypedText()... (my application code, which was generated by the generator)It seems that a call to setTypedText(), which is part of the generated code, is leading to the HardFault. I suspect this might be caused by an uninitialized TextArea object or a configuration issue within the generator, but I'm having trouble pinpointing the exact cause.Has anyone encountered a similar issue with cod
Hello,I am working on a project using the STM32F429I-DISC1 board. This project is part of my part-time job and will also serve as my university thesis. I’ve been working on it for about a month, but I’ve run into some issues I can’t solve.My goal is to make the board function somewhat like an oscilloscope (Gaussmeter) — it doesn’t need to be perfectly precise.I’m sampling at 10 kHz and storing samples in a buffer of size 168 (since 10,000 / 60 ≈ 167.6). Every handleTickEvent() (which runs at 60 Hz), I send this buffer to a DynamicGraph.The problem is that it doesn’t behave correctly.In a previous version, I plotted one point per tick, which naturally skipped some samples but still displayed the sine wave correctly on the DynamicGraph, and the computed values were accurate.In this new version, I’m trying to buffer 168 samples and then plot them in a for loop, but the results are inconsistent:sometimes nothing is drawn,sometimes the same Y value repeats for many X values, and calculated
I just discover that the TouchGFX tool run only on Windows ...:(I do not use Windows and I have no plan to use it one day.Do you know if it run on Linux with Wine ?Thanks
I want to change the font at runtime for a TextAreaWithOneWildcard.I figured it would be as simple as:1. update the text in the wildcard buffer (previously set by calling setWildcardTextArea)2. call setTypedText( id ) where 'id' is a designer defined text entry that uses the predefined font I want to use (different to the one used for the TextArea in the designer)3. call invalidate()It seems that the string associated with the 'id' text entry takes precedence over the string I update in the wildcard buffer. I've tried calling in a different order with no success. Is this by design or a bug?I've seen a suggested workaround that uses multiple languages to define the same string but with different fonts. My application is multi-lingual so that's not an option.Why doesn't TextArea have support for selecting a font that is already defined in the application or am I missing something?Thanks
Hello,I am a beginner with TouchGFX. I created two screens with a slide transition and found some questions would like to confirm.1) Text brokenI found that when the B screen transitions to the A screen, the Big Text contains text broken during transition and is recoverable.CPU frequency = 280MHz (recoverable) (00:00:07, with 0.25 speed)video link: https://drive.google.com/file/d/1CLOdeWr4uZ_r9ffi9f0Zoa8mLxGHqC14/view?usp=sharingContains Black pixelsCPU frequency = 160MHz (irrecoverable)video link: https://drive.google.com/file/d/1GZGT-tRYJ5CKWq-NUqbRcbQ5Ftn7lW1n/view?usp=drive_linkText pixels always missing after transition How the CPU frequency influence this issue?Could it be fixed if using double buffer for TouchGFX? ---------------------------------------------------------------------------------------------------------------------------------------------------------2) Animation StorageAccording to the instructions, I should set a full-screen size buffer for th
My project is working as expected using the DSI_TE_EXTERNAL with a TE pin from the display.How to get the TE event via DSI? Is that default enabled?If I use "CmdCfg.AutomaticRefresh = DSI_AR_ENABLE;" then I get the interrupt to my callback. But timing is bad.Anyone solved the problem earlier?
I created a simple project back in May (simple - some buttons, temperature display) and mounted in a box (landscape/0 rotation).I went to reuse the display with a new TouchGFX project (same box) and it is flipped 180! When I load the old code, correct side up, new project in TouchGFX and it is upside down. I checked the forum and this isn't easy to do and requires extra code - how is this even possible? For reference, it is a fairly new STM32F469I-DISCO (blue) purchased in May of 2025. Old project - SDCARD/Headphone jack faces down.
Hello i'm using touch GFX with STM32H7RS-DK And i need to evaluate for a future product if display rotation is possible.I tried this implementation but drawCacheEnabled isn't reconize by software so i removed it and the widget is working but the screen flicker betwen 0 and 180° . Is there a more actual way of rotate a screen . // Force redrawing entire screen virtual void draw(Rect& rect) { if (drawCacheEnabled) { // Invalidate entire screen instead of requested rect. Rect r(0, 0, HAL::DISPLAY_WIDTH, HAL::DISPLAY_HEIGHT); Application::draw(r); } else { // Use original rect if we are *actually* drawing and not just invalidating. Application::draw(rect); } } Thanks
Hello All,I am working on touchgfx project where I had default __weak void TouchGFX_Task(void *argument) task which was working fine for GUI and touch.Later I have added other task for data transfer over uart1 using another task in main. Now the problem is the GUI task is showing only first screen and getting freeze, no touch detection and other task is sending data over uart (which is working fine). Does adding additional task causing the elimination of TouchGFX_Task, or do I need to make some more settings or changes to TouchGFX_Task to function normal ?
I am working with the STM32U5G9 board and I have some trouble when displaying applications As indicated in the tutorial (link below), I installed the 4 applications. I took the last ones from ST website.https://www.youtube.com/watch?v=OMeiG9jS-yk&list=PLnMKNibPkDnF9x-s1e-v9Wtvv-fB88VWA&index=1 CubeIDE is already installed since I work with TOF sensors quite regularlyHere are my application versions.CubeMx Version CubeIDE Version STM32CubeProgrammer TouchGFX (last one) In CubeMx, I add the TouchFX Generator After setting CubeMx, I followed the tutorial belowhttps://www.youtube.com/watch?v=NFljjd_vQGA&list=PLnMKNibPkDnF9x-s1e-v9Wtvv-fB88VWA&index=2With the configuration In TouchGFX Designer, I can simulate my application Unfortunately, in the CubeIDE step When I compile the project and upload the compiled application, nothing happens on the display (blank screen).From CubeIDE, I'm able to load the tutoria
Hi. While testing the animation, I noticed strange behavior in the Animated Image widget when using the RGB565 image format with compression.I'm using an STM32U599, LTDC/RGB24bit, the animation is started with a button.Immediately after startup, the widget area turns white with dots. I could understand this if it were some kind of limitation resulting from the compression. But...If the widget is placed in a Swipe Container widget, after changing the screen and returning, the white area disappears, and the animation executes correctly. What could be the cause? I'm concerned about compression, because in this case, the size difference is tenfold.I also want to know if there's an option somewhere to prevent the framebuffer from being placed in flash memory every time the project is generated? Currently, I add the "__attribute__ ((section (".noinit")));" parameter, but this has to be done every time the configuration changes...
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.