Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello ST Community,We are working with STM32N657X0H3Q and configuring LTDC with internal AXI SRAM.Currently, we have configured the LTDC framebuffer at the following address:0x34200000First, we verified the LTDC functionality without using TouchGFX.Using the same framebuffer address (0x34200000), we manually filled the framebuffer with different colours and confirmed that the display works correctly. The panel turns on and displays the colour patterns properly. This confirms that the LTDC configuration and the memory region are functioning as expected.After enabling TouchGFX, the system starts initialization, but during debugging we observe that execution exits unexpectedly during the TouchGFX initialization phase.In TouchGFX, we have configured the framebuffer using the address method, pointing directly to the same memory location 0x34200000.The issue appears to occur around the following section of the TouchGFX initialization code:FrontendHeap& heap = FrontendHeap::getInsta
Hey all, I've used this tutorial: https://youtu.be/suMytEyQTP4?si=jLtyF5uH1Qd6zpYvto run TouchGFX on several different MCUs/boards such as the black pill or NUCLEO-F446RE. However, I simply cannot get anything to display when I setup TouchGFX on my NUCLEO-WL55JC2. I'm unsure if there is something I'm missing that makes it unfeasible or much more difficult to get it running on the board, but I'm at my wit's end after debugging for hours and finding no issue. The code compiles and programs to the board fine, and I've verified all connections as well as parameters, and I am at a loss as to what to do. If anyone could help I would greatly appreciate it. (Note: I've tried in single core setup to get it to work as well and that did not seem to solve the issue.)
Run SimulatorGenerateDoneGenerate Assetsmake -f simulator/gcc/Makefile assets -j8generated/simulator/gcc/Makefile:221: recipe for target 'images' failedprocess_begin: CreateProcess(NULL, ../Middlewares/ST/touchgfx/framework/tools/imageconvert/build/win/imageconvert.out -r assets/images -w generated/images, ...) failed.make (e=2): 系统找不到指定的文件。make[1]: *** [images] Error 2simulator/gcc/Makefile:32: recipe for target 'assets' failedmake: *** [assets] Error 2FailedFailed
I use touchgfx on u599 ,internal flash is 4MB.My project have 2.4M fonts and images,so I devide internal flash to two parts,like this:RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2496KSRAM4 (xrw) : ORIGIN = 0x28000000, LENGTH = 16KFLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024KASSETSFLASH (rx) : ORIGIN = 0x08100000, LENGTH = 3096K because the assets are not changed everytime ,So I am thinking stop CUBEIDE to downloadASSETSFLASH and only download FLASH form 0x08000000. How can I do this ?
I'm using an STM32G0 with a 240 x 160 monochrome 1bpp SPI display. Is it possible to use the QR code component from the TouchGFX library?I'm using TouchGFX version 4.26.0.Many thanks!
Hi all, I need to use TIM1 CH1 (PK1) as an input-capture pin for a speed sensor in my TouchGFX project. So, I generated the project from TouchGFX and opened the .ioc in CubeIDE, enabled TIM1 for CM7 and set channel1 (PK1). The display does not start correctly (black or freezes) after I debugged it. When I halt the CPU, the call stack shows it is stuck in MT48LC4M32B2_Delay, MX_FMC_Init() and entered bspsdram error handler. I indicated that the generated project uses tim6 for sys_m7 timebase source but I can't use TIM1 right now and don't know what to do.
May be somebody know whats happen with .cproject, .project files after reinstallation STM32CubeMX, STM32CubeIDE, last version and after some other?! Project (at screen behined) is in the folders TochGFX. Told that need plagin ...mcu.ide2.7... from folder CubeIDE, but if i am set it version than that its files the same i.e not change.I am tried set in propertis its file "open cross STM32CubeIDE " but in CubeIDE open only .cproject or project (single) files but not all of the project as early.Thanks.
Hi everyone, I'm struggling with a critical synchronization issue between TouchGFX Designer (4.2x) and IAR Embedded Workbench (9.60.2) on an STM32H563 project.Whenever I modify the UI (e.g., deleting a Button or adding a ToggleButton), TouchGFX correctly generates the new .cpp and .hpp files in the "generated/" folder.However, upon flashing the device, the UI is completely corrupted:- Images are replaced by random noise or other assets.- Texts disappear- Moving a widget "off-screen" instead of deleting it works, but adding new ones breaks everything again. I'm using Nucleo-H563ZI with Riverdi screen.I tried these steps without success:- Delete IAR folders: Obj, BrowseInfo and regenerated- Deleted TouchGFX/generated and TouchGFX/build and regenerated- Full chip erase (Internal + External Flash) via STM32CubeProgrammer- Forced "Rebuild All" in IAR Any idea on how to fix this issue?
Hello, I'm trying to use TouchGFX. I created a new project and clicked on Generate code. Afterwards I get the following error message, which I do not know how to handle. Do you have any suggestions?Generate CodeCopy FrameworkCopying TouchGFX framework version 4.24.1 to C:\temp\testgfx\MyApplication\touchgfxDoneGenerateWrote config/gcc/app.mkWrote config/msvs/Application.propsWrote generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hppWrote generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hppWrote generated/gui_generated/include/gui_generated/common/SimConstants.hppWrote generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hppWrote generated/gui_generated/src/common/FrontendApplicationBase.cppWrote generated/gui_generated/src/screen1_screen/Screen1ViewBase.cppWrote generated/simulator/gcc/MakefileWrote generated/simulator/include/simulator/mainBase.hppWrote generated/simulator/include/simulator/video/D
TouchGFX adds a redundant line ending to .cproject file when clicking generate code even if nothing has changed.This causes changes to show up in git and also makes merging and pull requests more complicated.In STM32CubeIDE the line ending is removed after making any change to the project (and optionally reverting the change). -<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> +<?fileVersion 4.0.0?> +<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> I'm using TouchGFX 4.23.2, but the problem was also present in older versions. Using STM32CubeIDE 1.15.1, but older version had the same effect.Please fix this.
Hello ST Community Team,We are currently working on an STM32N6-based design using TouchGFX and would appreciate your guidance regarding the LTDC framebuffer address configuration.Setup details:Display resolution: 800 × 600Graphics framework: TouchGFXExternal memory device: eMMC – IS21ES08GA-JQLIThe eMMC is used as external memory in the systemWhile configuring TouchGFX and LTDC, we need to specify the framebuffer start address for the LTDC layer. Since the framebuffer is not located in internal SRAM, we would like to understand:What LTDC framebuffer address should be provided when using an external eMMC (IS21ES08GA-JQLI)?Is it recommended (or required) to first map the framebuffer into an external RAM (such as SDRAM/PSRAM) instead of directly using eMMC?Are there any reference examples or application notes showing TouchGFX with LTDC using external eMMC for framebuffers?Any clarification on the correct memory mapping and recommended architecture for this use case would be very helpful.T
Hello,How do I enable 8MB external SPI Flash on the WBA65+RVA15MD using TouchGFX Designer?Thanks.
Hello, I have a problem to display the screen on my board, it is always blank white screen. Below is a simple Screen:It shows as a blank white screen on my board, please find attached relevant files lest it is a hardware problem. Please advise. Best regards
Hello everyone,I’m working with the STM32N6570-DK and trying to bring up a TouchGFX project by following the official STM tutorial:https://www.youtube.com/watch?v=NFljjd_vQGAI generated the project with TouchGFX Designer and programmed the board using STM32CubeProgrammer exactly as shown in this one:FSBL flashed at address: 0x7000 0000Application flashed at address: 0x7010 0000The flashing process completes without any errors.However, when the board boots, the GUI is completely corrupted. The display only shows colored noise/static like in the video I attached.It seems like framebuffer data, LTDC configuration, cache handling, or memory mapping might be wrong… but everything was generated by TouchGFX. Any guidance would be greatly appreciated.Thank you!
I have successfully tested the board that is based on STM32H750B-DK Architecture using Touchgfx based code demo for STM32H750B-DK but now I have created a fresh stm32cubemx project with same files and settings and same ld as of the demo board but the Code is getting stucked at the static int32_t MT48LC4M32B2_Delay(uint32_t Delay){ uint32_t tickstart;tickstart = HAL_GetTick();while((HAL_GetTick() - tickstart) < Delay){}return MT48LC4M32B2_OK;}What could be the problem?
I hope to achieve the scrolling effect like the file browser of Windows. I attached a demo video.
Hi,Is underline of text supported by TGFX or will that be part of the ttf-files in Typographies?The goal is a text like this: "Press SETTINGS now."
I have successfully run the USB HS Mass storage on a new project without the use of freertos and touchgfx , But when the touchgfx code for STM32H750B-DK is modified to run the code I am getting hard faultsstatic uint8_t usb_done = 0; extern ApplicationTypeDef Appli_state; extern USBH_HandleTypeDef hUsbHostHS; extern FATFS USBHFatFS; extern char USBHPath[4]; void Debug_Print(char *str) { HAL_UART_Transmit(&huart4, (uint8_t*)str, strlen(str), 100); } static uint8_t file_written = 0; void StartDefaultTask(void *argument) { Debug_Print("Task Started\r\n"); for(;;) { USBH_Process(&hUsbHostHS); if (Appli_state == APPLICATION_READY && file_written == 0) { Debug_Print("USB Detected\r\n"); if (USBH_MSC_IsReady(&hUsbHostHS)) { Debug_Print("MSC Ready\r\n"); FRESULT res; FIL file; UINT bw; /* Mount USB */ Debug_Print("Mounting...\r\n"); res = f_mount(&USBHFatFS, USBHPath, 1); if (res == FR_OK) { Debug_Print("Mount OK\r\n"); /* Create
I have created a UI in touchgfx designer, after I opened CubeMX and based .ioc file from touchgfx designer generate codes for stm32n6.Now I want to build these codes in Cube IDE but get this Error . Errors occurred during the build.Errors running builder 'CDT Builder' on project 'STM32N6570-DK-FreeRTOS_Appli'.Cannot invoke "com.st.stm32cube.common.mx.registry.IIdeHelper.getRootProject(org.eclipse.core.resources.IProject)" because the return value of "com.st.stm32cube.common.mx.registry.MxRegistry.getIdeHelper()" is null
// To regenerate crash, follow these steps // In simulator mode // 1. Rotate screen if (touchgfx::HAL::getInstance()->getDisplayOrientation() == touchgfx::ORIENTATION_PORTRAIT) { touchgfx::HAL::getInstance()->setDisplayOrientation(touchgfx::ORIENTATION_LANDSCAPE); } else { touchgfx::HAL::getInstance()->setDisplayOrientation(touchgfx::ORIENTATION_PORTRAIT); } // 2. Go to other screen application().gotoScreen2ScreenCoverTransitionEast(); // CrashThere is probably a bug after rotating screen in simulator mode. Additionally, in debug mode (on hardware) when I apply screen rotation, it is not validated. If I change screen to another one, rotation is applied but with glitches in pixels.
Hello everyone,I’m working on a project with the STM32H750B-DK board using TouchGFX and FreeRTOS. I need serial output via the onboard ST‑LINK Virtual COM Port for debugging. According to the board documentation, the VCP is connected to USART3 on PB10 (TX) and PB11 (RX).The problem:In CubeMX, I select USART3, set mode to Asynchronous, and assign PB10/USART3_TX and PB11/USART3_RX. However, in the pin configuration table, these pins remain with "n/a" in the GPIO mode column, the "Modified" checkbox stays unchecked, and they are not configured as Alternate Function Push‑Pull. The generated code therefore never initializes these pins correctly, and I get no output on the VCP.What I have tried:Resetting the pins (PD8, PD9, PC10, PC11) that were previously assigned to USART3.Right‑clicking on PB10/PB11 and selecting "Signal Unpinning" to remove any locks.Manually setting the Alternate Function to AF7 via the right‑click menu.Changing the GPIO mode in the table from "n/a" to "Alternate Functi
I'm trying to use LCD16DebugPrinter to display debug text on a 480x480 RGB565 display running on STM32U5A9J-DK (circular display). I've set it up in TouchGFXHAL::initialize():static touchgfx::LCD16DebugPrinter debugPrinter; debugPrinter.setPosition(0, HAL::DISPLAY_HEIGHT - 20, HAL::DISPLAY_WIDTH, 20); debugPrinter.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0)); debugPrinter.setScale(1); touchgfx::Application::setDebugPrinter(&debugPrinter);And in my view's handleTickEvent():static char debugStr[128]; snprintf(debugStr, sizeof(debugStr), "TICK TEST"); touchgfx::Application::setDebugString(debugStr);Nothing appears on screen. Things I've already ruled out:String buffer lifetime - using static char[] So the pointer remains validColor contrast - white background, black textWidget conflict - disabled all custom widgets, issue persistsHow it is supposed to work?
This is a followup on this post https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/compilation-error-macro-quot-bind-quot-requires-3-arguments-when/td-p/881690 . mƎALLEm provided very comprehensive answer for the issue. I was unable to post a reply hence this post. I've followed the solution to the letter using the guage touchgfx example. I got a blank white screen and this is the debug window: and here is main.c: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics. * All r
I have a problem with disabling gfxmmu. I don't have a rounded display so that actually I do not need GFXMMU.I created a project by using Touchgfx Designer Templates (STM32H7S78 DK BPP). GFXMMU is activated in default. I would like to disable it. So, I disable it in cubemx then exclude instrumantation files. Then I updated TouchgfxHal.cpp and frame buffer adresses as 0x9000 0000 - 0x9020 0000.Then I could succesfully build the project. When I run it, it is working particularly but the frame/image is broken down. I am adding the image here!Could you explain me how to enable or disable gfxmmu properly from project?
Hi Team,I have an application running on touchgfx with STM32H750B-DK board, currently the display which comes along with this board is around 4 inch, but the requirements are 7 inch. Please help me to choose the display to integrate with the board. I'm currently in India. Regards,Siva
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.