Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hey,I have my images stored compressed (ARGB8888) on NAND flash accessed via FileX. Not memory mapped, so I need to cache everything before starting the GUI.I noticed this in the Bitmap API docs:Bitmap::decompress — "This method is called by Bitmap::cache when required."So does that mean I just implement BlockCopy with FileX, call Bitmap::cache(), and it handles the decompression automatically? Does it allocate for the uncompressed size and deal with the temp buffers internally?Would save me a lot of headache if that's the case;Thanks!
Hello everyone:On touchgfx support website:https://support.touchgfx.com/docs/development/scenarios/touchgfx-on-gpu2d ,there is a demo of map using NeoChromVG,this is the demo videoSo,where can I get this demo project?
I am trying to interface STM32U5G7VJT6 with MT25QL128A using OCTOSPI1 in Quad SPI mode, but I still cannot store/run TouchGFX assets from external flash memory. Current configuration: Memory Type: Micron Device Type: Flash Device Size: 24 Clock Prescaler: 2 Clock Mode: Low Sample Shifting: Half Cycle Wrap Size: Not Supported Delay Block: Bypassed Screenshot attached.Could someone please check if I missed any important configuration like memory-mapped mode, linker settings, TouchGFX asset location, BSP/init sequence, or MT25QL128A command setup?
I have a TouchGFX (latest version) application using STM32H753 and an OLED with GRAM. Runs under Threadx.I found the development process quite complex but had no problem eventually building the project with all the subsystems apparently working properly.BUT....The very simplest part of the task I cannot complete. I want C code in a ThreadX Thread to initiate the redraw of the next frame in the single display buffer (after which the DMA would be initiated from the frame buffer to GRAM...). I need to access the OSWrappers.hpp in order to provide "Vsync" to TouchGFX which I can't do from "C". After days and days, I can assure you there is no apparent way to call the relevent C++ method from the C code within Threadx. In other words there is no 'hook' on the "C" side to make the function call. Any suggestions?None of the Google-search documentation on this subject makes any sense.Thank youGerry
Excuse me, how can I implement this kind of loadingI'm really at a loss for ideas. Please help me out, thank you
Hello ST Community,I am working on STM32H7B3LIH6Q with TouchGFX.I have successfully initialized the TFT RGB display on hardware, and the RGB test output is working properly. I created two screens in TouchGFX Designer, where pressing a touch button on Screen 1 should open Screen 2.This works correctly in the PC simulator, but on actual hardware the touch command/button press is not working. The display is visible, but touch input is not detected.I have attached the hardware output image and my touch enable/source code for reference.Could anyone please suggest what I should check in the hardware touch interface? Is the issue likely related to , BSP touch driver, I2C touch controller initialization, or touch coordinate mapping?Thank you,Vijaya.
What is the recommended procedure for adding source files (e.g. source1.c and source1.h) to a STM32CubeIDE project generated by TouchGFX? I assume I add them to one of the 'Core' directories, but I see multiple Core directories (root\STM32CubeIDE\CM7\Application\User\Core and root\CM7\Core). I see that adding my .h manually to root\CM7\Core\Inc works fine for the .h, but the IDE doesn't automatically pick up the .c if I place it in the corresponding root\CM7\Core\Src. If I place the .c in root\STM32CubeIDE\CM7\Application\User\Core, the .c file is accessible via the IDE, but the .h file is not found during compile.What is the proper procedure for adding new user C source files? My STM32CubeIDE is 2.1.1 and TouchGFX is 4.26.1. I'm targeting a Riverdi board with a STM32H7.
How is it with availability, are we updating what was once part of CubeMX? namely STemWin, i.e. the Segger enWIN version that was offered for free for the STM32 processor?I didn't find anything about ST, except that it's not part of newer versions of CubeMX.You can find STemWIN on Segger's website, but they're basically just trying to sell emWIN at a discount.Alternatively, where can I download the latest version of this library?Thank you for the information.
Hi !I've using TouchGFX Designer for a while, only using Simulator project (which Board setting is PC) for sfx evaluation and learning. And I wanna try to flash my previous project running on a real microcontroller board like F429 discovery board.Here's my question: How to migrate my previous PC Simulator project to new CubeMX project based on real board project?I tried to find related settings in TouchGFX but failed. Is it the only way to migrate my previous ui into new project by doing all the steps in the new TouchGFX project?Thanks !
Hi ST Support Team, #1 Demo provided by ST for STM32H7B3I-EVAL board is working on Windows Simulator. But it is not working for Target (STM32H7B3I-EVAL board.) #2 Does code generated by TouchGFX designer will run on Target board without any code changes on target (STM32H7B3I-EVAL).Please help me to resolve this issue. Regards,Tejas
HI,as we understand, TouchGFX does not provide support for mulitple layers, even though many targeted STM32 controllers do.We need to display a live image from the camera (at maximum possible frame rate) and overlay some gaphics on the top of it. Kind of OSD. What is the best/recommended way to achieve this task with TouchGFX? Is it feasible to do so with TouchGFX at all or the resulting performce will suffer too much?What do we do with StemWin - the hardware LTDC Layer 0 is used for the camera live image, while Layer 1 is for any graphics over the latter. Neither of two get affected by each ohter and very high frame rate is achievable without visible performance degradation.What solution TouchGFX may offer for similar tasks? Thanks.If it is matter:The display resoltion is 800x600, the camera image is a standard grayscale PAL 720x576
Hello, I am using the STM32H7B3I-EVAL board with STM32H7B3LIH6Q controller. I downloaded and flashed the official demo HEX files from the STM32H7B3I-EVAL package provided on the ST website. Programming is now successful, but I am facing an issue with the TFT display. Problem: TFT backlight turns ON No graphics, logo, GUI, or display output appears on screen Screen remains blank/black In some demo files (for example: STemWin-STM32H7B3I-EVAL_V1.0.1.hex), all 4 user LEDs PG13(1) LED1 MFX IO11 LED2 MFX IO12 LED3 MFX IO13 LED4 turn ON after boot I already checked: TFT ribbon/cable connection Successful flashing through STM32CubeProgrammer Multiple demo HEX files from the package Power supply and ST-LINK connection Still, nothing is displayed on TFT. Could anyone please suggest: Whether external memory (OSPI/QSPI SDRAM) initialization may be failing? Whether this i
I am trying to run this demo, but I am receiving an error.How should I program this board? Should I use an ST-LINK or a USB-to-TTL adapter, or is a direct USB Type-C connection sufficient? I am trying to program it via TouchGFX Designer. I have read the following guide, but I couldn't quite understand the process: https://www.st.com/resource/en/brochure/guide-how-to-get-started-with-tsd-knob-display-and-touchgfx.pdf"Error message :"Serial Port COM26 is successfully opened.Port configuration: parity = even, baudrate = 921600, data-bit = 8, stop-bit = 1.0, flow-control = offTimeout error occured while waiting for acknowledgement.Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...Failed connecting to target. Try unplugging and replugging the device and try again.If the problem persists, please check that the option byte nBOOT_SEL is set to false. Refer to readme.md for more information."
HelloI am using a Mac. There is software support for stm32cude ide on Mac. But I would like to ask if there is support for Touchgfx application on a Mac.On the website https://www.st.com/en/embedded-software/x-cube-touchgfx.htmlI can not find a link to download the software for Mac.Is there software support for Mac or any other way to run this application? Thank you
Hello, The board revision I am using is MB1370-lcd-b02 a254300030. I am working with the STM32H7B3I-EVAL board and using TouchGFX (TouchGFX Designer). I have created a simple screen in TouchGFX, and: The simulation runs correctly on PC The project builds successfully in STM32CubeIDE The code flashes successfully to the board However, on hardware: The TFT backlight turns ON But no UI is displayed (screen is blank)
I have a flexButton in a View, and I want to execute different functions depending on whether the button is PRESSED, RELEASED, or CANCEL.I know you can create interaction in TouchGFX Designer, but you can only call a virtual function on click. Is there a way to, for instance, enable the clickListener Mixin to read the event that has fired the callback from that specific button?I need to read this event within the view and relative to my button.Is there a way, or do I have to create a custom widget?
I use STM32U5A9J-DK to plot a graph containing a series of V-I data. I have tried static graph widget and was succeed, but it somewhere doesn't meet my need: the label can only show int, if x data range is -0.6~0.6V, I can only scale them to -600~600, in mV unit, (but I want to show unit in V); besides, my data sequences may have the same x value with different y, e.g. (-0.6,2) (-0.2,5) (0,3) (-0.2,2) (-0.6,1), data like this can't be plotted on static graph, it only accepts monotonous x value. I need my graph showing the original data points (need no scaling) and allowing same x value with different y values, Any other way I can build a graph fitting my requirement? I use touchgfx 4.26.1, seems no canvas function ?!I mean like drawing the plot below, with a lots of on the same graph, and allow me to active/inactive the plot, each plot is a regression
I'm using an STM32H7S78-DK with TouchGFX and FreeRTOS. I would like to limit the framerate of the target to 30fps but withouth reducing the LTDC frequency.Basically having the VSYNC fired at 30fpsI've already set the ((touchgfx::HALSDL2*)&hal)->setVsyncInterval(33.333);In the simulatorIs there a way to force it on the target?
Hello,I've tried to reinterpret a char16_t string (specifically u"Hello")to UnicodeChar* usingreinterpret_cast<const Unicode::UnicodeChar*>they are the same ?What is the difference between them ?
Hi I am trying to gain knowledge on TouchGFX and GUI, with STM32 controller. can you provide me with the document or example from where i can start my learning to use TOUCHGFX and use multiple screen.
Hello everyone,I am working on a custom bootloader for an STM32H743-based TouchGFX project and facing a very strange issue specifically with the TouchGFX application after jumping from bootloader.STM32H743 Bootloader Successfully Jumps to Simple App but TouchGFX Application Shows Black Screen After Bootloader Jump.I would appreciate any guidance from people who have experience with STM32H7 + TouchGFX + bootloader integration.Hardware / Project DetailsMCU:STM32H743IIT6Frameworks:STM32CubeIDETouchGFXFreeRTOSPeripherals Used in TouchGFX App:FMC SDRAMLTDCDMA2DQSPII2CTIM2External Memories:SDRAM framebuffer at 0xD0000000QSPI assets at 0x90000000Bootloader FunctionalityThe bootloader:Initializes USB Host + FATFSDetects pendriveReads image.bin and extflash.binPrograms internal flash and external QSPI successfullyUses APPLICATION_ADDRESS = 0x08040000After flashing, bootloader jumps to applicationImportant:Simple LED blinking application works correctly through the same jump functionOnly TouchGF
Hi STM Forum,I'm integrating a custom QSPI display controller with TouchGFX and ThreadX. I need to convert the TouchGFX framebuffer into RGB666 (6 bits per color) for a custom display interface that runs over SPI/QSPI.Here is my IOC. As you can see, I currently have only the QSPI and the clock connected. I believe the framebuffer is defined in TouchGFXGeneratedHAL.cpp as:LOCATION_PRAGMA_NOLOAD("TouchGFX_Framebuffer")uint32_t frameBuf[(320 * 240 * 2 + 3) / 4 * 2] LOCATION_ATTRIBUTE_NOLOAD("TouchGFX_Framebuffer")My target app currently runs on an STM32F7. I also have a GFX01M2 display on a Nucleo H503, but the SPI display example is of limited use because it appears to use many more GPIOs than I have available in my application (I only have QSPI).I have the following questions that will help me integrate TouchGFX into this project:How do I invoke a screen switch from code?When and in which method should I capture the framebuffer, manipulate it, convert it, and pass it to
Hi,I’m working on an STM based UI with multiple dynamic graph widgets on a single screen and running into a hard fault when scaling things up. Right now I have 5 graph widgets, each needing to plot around 700 data points dynamically. However, when I configure all 5 graphs with 700 points each, the screen crashes. The most stable setup I’ve managed so far is about 200 points per graph, anything beyond that consistently leads to a hard fault (which seems memory related).My goal is to reliably support 5 graphs × 700 points on the same screen. I’m trying to understand what could be causing the crash, whether it’s heap or stack limitations, frame buffer constraints, or something else in the graphics pipeline. It would be helpful to know how to narrow this down effectively.
Hi all, i search properties for manage showed multinumber counters without not cool moving.For example num 123 121 111 . Align not help here .My idea is mark textarea as number aligned and render calculate widths from font for 0-9 and use it to convert showing as monospaced . Ofcourse font editor can change this , but better is switchable choice. Exist or is this doable in an TGFX version?
Hi Community, I am using STM32H745I-DISCO board and generated a TouchGFX project and attempted to flash/debug from CubeIDE. The flashing process fails during the erase stage. Observed Errors Initially: “Error: failed to erase memory” After enabling external loader (without initialization): Erase still fails After enabling external loader with Initialize = true: “Failed to initialize external memory” “Error in initializing ST-LINK device” In CubeProgrammer: External flash is detected when selecting loader MT25TL01_STM32H745I-DISCO However: Mass erase fails Sector erase also fails Error message: “Sector erase operation has failed… please verify flash protection” I am using STM32CubeIDE v1.18.1 and STM32CubeProgrammer: v2.16.x I have attached screenshots. Can someone help what could be the issue? Thanks.
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.