Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi TouchGFX team! It is possible to draw this graphic shadow effect? I haven't seen anything similar in the examples Thanks a lot in advance
I am getting the following error when compiling the Thread X example project for STM32U5G9J-DK2 in IAR. Error[Lt069]: The module Font.o(touchgfx_core.a) (and 42 more) has DSP-support enabled, but the current CPU does not. The procedure i took to get here was: 1. Open up TouchGFX and start new project using the example2. Generate code using TouchGFX3. Open up the STMCube file and change the IDE from CubeIDE to IAR4. Generate the code from STMCube5. Regenerate the code using touchGFX6. Compile in IAR. I am running TouchGFX 4.24.1 and IAR 9.50.1
I’m currently working on a project where I need to interface an ECG module with a microcontroller and plot the ECG data on a display using TouchGFX. Here’s a brief overview of what I’m trying to achieve:Hardware Setup:I’m using an ECG module connected via UART to my microcontroller.The microcontroller is interfacing with a 10.1-inch display.Software Setup:The data from the ECG module is received via UART and processed in real-time.I need to plot this ECG data dynamically on the TouchGFX display.Current Approach:I’m using DMA for UART data transfer to efficiently handle the incoming ECG data.The data is processed and parsed into the relevant ECG channels.I’m looking to update the ECG waveform on the TouchGFX screen in real-time.Challenges:Ensuring smooth real-time plotting of the ECG waveform on the TouchGFX display.Handling the synchronization between UART data reception and TouchGFX updates.Efficiently managing the display updates without impacting the performance of other tasks in my
Hi, Can you confirm if the X-NUCLEO-GFX01M2 has a color display or monochrome display?
Hi,I have a custom board with STM32H743 and working on a project by TouchGFX 4.24. When the device power on or reset, some times I have a mixed image including numbers, pictures and ..., which I attached the image... and some times every thing is Ok after reset or power on. I have another project by TouchGFX on this board, which it always works fine.Please help me with this, thanks.
I was reading in there reference manual and I found this section: 34.4.2 Supported resolutions and frame rates. But it is noted clear to me I'd I would be able to run a display with 1280×720 resolution?Is this possible?s
Hi there, I am using TouchGFX with STM32F429BI. Everything is work well expect when the UI screen is chenging.(MCU CLK = 168MHz, and display is 800*480, and I have some other demo the screen change is work well.) When the screen is chenged, the display will splash maybe 100ms, then the new screen present normally. I have no idea why this happend and how to resolve it? Coulu someone give me some advices? Thanks
Hello!I have a home made panel with STM32H753 mcu. First, the program was created with a display with a FT5426 type touch controller, and it works flawlessly.I bought another display with a GT911 controller.I modified a gt911 driver a bit, which was a bit more difficult, but it works.There is something wrong with the GT911, the page change from the main page is delayed. Not much, but with the FT5426 touch, it switches pages faster. It's not the touch that is lagging, because when I moved to the page, it responds quickly.Can anyone help me find out what could be causing this? I must have programmed something wrong with the gt911.I will make a video about it. In the case of FT5426, it does not change immediately, but in the case of GT, it takes 1-2 seconds more.Thank you!
Hi,We are developing a project that includes different "themes".Screens are the same, same buttons, text areas, scroll lists etc but each of the "themes" has their own custom images (same sizes of widgets but different colors, styles...).We need to create a single external memory output including all these "themes". There is a default theme but customer can select any of the available ones.Which could be a good strategy to perform such implementation ?In Azure GUIX Studio exists the option to create different Themes, when you select one of them, all widgets use images according to that themeHow can this be acomplished using TouchGFX ?Thnks for your support !!!PJ
Hello,To elaborate on what I mean and wondering about with the subject using an example:I am using one CubeIDE project to develop an application for two different hardware boards using the same MCU. Each of these boards have a CubeMX file associated with it since the pinout of the boards differ somewhat. But most of the functionality is the same between the boards, and they share the code on an application layer. I use ifdefs and build configurations to build the desired application. Right now, I have a double set of all TouchGFX related files, one in the CubeMX folder for HW1 and one for HW2, which are a complete copy of the other. I instead want to move this code to the application layer level since the code is the same, and changes to the GUI would be implemented to both hardware applications with one change. How would I go by doing this? Since the code generation is coupled tightly with CubeMX, can it even, somewhat easily, be done in a reliable way? I guess this som
Hello everyone, I bought a STM32H7S78-DK and I am having problems with it. After playing with it a bit, I decided to flash the original firmware which I can download from ST official site (the name of the project's folder is "STM32H7S78-DK TouchGFX Demo v1.1.2").There are two problems: 1) When I am trying to compile the application project, I have an error because there isn't an image needed by TouchGFX gui ( this issue can be resolved opening the project with TouchGFX and starting a generation code); 2) When I am trying to debug the application project, it get stuck on an address of bootloader's project (as you can see in the attached file). Do I need to configure something in the STCubeIDE? Thanks in advance
Hi all,Currently i am stuck so i will try it here. Ive got custom board with 32L4R9 with LCD connected through FMC on bank 2, SRAM on bank 1 and QSPI. The first problem is if i use any transition between screens i get a a new screen distorted by shifted every line from previous. This do not occur when transition effect is none. Second and bigger problem is, that every time i click on button the picture on button is distorted same way. The behavior:https://youtu.be/E_HLBltoxFo?si=HB2uXv-tUfQ55lt8Any ideas? Btw ST, great idea to permit mp4 files on forum. Really "smart".
I have a touchGFX project (created using the STM32G071RB Nucleo AZ1 board setup) which, if run under debug (cubeIDE), will fail during SystemClock_Config(). This needs an external loader to program the external flash.If I perform a hardware reset the code runs fine.After a bit of debugging I have found that the problem appears to be with HAL_RCC_OscConfig(). The application is setting the clock to HSI with PLL. If HAL_RCC_OscConfig detects that HSI with PLL is already set then it only checks if the PLL is set correctly and fails with HAL_ERROR if it is not. It would appear that something (I assume the external loader) is also using HSI with PLL but with different PLL settings. So the application clock setup fails.If I do a hardware reset then the loader is obviously not used and the clocks are in the reset state so HAL_RCC_OscConfig works ok.To fix this I have set the clock source to HSI (no pll) before SystemClock_Config (eg RCC->CFGR = 0;) to force HAL_RCC_OscConfig to update the
Dear STM32 Community, I am currently working with the STM32H747XIH6 board and encountering an issue where programming and running the target fails, even though the simulation in TouchGFX works perfectly. Here are the details of my setup and the problems encountered: TouchGFX Integration: I created a new TouchGFX application with a text area widget and wildcard entry. The code generation and simulation are successful, but when I attempt to program and run the target, I receive the error: "Program and Run Target Failed." STM32CubeIDE Integration: I have integrated TouchGFX code into STM32CubeIDE, including a new variable and functions for incrementing numbers. This code runs correctly within STM32CubeIDE, but programming and running the target still fails. Additionally, I have merged FDCAN code into main.c and configured pin and clock settings. Debugging both the CM7 and CM4 cores shows no errors, yet I am still encountering the same issue.
Subject: Issue with Displaying Speedometer Values on STM32H747XIH6 Board Dear ST Community, I am currently working on a project involving the STM32H747XIH6 DISCO board, using TouchGFX to create a speedometer display. I am facing difficulties where the speedometer values are not being displayed on the screen. Additionally, I am encountering some errors during the build and execution process. Project Setup: Board: STM32H747XIH6 IDE: STM32CubeIDE with TouchGFX integration Peripherals: FDCAN for receiving data (speed values) Middleware: FreeRTOS and TouchGFX Problems Encountered: The speedometer values are not updating on the display, despite the data being received via FDCAN. During the build process, I am receiving the following errors: Undefined reference to __sf_fake_stdin, __sf_fake_stdout, and __sf_fake_stderr in FreeRTOS. Undefined reference to HAL_FDCAN_Init. Actions Taken: Verified the initialization of FDCAN in both STM32CubeMX and in the code. Checked that the necessary
Hello, can you create a dynamic Page with Touchgfx? That means when the board is running, create a new widget. The widget and the number of windows are not predetermined and change while the program is running. best regard
I'm using an STM32U535 and ILI9341 touch display for my project. I have the screen up and the touch control working with 5 screens, using forward/back buttons to navigate. The simulator shows the slide transitions correctly but when I push it to my board, there are no slide transitions with selecting the buttons. I've done some searching and it appears that I don't have any memory allocated for the animation buffer. Which leads me to my question, how do you implement/allocate memory when a partial frame buffer is being used?In my research, I need to call the, setFrameBufferStartAddresses() method in the TouchGFXGeneratedHAL::initialize() method. My initialization method is considerably different than what I've seen: // Block Allocator for Partial Framebuffer strategy static ManyBlockAllocator<2048, /* block size */ 3, /* number of blocks */ 2 /* bytes per pixel */ > blockAllocator; void TouchGFXGeneratedHAL::initialize() { H
Hi, I create a project with the guide of YouTube video: https://youtu.be/mU5eZ_EXW8c?si=TKkxluzNMeVRQCFG I'm using STM32F423ZHT6. Here, there is no hardware graphics accelerator like the Chrom-ART Accelerator (DMA2D) or LTDC, which are not present in the STM32F423ZHT6. There is any idea to create a project by using TouchGFX? Regards, Meena
I have a STM32H745i that if I want to load the code by USB it works OK if the project is from STM32CubeIDE (1.16.0) but if the project is imported from TouchGFX it presents the following error when I want to load the code: I read a post from someone who had this error but I don't understand the “ExtMem_Boot” step so I just set up the external loader but it didn't work. any idea what it could be?
Hello,i have question about external memory storage.Can be external serial memory used as a storage for Touch GFX images connected via standard SPI(MISO,MOSI, SCK and software driven NCS) to the MCU STM32F767 without FMC_NCS? Is it possible? Thanks
Hi gm I have the following scroll list When I click on delete i execute the following code void Display_Stages::Delete_Stage(uint8_t id) { // Find element with m_id == id auto it = std::find_if(m_elements.begin(), m_elements.end(), [id](Stages_Element *elem) { return elem->Get_Id() == id; }); if (it != m_elements.end()) { delete *it; m_elements.erase(it); m_total_stages--; // Adjust m_stage_id if necessary if (m_stage_id == id && m_stage_id > 0) m_stage_id--; m_scroll_stages.invalidate(); // Sort elements and update UI Sort_Elements(); Resize_Slider(); } } This code does find the item clicked and it does erase it from the elements list which i use to fill item data on m_scroll_stagesUpdateItem(Stages_Element &item, int16_t itemIndex) But its like the scroll list updates the data so now the item that was on the 5th place is on the 4th place (i clicked the delete 4th item) but it doesnt erase the last element and i
I'm not satisfied with the limited alignment options of the text field in the standard button with label object. My text field is left aligned, but I want an offset without using spaces. I copied the cpp file and added a horizontal offset to the text rendering part in draw(). This works (tested in simulator).This is the code I changed: case TEXT_ROTATE_0: offset = (this->getHeight() - height) / 2; // Prefer round down labelRect = Rect(0+10, offset, this->getWidth(), height); // added 10 pixels horizontal offset break; However the preview of the button in the editor doesn't change. Only when I run the simulator does it update.How is TouchGFX preview generated? Can it be changed?
Hello allI know there have been plenty of posts about TouchGFX not providing the full set of display rotation options usually found in other GUI systems such as emWin (0, 90, 180, 270 degrees). But I wanted to ask ST / TouchGFX if there any plans to add this functionality in the future?As an embedded engineer we often have to provide solutions for problems, and being presented with a display that had to be mounted upside down or rotated 90 degrees is not un common, usually enclosure or PCB connector constraints demand the display is orientated so the FPC connector tail is in a pre-set position. In the real world we are not creating firmware for DISCO or NUCLEO development boards. As a long time user of emWin, being able to rotate the display image was assumed. Its an essential feature, just like displaying a text string.I know there is a ugly 'solution' offered that involves swapping all the pixels in the frame buffer, but as suggested this is 'expensive' in terms of bandwidth and
Hi all.There is very little documentation, example code or tutorial information online other than this: https://support.touchgfx.com/docs/development/scenarios/touchgfx-on-lowcost-hardware that would lead to a fully working example of either of these two display expansion boards. The situation is so extraordinary that my own posts in this forum show up top of the list/first in any google search on the above subject. Interfacing either of these displays to a supported Nucleo board is not the issue here. TouchGFX makes it very easy to achieve working graphical elements on the display. However, information for enabling the attached Joystick is scant and nowhere near thorough enough for a new user to gain the required knowledge to actually make it work. Ironically, low cost hardware would seem like the ideal place to start your STM learning experience and is the sole reason that I invested in them. I'm g
Dear all, We are very happy to announce that the new STM32H7R7/S7 graphics line is launched, offering even higher performance and memory flexibility. The main graphics benefits are: 1: Rich graphics features: NeoChrom GPU, LTDC, JPEG Codec, Chrom-ART 2: 2x Quad or octoSPI, 1x 8/16bit Serial RAM interface at 200MHz DTR, 1x 32bit FMC for SDRAM. 3: 64Kbytes of userflash, large enough to fit your boot code, and small enough to make an impact on the price, making it the cheapest STM32H7 to date. still with 60Kbytes of SRAM. 4: MCE: on-the-fly encrypt and encrypt of your code and data. 5: Run multiple applications with one MCU. 6: Future proof your design by not running out of memory. STM32 software and hardware tools available: Nucleo board: NUCLEO-H7S3L8 Discovery kit: STM32H7S78-DK Dedicated software package: STM32CubeH7RS X-CUBE-TOUCHGFX board support package in TouchGFX Designer Expansion packages such as X-C
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.