Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I'm working with a graphics output on an STM32H750-based board.My bitmap resources are stored in SQPI, and the frame buffers (double buffering) are in external SDRAM.The external SDRAM settings are as follows: TEX=1, Bufferable=1, Cacheable=1, Shareable=0SCB_CleanDCache() is being properly executed during frame buffer switching. In TouchGFX 4.24.0, I'm experiencing the following issue: Screen flickering occurs under specific conditions (image is a sample):When displaying a rounded corner window overlaid on top of a background with texAfter updating to TouchGFX 4.25.0, the screen flickering improves but still slightly exists (visible in the top right of the sample image).I believe this was improved by modifications to the TouchGFX core, but there still seems to be a bug in handling the contention between CPU and DMA2D/LTDC when accessing the frame buffer.What do you think?For reference, in both 4.24.0 and 4.25.0, the flickering disappears when the MPU setting for external SDR
Hi, I'm using the STM32F769I-Eval board and have come accross the same Cygwin error which a lot of people seem to have come across. After reading through multiple posts the best solution I have found was here to use 'editbin' to perform the rebase as so:"editbin /REBASE:BASE=0x50000000 msys-1.0.dll"(I had tried the Powershell commands also suggested by a reply in the post but that didn't seem as effective) This rebase has worked for smaller example projects with less images, but i'm still getting the Cygwin Heap error for larger projects which is extremely frustrating. Is there anything I can try? Any help would be greatly appreciated! Note: I'm using TouchGFX 4.25.0 Designer
Hello,I understand there's been a similar question asked and answered here: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/how-does-touchgfx-directly-change-the-color-of-the-picture-in/td-p/116908, but I'd really like to emphasize my desire to change the color of icons in my project at run-time. It seems like the only feasible way to do this is meticulously recreate my icons using the `Shape` tool, which is incredibly time consuming and tedious. Perhaps I can write some kind of helper class for that? Anybody ever do anything similar here? Trying to save on flash, plus I just don't like having a bunch of duplicate icons with different colors (example: SettingsIconBlack.svg, SettingsIconWhite.svg, SettingsIconGray.svg, etc.) It's clunky and gross.Any advice is greatly appreciated, as always,Jack
I have just started using TouchGFX on an Stm32H7A3ZIQ Nucleo board. I managed to setup the LTDC correctly and am able to change the color of the screen, which makes me assume that the LTDC is setup correctly.After setting up TouchGFX with FreeRTOS, following the documentation, I keep getting stuck at a blackscreen.I have configured touchgfx the following way:Following the docs, I have enabled FreeRTOS, set the heap size to 70 000 Bytes and added the following task:I have enabled the LTDC interrupt to ensure that the LTDC vsync signal drives touchgfx: and added the following line to main.c after the LTDC configuration:LTDC->IER |= LTDC_IER_LIE;as well as the line to the interrupt handler: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 */ }In TouchGFX designer I have created a very simple sc
I have my own TouchGFX App running on STM32H747I-DISCO board. It reads data from popular BME280 sensor chip via I2C interface. Now I need to show the "history" of measured temperature, pressure and humidity on a graph underneath the RTC date, day of week and time of day display (Clock).I picked Dynamic Graph first because it can show the last (say) 400 measured data and scrolls it automatically when I add a new data point. Then I realized that Dynamic Graph does not support custom X/Y data.: I can add the Y data only: graph.addDataPoint(float yValue). Too bad. I also noticed that everything is stored as integer, not as float type number )For performance I guess). And last but not least I cannot access (read/modify) the added values stored in graph. What is good for such a graph?Then I switched to Static Graph. It was a big surprise, but static graph can add X/Y values graph.addDataPoint(float xValue, float yValue). Great. They are still stored as integers but that's okay
How to use TouchGFX with an MCU and a TFT that isn't listed in TouchGFX ? My board is a Nucleo-STM32H753ZI and the TFT is an ILI9486 420 x 380. Thanks.
Hello. I follow your instruction to generate a touchGFX project. „How to TouchGFX: Creating my first GUI with TouchGFX Designer for STM GUI aplications“I‘m using the latest version of all Program for the STM32Cube family. The project compile in TouchGFX with no error. It so possible to download it to the board. All work fine. But after import to CubeIDE there is no xxx.ioc file include. I‘m not able to change hardware setting to onboard LED turn on and off.
I try implement 1424x280 DSI panel and it work, but transition on single buffer have trouble.I start with simple fadeout and attached video show result. Try off DCACHE ICACHE DMA2D GPU2D, no big difference. Exist example or recomm for video mode with TE signal memory single buffer manage ? @GaetanGodart ... seems i cant upload video https://drive.google.com/file/d/1l9psb7h2DsEAAxUi8_kvEnL9ac-wNu1_/view?usp=sharingTGFX 4.23.2
I am looking into using an STM32 with TouchGFX to drive a 2.4" TFT LCD. The LCD will have some type of internal driver (ILI9340/ILI9341/ST7789, etc). Are there drivers for these already? Or is this relatively standard (I doubt)? Or do I have to write my own?Any good app notes/docs/tutorials that explain this properly?Thanks.
I use U599 driving a 480*480 lcd, there are two full screen texureMappers, two full screen cacheable containers. the first cacheable container rendered to dynamicBitmap1,the textureMapper1 use dynamicBitmap1 as source pic . cacheable Container2 ( include textureMapper1 and cacheableContainer1) rendered to dynamicBitmap2.textureMapper2 use dynamicBitmap2 as source pic and finally display on framebuffer.this additional textureMapper2 was to rotate whole content 180 degress.because the lcd is inverted.I have no other ideas.After I run the program , I got a 17ms rendering time.My question is: is that gpu2d's max ability?or I haven't set up properly?I use single buffer,with gpu2d and dma2d all on.
Hello Guys,I am searching for a MCU to drive dual LCD screens. Although I see some MCU (eg, STM32U5G9ZJTXQ) providing both DSI and RGB mode interfaces without pinout collision, I didn't see any description about whether the LTDC can output 2 different images to the different interfaces respectively. Can I get your experiences sharing?Thanks in advance,SRONY
Hello,I'm developing graphics on an STM32H750-based board using TouchGFX, and my framebuffer is located in external SDRAM.I have a question regarding the MPU configuration for the external SDRAM that holds the framebuffer.If I configure the cache policy to Write-back, Write-allocate, would the following MPU settings be appropriate?MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE; Additionally, is it acceptable to enable both MPU_ACCESS_SHAREABLE and MPU_ACCESS_CACHEABLE at the same time?I'm concerned that setting the SHAREABLE attribute might invalidate the CACHEABLE setting. Thanks for any guidance!
Hi,We have recently upgraded a project from TouchGFX v4.10 to v4.24, and have a question about colour representation. We haven't been able to update the HAL- this is a legacy project and we don't have access to the .ioc file.We've replaced the deprecated getColorFrom24BitRGB function, which returned 16-bit values, with getColorFromRGB, which returns a 24-bit color. We have worked around this by adding calls to LCD16bpp::getNativeColor in the various setColor functions, ie: void setColor(colortype newColor) { color = LCD16bpp::getNativeColor(newColor); } This works fine for the most part, boxes and most glyphs appear as the correct color (passed in to setColor as 24bpp, then converted to 16bpp using our workaround). But some glyphs are shifted to green/blue (white appears turquoise, light blue appears green), as though the conversion to 16bpp is getting repeated. This happens anywhere from 0 to 5 times within a text area, and all occurrences of a gi
I use the platform of STM32H747 to play a video with AVI format, if the frame width*height=568*320, touchGFX can't play this and skip this function, which type of resolution can be used for touchGFX on STM32H747 platform ?
Hi all,Can anyone please give me advice how can I implement a custom Gauge:That will be used my custom image and needle That can be also a button, that when I click in the middle of the gauge, the gauge will change image to glowing as it is a button and turn off the gauge glowing as the button off for another click. Thank you so much.
whether can the touchGFX support to run PDF file or need changing to picture format ?
Hi,I’d like to use the vectorized version of a font (bebas-neue-regular.ttf), but the glyphs don’t quite match the original shape. Why is that, and how can I fix it?Could it have something to do with the arrow next to some nodes? I don’t know much about glyph design.The attached example compares the bitmap and vector versions of the font.Thanks for help.
Hello,I'm currently developing graphics on an STM32H750-based board using TouchGFX, and my framebuffer is located in external SDRAM.I've noticed flickering occurring in certain screen areas, especially when the UI becomes complex.After investigating, I discovered that configuring the MPU region for SDRAM as Non-cacheable completely resolves the flickering issue.I wonder what the recommended approach is in this scenario:Should I configure the SDRAM MPU region as Non-cacheable?Or, should I keep the SDRAM MPU region as Cacheable, and instead manually handle cache maintenance (e.g., using SCB_CleanDCache() at framebuffer flush or buffer switch points)?Which approach is the proper or recommended practice?Thanks for any guidance!
Hello All, I need to change the touch GFX project name MyApplication_747I to something else, I am trying to change it from config but touch gfx is not allowing it to change. I tried to edit and modify the .touchgfx file and changed the name from "Name": "MyApplication_747I ", to "Name": "UI_Software", along with "ProjectFile": "../../STM32H747I-EVAL.ioc", to "ProjectFile": "../../IPL_UI_Software.ioc", Additionally I have changed file ApplicationTemplate.touchgfx.part in this "Name": "IPL_UI_Software", and "ProjectFile": "../../IPL_UI_Software.ioc", While loading the file and opening the touchgfx project using the .touchgfx project I am getting attached Error. Could you please suggest what further modification i need to make or any corrections to do so that i can change the desire name of project safely. Attached are the logs for your reference to get better clarity. BR,Shiv
Hello All, I am new TouchGFX and working on it recently, I am trying to implement Long Press (if user touches button continuously) to increment value on Text Area, continuously until user releases flex button press.Right now, the configuration for flex button to trigger is for Click, I can see option for Touch as well but it's not working as intended. I can see the value update every Click but need to have value to increase as long as User Touch is Pressed.Would appreciate, any guidance or some references to try out to do it. Br,Shiv
I'm using stm32u5f7vjt MCU with touch gfx designer for 5" Touch display. So I'm getting some error during adding image in touchgfx Designer not any issue its generated the but when i build my main code its generated error likes TouchGFX_Framebuffer will not fit in region 'FLASH', makefile error and region overflowed by 134688 bytes. how to solve this error?Description Resource Path Location Type5INCH_TFT.elf section `TouchGFX_Framebuffer' will not fit in region `FLASH' 5INCH_TFT C/C++ ProblemDescription Resource Path Location Typemake: *** [makefile:121: 5INCH_TFT.elf] Error 1 5INCH_TFT C/C++ ProblemDescription Resource Path Location Typeregion `FLASH' overflowed by 134688 bytes 5INCH_TFT C/C++ Problem
Hello So, I want to generate a test application, but I cannot load these on my board. Does that problem is normally because we never can upload a test application or what is the Problem here, I also added some parts to the Test application, but I can still not load up. I think I am a little bit stuck right now. Maybe one can help me. Thanks! ( I am useing the TouchGFX Designer 4.24.0)
Hi Community,I have a project on STM32H755 Nucleo using a simple small LCD. Now I want to add a Riverdi display, RVT50AQFFWC00, which uses the FT813 EVE.I'm not very clear how best to start. From what I've found it seems that there's no driver for this display in the BSP for H755 and the best-looking driver that I've come across is Rudolph Riedel's (https://github.com/RudolphRiedel/FT800-FT813).Should I start by adding TouchGFX to my project via Middleware config in CubeIDE, drop Rudoph's driver into the project, then go to TouchGFX? But then how to proceed, since I only see options in TouchGFX to use some pre-defined configurations that include H755 and similar displays, but there isn't one matching my exact configuration? If I use the simulator that's OK, but then how do I run on my target?Maybe I should instead start in TouchGFX and perhaps that allows me to pull the required driver in to my project and update my project with it?These probably seem like silly questions but any
if (!textClock.isMoveAnimationRunning()) .. fails after following the tutorial i receive ..Compilemake -f simulator/gcc/Makefile -j8Reading ./application.configReading ./target.configCompiling gui/src/screen2_screen/Screen2View.cppCompiling generated/texts/src/TypedTextDatabase.cppgui/src/screen2_screen/Screen2View.cpp: In member function 'virtual void Screen2View::handleTickEvent()':gui/src/screen2_screen/Screen2View.cpp:63:20: error: 'class touchgfx::TextArea' has no member named 'isMoveAnimationRunning'if (!textClock.isMoveAnimationRunning())^~~~~~~~~~~~~~~~~~~~~~generated/simulator/gcc/Makefile:196: recipe for target 'build/MINGW32_NT-6.2/gui/src/screen2_screen/Screen2View.o' failedmake[2]: *** [build/MINGW32_NT-6.2/gui/src/screen2_screen/Screen2View.o] Error 1make[2]: *** Waiting for unfinished jobs....make[1]: *** [generate_assets] Error 2generated/simulator/gcc/Makefile:155: recipe for target 'generate_assets' failedsimulator/gcc/Makefile:32: recipe for target 'all' failedm
hello,In my program I have some screens and I switch between screens by programaticily. If a button pressed below code switches screenvoid Screen1_View::changeScreenToScreen2(){ static_cast<FrontendApplication*>(Application::getInstance())->gotoScreen_Screen2CoverTransitionSouth(); }This code works fine but I want to change cover time too. Is it possible to change screen transition time ? Is it fixed ?
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.