Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi All,I'm currently developing a project using an STM32N655. I'm using a 1024x600 px screen. The image format is ARGB8888. Naturally, my frame buffer takes up approximately 2.5 MB. I needed to reduce the size of the CMD list.My application doesn't have vector graphics or fonts. Can I reduce the size of the CMD list as much as I want? Will this affect performance?Also, it's not possible to double flash with internal RAM while running a screen of this size. However, would creating frames of different sizes affect the FPS? Currently, the frame rate is 32ms. Best Regards,Onur
Hello community,I have this problem. I have a project with the STM32U575RGTx microcontroller.It includes also FreeRTOS (Version 1.3.1) and a TouchGFX project (Version 4.26.0).With this system configuration: Timebase Source TIM17 The TouchGFX project has screens that require more or less CPU, the problem that I have is that when one or other screen is selected the execution frequency of the FreeRTOS tasks and the HAL_TIM_PeriodElapsedCallback change their execution frequency, so I can not have a valid time reference to do other things in my firmware application. Has anyone faced the same problem? Much thanks in advance!
Hi, I'm working on the STM32H750B-DK discovery board and need to combine two key functionalities:1. Ethernet connectivity based on the LwIP stack (using the example from the `stm32-hotspot/STM32H7-LwIP-Examples` repository).2. A TouchGFX GUI that stores its assets (images, fonts) in the external QSPI flash (`MT25TL01G`) due to the limited internal flash (128KB).I have both components working **individually**: - The **standalone Ethernet example** (STM32H750_Disco_ETH) works perfectly – I can ping the board at `192.168.1.10`.- The **standalone TouchGFX application** works when the external flash is properly initialized via a bootloader, and assets are loaded from `0x90200000`.The challenge is to merge them into a single project where the application code runs from internal flash (the `APP_FLASH` region) and the Ethernet stack functions correctly alongside the TouchGFX GUI. ### **Current Memory Map (Linker Script)** I am using the following memory partition to accommodate both: `MEMORY {
Hello, I made a lot of project with Touchgfx . I started a new project with STM32U599ZI, IAR 9.60.3 , Touchgfx 4.26.1 , CubeMx 6.17.0 , STM32CubeU5 MCU package V1.8.0. I created project from Cube, than I double clicked touchgfx file under TOUCHGFX folder.I created a dummy project with only a red box and I clicked generate code on TouchGFX as I always do. But when I open IAR project I cannot see TouchGFX folder on IAR workspace window and when I try to build project, IAR gives a lot of erros about not founded Touchgfx files. Touchgfx files and folders ara exist in my project folder but not in IAR workspace window.My colluage has same proglem with STM32L4R5A mcu . I tried rebuild all, clean project, creating project from CubeMX from zero, but I could not find a solution.Can you give any solution.
Hello @INaee.1 , I am working with the STM32H743BIT6 using the LTDC peripheral to drive an RGB display. The display I am using does not have HSYNC and VSYNC signals and operates only in DE (Data Enable) mode. I have attached the display datasheet and pin connection for reference. Based on the datasheet timing specifications, I configured the LTDC parameters accordingly. Since the display does not use HSYNC and VSYNC, I configured them as constant high signals (logic 1) and set the rest of the LTDC timing parameters as specified. However, the display is not showing any image. The backlight turns on, but the screen remains black. Below are the key points of my configuration: LTDC peripheral configured according to the display timing parameters from the datasheet HSYNC and VSYNC set to constant logic high since the panel works only in DE mode Pixel clock configured as per the display requirements Data Enable (DE) signal connected and
Hello,i tried to generate for STM32f429i disco a project with graphic = touchgfx.1) i generate cubemx (for STM32f429i disco) project for SW4STM32 toolchain2) i generate a simple touchgfx project for SW4STM32 toolchainBut compilation under eclipse gives the following errors :HALSDL2.hpp:22:10: fatal error: SDL2/SDL_video.h: No such file or directoryHALSDL2.hpp:22:10: fatal error:SDL2/SDL_render.h: No such file or directorymain.cpp:30:10: fatal error: shellapi.h: No such file or directoryI can i solve these compilation errors ?thanksbest regards
I am currently using the STM32H735G-DK.While white and red seem to display correctly, black(0x0000) appears as a dark purple when rendered. Even when displaying textures, there is a slight purple tint mixed in throughout the image.I am writing to the framebuffer in RGB565 mode, and the LCD is reading directly from it. What could be causing this color distortion?
I have this Riverdi 7-inch display which has a STM32H757XIH6 micro controller. And I am trying to use freertos to run a uart task when a button is tapped on the display. I am running into an issue though with the button response. So I created a virtual function and that works when I tap the button. I created another freertos kernal and have a callback function names UART_Task. I am trying to send a message via a queue to start a process when a button is tapped. When the program runs the GUI displays, but when I tap the button it is unresponsive and does not seem to send the message. I messed around with setting different times on the osDelay within the callback to give the GUI and other tasks time to initialize. I also messed around with the priority of the task as well. No luck though. Here is the Freertos code that is initialized from the main.c. The MX_FREERTOS_Init() is called in the main.c/* USER CODE BEGIN Heade
Hi guys,I'm working on custom board with STM32F411 + spiflash for a project with Touchgfx (partial buffer).At the moment I got spiflash and STM32F411 working via SP1 + DMA and that's fine.I'm using IAR 9.70 for this project and I'm facing an issue with external flash loader when I do a debugging session.When I start a debugging session, flash is programmed and the external loader programs the spiflash too.But on the end of the programming the procedure fails with: Sun Mar 29, 2026 21:45:19: Initial reset was performedSun Mar 29, 2026 21:45:19: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 9.2_3\arm/config/flashloader/ST/FlashSTM32F4xxxRAM128K.outSun Mar 29, 2026 21:45:19: Target resetSun Mar 29, 2026 21:45:26: Unloaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 9.2_3\arm/config/flashloader/ST/FlashSTM32F4xxx.macSun Mar 29, 2026 21:45:26: Loaded macro file: D:\ARM\STM32F411\AlphaTui\CubeMx\AlphaTui\EWARM/icf/ExtSPIFLd.macSun Mar 29, 2026 21:
I have an stm32h7s78-dk and I created a GUI with TouchGFX. I am trying to transmit some data via UART when a button is pressed. I have the virtual function triggering in my MainDisplay and I was trying to use FreeRTOS and Queues to communicate from the virtual function from the button press to the uart task that I created via STMCubeMX. For some reason though, the screen stays black when I try to use an if(xQueueReceive(queueHandle, &message, 0) == pdPASS) { printf("Message received"); }in my uart task. If I comment out this code then everything works fine and the GUI is visible. I'm not sure what I'm doing wrong. Here is my main.c/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2023 STMicroelectronics. * All rights rese
Hello I have a STM32f469-discovery. I have trouble loading code/programming. I have successfully programmed the board via the Flowcode software. Also I can use the Hex or Bin generated file from Flowcode, import it in the STlink utility and load it on the board. That works. What I can't do is to open a demo or example for the touchGfx designer and program the board. I click on the "program and run target" but ends up in error"ST-LINK error (DEV_CONNECT_ERR)c:/TouchGFXProjects/MyApplication_7/gcc/include/flash_sections_int_ext.mk:2: recipe for target '_extflash_' failedmake[1]: *** [_extflash_] Error 1../gcc/Makefile:53: recipe for target 'flash' failedmake: *** [flash] Error 2FailedIn the touchGfx there is no indication that the board is connected. I get indication only on the STlinkIf I select the "Generate code" it successfully does it but later on I dont know where to load that code in order to use it to program my board via another software. Is there a specific sequence f
Hi, I am trying to configure the X-NUCLEO-GFX02Z1 display expansion board with the NUCLEO-F767ZI board. The LCD controller used is ST7789, and the interface is configured via FMC. During BSP initialization (BSP_LCD_Init), I am encountering an error: Return status: BSP_ERROR_COMPONENT_FAILURE The LCD ID read is not as expected (expected value: 0x858552U as per the BSP driver) However, if I bypass this failure and proceed: I am able to set the orientation using BSP_LCD_SetOrientation I can retrieve the orientation using BSP_LCD_GetOrientation successfully When attempting to draw on the display using:BSP_LCD_FillRGBRect(0, 0, (uint8_t*)buffer, 0, 0, 100, 100); there is no visible output on the screen. Could you please help identify: Possible reasons for incorrect LCD ID reading? A minimal working example to display a solid color on the screen using this setup? Any guidance on debugging steps or known issues with this board combination would be greatly appreciated. I am already
Hello,I successfully improved the TouchGFX based Clock Example demo app to use RTC chip (and LSE crystal clock) of the N6570 MCU. Because the STM32N6570-DK board does not provide backup battery the RTC loses the current date/time during every power off. One solution would be to sync the RTC chip with an SNTP server via Internet. I successfully solved this with STM32H7474I-DISCO board with LwIP and SNTP client, but the STM32N6570-DK board does not support LwIP.I found an example for the STM32N6570-NUCLEO-144 board which is probably similar (or close) to STM32N6570-DK board. The problem is that the found Nx_SNTP_Client application uses NetXDuo and AzureRTOS while my project runs under FreeRTOS op system.How can I solve this? When create a new TouchGFX project I can choose between FreeRTOS or ThreadX op systems only. I can't use AzoreRTOS...Can anybody help?Thanks,Louis
I get the build warning (which is treated as an error):```CompressedUnmappedFontCache.cpp:146:66: error: unused parameter 'glyphNode' [-Werror=unused-parameter] [build] 146 | void CompressedUnmappedFontCache::unableToCache(const GlyphNode* glyphNode, int byteSize)```This is easily fixed withvoid CompressedUnmappedFontCache::unableToCache(const GlyphNode* /*glyphNode*/, int /*byteSize*/) { while(1); }But, it's generated code, so I have to make this fix every time a regenerate. This warning happens in both `CompressedUnmappedFontCache` and `CompressedFontCache`.
Hi there, i'm moving my first steps into ST boards programming and I have a trouble I can't solve. Following this youtube tutorial: https://www.youtube.com/watch?v=NFljjd_vQGAI tried to create the app in TouchGFX and it worked. I can flash my STM32F746G-DISCO board correctly: (image 1) The youtube tutorial ends with importing the project into STM32CubeIDE, to do so, you go inside STM32CubeIDE folder inside main folder named MyFirstTouchGFXProject and double-click on .project file: which I did after editing the files .project and .cproject. Because I have multiple projects based on the same board and ALL OF THEM get imported with the same name, without possibility to change that name, that is in my case: STM3232F746G_DISCO, and rename the project from within the STM32CubeIDE breaks it. Therefore I changed this lines..project: .cproject: At this point i double-clicked on .project and imported into STM
Hi,I created a blank project for STM32U5G9J-DK2 and in process of programming the board, GfxDesigner generates 400MB file intflash.elf. With GfxDesigner 4.24.1 it is 4MB.Why 4.26.1 generates intflash.elf so large ? A bug ?Thanks
I have a simple question. Is it possible to use TouchGFX+ThreadX with enabled Ethernet and NETXDuo SNTP client at a same time in STM32N6570-DK board? In other words: take the TouchGFX ClockExample then in CUBEMX enable the Ethernet port with NETXDuo-SNTP server. Will it cause pin conflict? I mean the Ethernet uses the same pins as LTDC. I enabled the Ethernet in ClockExample project and I got blank screen and the app was frozen. After removing Ethernet from the project, the analog and digital clocks appeared again on the display. Thanks, Louis
Hello everyone,I would like to share my recent project developed using TouchGFX for industrial applications.I have designed a fully modular keyboard UI using custom containers. The keyboard supports:Uppercase and lowercase inputNumeric keypadSpecial charactersPassword inputEmail inputCalibration data entryThe project is designed with a focus on real-time usability and clean UI design for embedded systems.GitHub Repository:https://github.com/DhruvProject4/touchgfx_advanced_keyboard.git Screenshots: I would really appreciate your feedback and suggestions.Thank youDhruv Dave
Hello"Program and Run Target" stops with some Messages (Small Test Prog.)"Program All": ------------------------------------------------------------------- STM32CubeProgrammer v2.22.0 ------------------------------------------------------------------- Memory Programming ... File : STM32N6570-DK_FSBL-trusted.bin Size : 32.63 KB Address : 0x70000000 Erasing memory corresponding to segment 0: Erasing external memory sector 0 Error: failed to erase memory Error: failed to erase memory c:/TouchGFXProjects/MyApplication_5/gcc/include/flash_sections_int_ext.mk:18: recipe for target '_fsblflash_' failed make[2]: *** [_fsblflash_] Error 1 makefile_fsbl:45: recipe for target 'flash' failed make[1]: *** [flash] Error 2 ../../gcc/Makefile:8: recipe for target 'flash' failed make: *** [flash] Error 2 Failed "Program Internal Flash": Memory Programming ... File : STM32N6570-DK_Appli-trusted.bin Size : 345.22 KB Address : 0x70100000 Erasing memory corresponding t
Hi,In GfxDesigner 4.26.1, I created a blank project for STM32U5G9J-DK2.I opened it in CubeMX 6.17 and tried to migrate FreeRTOS. However, when I changed CUBE-FREERTOS version from 1.0.1 to 1.5.0, the freeRTOS version did not change from 10.4.6 to 11.2.0.Why ? Is this expected behaviour ? Thanks for help. X-CUBE-FREERTOS-1.0.1 (FreeRTOS version 10.4.6)I migrate to newer versionX-CUBE-FREERTOS-1.5.0 (FreeRTOS version 11.2.0) But version did not change from 10.4.6 to 11.2.0
We have an issue with a scroll list widget, on the hardware when you touch and scroll to a point, stop then lift your finger of the display the list accelerates in the direction it was dragged in initially. This behaviour is not seen the simulator. In the designer, we have scrollable container with a scroll list inside it. Setting animation has no effect, easing option = In, Swipe Acc = 0, Drag Acc = 0, Overshoot % = 0. we have tried adjusting the both Acc without any effect.The list has up to 50 entries.scroll list void listMenuView::setupScreen() { menuItems = presenter->getListItermParams(); scrollList1.setItemSelectedCallback(scrollListItemSelectedCallback); params = static_cast<CONTROL_VERTICAL_MENU_T *>(presenter->getWidgetParams()); menuHeader1.params = &params->menuHeader; menuHeader1.updateConfigs(); menuHeader1.setEventListener(this); messageBox1.setEventListener(this); // set the size of the scroll list based on the number of items
Hello, I'm using the STM32N6570-DK board.I completed the TOUCHGFX project through this URL, and there was a DEBUG problem while I was making CUBEMX and CUBEIDE operating it.(https://community.st.com/t5/stm32-mcus/how-to-debug-stm32n6-touchgfx-applications-using-stm32cubeide/ta-p/845901)I'm not moving from FSBL to APPLI. I'm asking for your help on this part.Please check.
Hello :My project use physical buttons and no touch screen.Can I bind physical buttons to repeat buttons? So I don't have to realise it myself.
I created a GUI with TouchGFX, enabled UART and created a custom task in freeRTOS in STMCubeMX. When running the code the display is just blank when I add this code inside of my custom taskif(xQueueReceive(queueHandle, &message, 0) == pdPASS) { printf("Message received"); }If I comment this code out the gui displays. However, I found something interesting that if I debug and set a breakpoint at the for(;;) loop statement on line 729 in main in the UART_Task and another breakpoint on the print message and then press play to continue, the GUI displays and when I tap a button on my GUI I get to the breakpoint on the printf message which is exactly what I'm trying to do and it works perfectly. I'm not sure why it works when I first breakpoint there, but won't work just loading the program onto the board. Here is the main code/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @bri
I am recently retired and have used TouchGFX for my past job. I typically run a Mac, so I decide to buy an inexpensive PC so I can do some development with TouchGFX. I'm using a GMXtec NucBoxG3_Plus. I've installed TouchGFX and it runs, but when I try to start a project using either the STM32F469I DISCO or the STM32H743I EVAL2, the progress bar increases to 88%, then hangs and the program exits. I have about 400GB available on my SSD. Any ideas? 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.