Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
hi, i am trying to attach a Touch Sensor header file with touchGFX STM32TouchController.cpp file but it's showing error .the Touch_Sensor.h & Touch_Sensor.c file are include project file and further included via path location ( Properties ->General -> path.).
I am using a scrolllist that contains 6 items, 4 of which are visible. It is a horizontal list and non-circular. I'd like to have a couple of indicator items, one to the left and another to the right of the scrolllist to show whether there are items that are not currently visible. Maybe I'll even make these clickable and then auto-scroll left or right. I don't currently see a way to know what items are in view at the moment and @shark has already asked this here:https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/how-to-get-index-of-first-visible-item-in-a-scrolllist/td-p/213644 scrollList2UpdateItem() doesn't do anything useful here because it just tells you that you need to update something that is shortly going to be visible.
1.I have TouchGFX Designer 4.24.2 and STM32CubeMX running on Windows 11. I downloaded the demos and examples via the file menu, also the latest TouchGFX Generator via CubeMX. I am targetting a NUCLE0 STM32G071 with GFX01M2($AZ2) display, so I selected the demos for that board, and have tried several of them, giving each a project name and pressing Create. In each case the progress bar goes to 88% then the program closes. If I restart TouchGFX Designer and try to open the project it has created in "TouchGFX Projects" folder, I get the error "Failed to open native freetype library". If I manage to import the projects (individually) to STM32CubeIDE (1.17.0) they appear to be missing some header files and do not compile. The configured paths (in project properties) appear to be wrong.I also downloaded TouchGFX 4.22.0, thinking it may be a compatibility issue, but it did the same thing. 2.Is it feasible to run TouchGFX designer on Windows, then import the p
I am using STM32CubeIDE 1.13.2 in Windows 11 and am trying to install TouchGFX.4.22.0 and its "Graphic Application" for a STM32H727i-DISCO board.The project is newly created and there are 14 errors that I need help fixing.As requested by the IDE, CRC was configured and activated before adding X-CUBE-TOUCHGFX.Here are the errors. The .hpp files do appear on the same drive that CubeIDE and the project are on, but the IDE can't find them.fatal error: platform/driver/touch/TouchController.hpp: No such file or directoryfatal error: texts/TypedTextDatabase.hpp: No such file or directoryfatal error: touchgfx/hal/BlitOp.hpp: No such file or directoryfatal error: touchgfx/hal/GPIO.hpp: No such file or directoryfatal error: touchgfx/hal/HAL.hpp: No such file or directoryfatal error: touchgfx/hal/HAL.hpp: No such file or directorymake: *** [TouchGFX/target/generated/subdir.mk:28: TouchGFX/target/generated/OSWrappers.o] Error 1make: *** [TouchGFX/target/generated/subdir.mk:28: TouchGFX/target/gene
I'm trying to create a long vertical menu that can be configured for a different number of items. I have managed to get a working implementation with a single issue.I would like to be able to select which item in the list is shown when the menu is loaded. For example, given a list of 30 items, I would like to go to Item 10 if it were the last item selected previously.What I have tried:Custom container scroll list with a custom container menu item. The scroll list is stored in a scrollable container to provide a scrollbar. For the scroll list to work with a long list, I have made the scroll list container's height long enough to fit 30 items within the designer. To force the list display to start from a specific point, I have tried animateToItem()which has no effect.listMenuView.cpplistMenuView::setupScreen() { scrollList1.setNumberOfItems(params->visibleItems); scrollList1.invalidate(); scrollList1.initialize();}what is this the correct w
We are using TouchGFX for LCD UI design. It seems that the generated c files for image have reverse-ordered 16-bit data. We have to revert the image at run-time. Is there a way to revert the 16-bit order during image converting?
Hi, maybe now reported, but seems no solution. My design uses U599 with GPU2D. Many images is svg ok. But for example toggle buttons is generated as pngs.For save flash space i preffer L8 as default image format, but here TGFX fail in render animation . For example cover south change screen with this buttons show failing renders. Require change images to ARGB8888 result to fine animations, but 4x more storege. In 2025 absurd situation.Next question is how manage change colours in presets in designer. For example same toggle buttons variants ...
Hello every,I created some text areas to display the file name, which comes from a character array provided by the user's input. Below are the configuration settings for each text area.1.text area2.Texts->Typographies 3.code3.1.text area define in class touchgfx::TextAreaWithOneWildcard data06_text; touchgfx::TextAreaWithOneWildcard data05_text; touchgfx::TextAreaWithOneWildcard data04_text; touchgfx::TextAreaWithOneWildcard data03_text; touchgfx::TextAreaWithOneWildcard data02_text; touchgfx::TextAreaWithOneWildcard data01_text; static const uint16_t DATA06_TEXT_SIZE = 32; touchgfx::Unicode::UnicodeChar data06_textBuffer[DATA06_TEXT_SIZE]; static const uint16_t DATA05_TEXT_SIZE = 32; touchgfx::Unicode::UnicodeChar data05_textBuffer[DATA05_TEXT_SIZE]; static const uint16_t DATA04_TEXT_SIZE = 32; touchgfx::Unicode::UnicodeChar data04_textBuffer[DATA04_TEXT_SIZE]; static const uint16_t DATA03_TEXT_SIZE = 32; touchgfx::Unicode::UnicodeChar data03_textBuffer
Hello All,I am new to touchgfx and looking to implement something where a array of structure containing name and other parameters to display. I need to display parameters on selection of the names displayed. I have a created a container and able to update the parameter names to the textarea of scrollist as in picture.Now i need to implement a way where user can select any one Preset name and those corresponding parameters should load to the respective area. as in image attached. Just let me know the way to do it will try out things as suggested.
Hi Community,I’m working on an STM32H747I-DISCO board and trying to build a simple application using TouchGFX.I created an analog clock widget in TouchGFX Designer and successfully flashed it to the board. The clock displayed correctly on the LCD.However, when I modify the project (for example, changing UI elements or logic) and reflash it, the display does not update to reflect my changes.I am trying to develop application on analog clock which reads time through internal RTC and update in clock and it is failing.I’m looking for guidance on:Understanding how dual-core microcontrollers (like the STM32H747I with Cortex-M7 and Cortex-M4) handle TouchGFX applications.The correct procedure to flash TouchGFX-based projects after modifications, so that updates are reflected on the display.Any tips, explanations, or step-by-step guides would be really helpful.Thanks in advance!
I am learning touchgfx with stm32f469i-disco board, how to configure dsi-video mode ? i want to use ltdc , dma2d, dsi-video.c i download the demo Edit: moved to a new thread from STM32 dev kit with DSI and demo software playing video from SD card (ideally using DMA).
Hello everyone, I am using a STM32H750xx custom board with TouchGFX 4.24.1 and IAR version 9.40.2. I have an external flash memory using QSPI with memory mapped mode. I am encountering an issue after a firmware update is done. Here it is what I have done: 1) My firmware version 1.0.0 has an icf file with read only data located at 0x90000000-0x900FFFFF and Image,text and font located at 0x90100000-0x903FFFFF (as TouchGFX 's documentation says, I am using those keywords section ExtFlashSection, section TextFlashSection , section FontFlashSection in order to put image, text and fonts in external flash memory). It looks like this: place in ROM_TGFX_region { readonly };place in QSPI_TGFX_region { first section ExtFlashSection, section TextFlashSection, section FontFlashSection }; where ROM_TGFX_region is from 0x90000000 - to 0x900FFFFF; QSPI_TGFX_region is from 0x90100000 - to 0x903FFFFF; if I do a
The keil decentralized loading compilation has a warning and the generator bin cannot be run after downloading, and the generated gallery bin can be displayed after downloadingI don't know why the program bin file can't run after downloading with j flash, keil engineering direct download program can run,This is why the production code bin is not availablecode warningtouchgfx
Look at this beauty. In touchgfx\framework\include\touchgfx\hal\Types.hpp:static const float PI = 3.14159265358979323846f; ///< PIIn CMSIS-DSP\Include\dsp\fast_math_functions.h#ifndef PI #define PI 3.14159265358979f #endifFortunately, the conflict is caught at compile time.It’s an exceptionally rare situation when you might need something from TouchGFX (e.g., instrumentation) and CMSIS-DSP at the same time — but when it happens, you get this delightful collision.Just in case anyone is compiling a list of tricky interview questions.
i build a LCD display board with stm32L431 and 320*240 LCD and use touchGFX to develop UI, now i need control and select icon of LCD from external GPIO of STM32L431 , so, how to configure the touchGFX and concerned file ? anybody have similar program to refer ?
I am attempting to use the X-CUBE-DISPLAY module generated from STM32CubeMX for a ST7789V display. The configuration requires the selection of the LCD BUS IO driver to be a SPI port in Full-Duplex Master mode. However my display only has a single SDA line for input and output, so the SPI has to be configured in Half-Duplex Master mode. X-CUBE-DISPLAY will not allow this SPI port to be selected, so the code generation fails.Is there a way for the X-CUBE-DISPLAY to work with a half-duplex SPI peripheral?
Hello. I have installed Touchgfx to Windows. Am I right that I am generating code with Touchgfx and them import that code to my project on my Mac to CubeIDE ? Or the final upload step is on Windows in the Designer ? Thank you Edit: Moved from old thread I am using cube ide on my Mac OS . how I can use touchgfx with cube ide on Mac OS
Hello, I am blocked with a personnal project using a STM32F769I-DISCO, TouchGFX and audio: DMA IT is not triggered. I have no idea why, no idea how to investigate more in the code. I will provide few things in my question, not because I don't want but because I don't know yet what to provide. I created a project with TouchGFX Designer and now I want to add the BSP code to play audio. My code initialize all devices (created by the tool) and try to play audio /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DSIHOST_DSI_Init(); MX_LTDC_Init(); MX_FMC_Init(); MX_QUADSPI_Init(); MX_DMA2D_Init(); MX_I2C4_Init(); MX_LIBJPEG_Init(); MX_CRC_Init(); MX_USART1_UART_Init(); MX_DFSDM1_Init(); MX_SAI1_Init(); MX_I2S1_Init(); MX_TouchGFX_Init(); /* Call PreOsInit function */ MX_TouchGFX_PreOSInit(); /* USER CODE BEGIN 2 */ /* Init audio */ initAudio(); playAudio(); while(1); Audio code/** * @brief Plays the audio file * @PAram None * @retval None
Hi, If the project is large, multiple people need to divide the work to edit the UI pages, and then merge the edited pages together for compilation and debugging. Does the software have corresponding functions that can enable team collaboration? Best regardsJabari.Zhang
Hi I am developing a product based STM32 Microcontrollers. To start with the I am using a Development BoardNucleo H7A3AI Board.What I plan to do is, attach a LCD TFT Display to this and develop the prototype. I plan to use TouchGFX designer to develop a UI and develop the firmwareOne Problem I face to start with TouchGFX Designer is the development board Nucleo H7A3AI is NOT listed in the supported boards. (I am using TouchGFX Designer 4.25.1 )The boards which are listed in TouchGFX Designer all have an attached display. In my case we are developing product based on Nucleo H7A3AI Board (This board does not come with a LCD Display).In such case how can I add my board (Nucleo H7A3AI Board) into TouchGFX Designer ?The display I am planning to use is From RockTech Model number (RK043HN10E-T)The pin connectionsbetween the display and Nucleo H7A3AI Board is shown below. Si.NoConnector Pin NoDISPLAY PINSTM32H7A3ZI-Q(LCD)15R0PE026R1PA237R2PC1048R3PB059R4P
Hi, My MCU is a STM32H753BIT6. This is a custom board that works fine with SYNC-MODE displays types.I have a new display only works in DE MODE. It not requires the HSYNC or VSYNC signals.Is there any way to configure LTDC peripheral and TouchGFX to work only in DE MODE? This is a communication image about this mode. I disconnect physically the VSYNC/HSYNC signals and ground it to make sure.Thanks for any tip and help!
HiThe normal behavior of the division lines and labels of the graphs are that the they are placed at the integer multiples of the interval set for the widget. If the offset on the axis are zero, it will off cause be the most obvious solution.But in our application we got up to three curves in the same chart solved by placing multiple graphs on top of each other as the have different units on the axis. Only one of the Y-axis starts at zero and the divisions are therefore defined by this.But as the two other graphs has offset not in the division interval, the labels are not placed at the division lines. They are placed in an integer multiple of the interval. And that does not look good. Of cause I could disable the labels created from the graphs, and place them manually using text areas. But is there a solution to offset the location of the labels (and there values) and the division lines?Examples. This is what is possible: (Of cause I can use the right interval, but then the min/ma
I have a dynamic graph set to scrolling. When I call graph.clear(); it will set the initial graph back to my range 0-100, but once it starts scrolling it instantly jumps to the last highest value being the start of the new range instead of continuing scrolling.EX: Graphing is as expected to x = 200. Clear. Normal graphing 0-100. Once scroll starts, jumps to range 200-300 and starts graphing at x = 3000-200 : clear : 0-100 : 200-300 (graph and scrolling starting at 300)
So if I open a .cpp file by double clicking in Project Explorer, the syntax is not highlighted:But if I have an error, clicking on the file error opens up the file like this (from Problems Tab):Both files also open up in the tabs next to each other (as if it doesn't know the file is already open). Anyone know if there is a fix or how do I open a .cpp file and have it highlighted?Thanks
HelloI'm an amateur Touchgfx user.I've completed many challenging tasks with Touchgfx, but I need a very simple one.I want to set the output port high for the duration of a keystroke.I used the ClickListener instructions in the program, but they didn't work.I tried creating Box1 the same way and it works perfectly.With this code, it works while I hold the button down, and stops when I release it, just as I wanted.void BRHZLView::boxClickHandler( const Box& b, const ClickEvent& evt){if (evt.getType() == ClickEvent::PRESSED) {HAL_GPIO_WritePin(GPIOG, BZR_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, PST_I_Pin, GPIO_PIN_SET);} else if(evt.getType() == ClickEvent::RELEASED){HAL_GPIO_WritePin(GPIOG, BZR_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB, PST_I_Pin, GPIO_PIN_RESET);}But the flexbutton group keeps giving definition errors, and the program won't compile.I'm using Stm32h7b3i Evk, and the definitions in the base file don't match the definitions at https://support.touchgfx.com/do
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.