Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi, CARHER I just want to know what is the software you show in the picture? Where to download it? thank you. post created based on a command posted on an old thread. here is the picture mentioned by the customer:
hiWhen there are many menus, finding them becomes a bit difficult. If this menu is added, it will be possible to categorize them.
based on this discussion: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/long-press-button-increment-fast-value/m-p/101030 I would like to implement an autoincrement mode by using "repeat button" and/or "flexbutton".I'm trying to understand how is possibile catch the tick of the first button pression, and at the same time I need a way to understand easily the release tick. (for each button)In this way, it will possibile to realise a fast increment systems on our variables.I:E.if button pression time < 500ms, then = variabie + 1 (single step);if 500ms < button pression time < 5000ms = variable + 100, (step every 200ms);if button pression time > 5000ms = variable + 1000, (step every 200ms);if button releae = stop incrementI would like to avoid the implementation for each buttons, all the timing controls check on handleTickEvent callback.(I have more than 100 buttons on the project).So if someone has some different idea, to realize it , ple
Dear Community,We have seen many threads asking whether TouchGFX supports multitouch. To address this question, I am sharing an application running on the STM32H7S78-DK where multitouch is supported, allowing you to rotate and zoom a texture mapper. This application is compatible with TouchGFX version 4.24.2.So, yes, TouchGFX can work with multitouch. However, our TouchGFX Board Setup Packages (TBS) are not designed to work with multitouch by default. This is because the behavior of additional touches on the screen depends on your specific application. For instance, if you have multiple widgets on your screen, it is unpredictable to us how the application will react to multitouch. Will it change one widget, the entire screen, zoom, move a widget, or rotate? These behaviors are application-specific.If you'd like to understand how we did in the shared project, we invite you to look at the STM32TouchController.cpp file, particularly the sampleTouch() function. In this function, we check t
Hi, i'm kinda new to TouchGFX and i'm trying to programmatically add text inside a container of mine that i created to use as template in a ScrollList, but I was unsuccessful. The idea is: For each text added, an item appears in ScrollList WITH the textI have a textArea in touch designer with wildcard bufferThat's what im trying to do in code. At the moment, the list items appeared, but no text. Most of the code was created by ChatGPT as long as i don't know how to proceedview.cpp#include <gui/usb_teste_screen/usb_testeView.hpp> usb_testeView::usb_testeView() {} void usb_testeView::setupScreen() { usb_testeViewBase::setupScreen(); addItem("Test1"); addItem("Test2"); addItem("Test3"); } void usb_testeView::tearDownScreen() { usb_testeViewBase::tearDownScreen(); } void usb_testeView::addItem(const char* text) { int numItems = scrollList2.getNumberOfItems(); scrollList2.setNumberOfItems(numItems + 1); scrollList2.invalidate(); } void usb_testeView::updateItem
Dear Sir, Hardware: STM32H7B3I-DKSoftware: STM32MX 6.13.0 / STM32CubeIDE 1.17.0 / TouchGFX 4.24.1/ STM32Cube_FW_H7_V1.12.0 Start the project from TouchGFX, and then refer to STM32 Graphics Workshop (STM32H7BWorkshop2020_labs12345), to develop the details in Model.hpp, ModelListener.hpp, Model.cpp, and main.c, etc. Aiming to display a data from hardware side on the screen, at this stage it is just a float constant (as can be seen in main.c), later it will be data from an external ADC. The project can display a float constant (the 1.5555) in the Simulator on TouchGFX (refer to Model.cpp file), but in STM32CubeIDE, there are 2 build errors as show below (As a result, unable to show the float constant from main.c on the screen.): (Copy from the Console of STM32CubeIDE after build):C:/TouchGFXProjects/ADC_Output_Display/TouchGFX/gui/src/model/Model.cpp:30: undefined reference to `Adc_Output_GetValue'collect2.exe: error: ld returned 1 exit statusmake: *** [makefile:103: S
I have designed a STM32F429 Custom TFT Board With 4.3" TFT it is based on 32F429IDISCOVERY MCU + RAM + 4.3" TFT in 16 bit mode and I'm using TouchGFX. I have few questions.1) It is possible to remove External RAM from the System.2) How to limit RAM Usage so as to use the internal MCU RAM only
Hello,I am a beginner, so forgive me if my question is basic.I'm currently working on building a TouchGFX application that reads CAN Values and displays them on the STM32F746F Discovery Board. However, when I try to run the application, the program builds and downloads successfully before I get the error "Could not halt device (18)" and the screen on the board shows up white. So far, the only things that I have done to the application after generating it from TouchGFX is change the clock configuration and activate CAN1. I've attached screenshots of both in case they may be of use.What do you think is causing the error?Thank you.
I am making a game console on the aforementioned board. The game is loaded from an SD card and runs in user mode. As such I have a couple of system calls which allows the game to work properly. The game in question is already done, now I am just working on scaling it, since it operates on 256x160 resolution which is fairly small to see with naked eye. I would like to scale it to 768x480, or times 3 the original resolution. As such, I have this function which should scale the content using DMA2D. The code example is down below. extern DMA2D_HandleTypeDef hdma2d; void dma2d_scale_image(uint32_t src, uint32_t mid, uint32_t dst, uint32_t w, uint32_t h, uint8_t scaling_factor) { uint32_t dstW = w * scaling_factor, dstH = h * scaling_factor; /* columns */ hdma2d.Instance->FGOR = w - 1; hdma2d.Instance->OOR = dstW - 1; for (int i=0; i<dstW; i++) { volatile uint32_t s = src + (i/scaling_factor) * 4; HAL_StatusTypeDef status = HAL_DMA2D_Start(&hdma
I want to create a scrollWheel that has 3 preset options. Option A, Option B, and Option A&BThe issue I have is that I can never get itemIndex = 1 in scrollWheelUpdateItem callback , only index 0 and 2. Also, after I first change wheel, it takes a while to be able to change it again.I tried to provide all the relevant code and touchgfx setup. Appreciate if you can tell me what is incorrect. Here is my Container (MenuItem):Here is how I set up my text:scrollWheel: Here is Container MenuItem.cpp:#include <gui/containers/MenuItem.hpp> #include <texts/TextKeysAndLanguages.hpp> #include <BitmapDatabase.hpp> MenuItem::MenuItem() { } void MenuItem::initialize() { MenuItemBase::initialize(); } void MenuItem::setWheelElements(int item) { switch (item) { case 0: text.invalidate(); text.setTypedText(TypedText(T_S1)); break; case 1: text.invalidate(); text.setTypedText(TypedText(T_S2)); break; ca
Hey ST team,i'm currently working on a quite large GUI project and therefore need to create a lot of screens and containers. It happens that the designer tool chrashs some time. Unfortunately, I forget to save the project from time to time. Is it possible to implement an auto-save function for the designer tool? I would be very pleased to receive feedback from you.Greets,Marvin
Hi Gfx Team,Could you consider adding an option to delete all auto-generated codefolder /generatedAnd all files generated during the build process?folder /build Thanks
Hello,I'm looking to create a text area that also acts as a progress meter, with the colour of the text filling and emptying vertically as a progress meter might. Is there any way this is possible?I've attached some concept art for what I'm trying to achieve.All the best,JRF
Hey ST team,i'm currently working on a quite large GUI project and therefore need to create a lot of screens and containers.You added the feature to create groups for added text sources some time ago. Is it possible to create groups for screens and containers as well in a future version? It would certainly contribute to clarity if many screens and containers were created. I would be very pleased to receive feedback from you.Greets,Marvin
I've created a TouchGFX project for an LTDC LCD with a H7a3 Nucleo board. The project includes a static graph displayed on the LCD. The project will compile, run and properly display the TouchGFX designed screen with the static graph. Next step would be to change the data on the graph from my custom code during run-time - possibly triggered from the button on the Nucleo. However, I find a dead-end since main.c only has: #include "app_touchgfx.h" and cannot see a path to Model, Presenter or View classes. I can't understand how any of the generated touchgfx code is referenced back to main.c. How do I call graph1.addpoint() from main()? Indirectly or directly. Or, maybe call from model:tick()??How is the touchGFX code able to compile without references to all the TouchGFX code from main.c? More importantly, how to access the screen objects in code without any references to it from user code (main.c)??Are there any TouchGFX examples which
Hello,I'm currently in the process of creating a Custom Container top bar (Banner) with a clock (and other values like text with wildcard) that propagates through the screens. But I hit a dead end days ago and I cannot find the solution.Step 1: The fake hardware sets the timeStep 2: I propagate it to the modelStep 3: I propagate it to the presenter of the first screenStep 4 : I propagate it to the custom container Banner present on all my screens. → That's where I have my problem.The problem:The clock updates to the time I set in my Hardware for a second, then the next second (60 ticks), it is set to 00:00:01 (first second passed) and when I change screen, the clock propagates as I want to but with the basis of the first screen aka 00:00:01.I've based the application mainly on this ST post and glanced info in other posts but I can't manage to make my app work : https://community.st.com/s/question/0D50X0000C5SiHjSQK/where-is-code-editor-in-touchgfx-also-where-is-output-window-to-know-er
TouchGFX Simulator is not working and it doesn't give any error while creating code or running the simulator. I created a new project I didn't even choose a board I tried it with the "Simulator"I want to try some ui designs in TouchGFX. I created a new project in Simulator type: I just added a white box:I generated code: Generate Code Generate Wrote generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hpp Wrote generated/gui_generated/src/screen1_screen/Screen1ViewBase.cpp Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Done I clicked "Run Simulator": Run Simulator Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Compile make -f simulator/gcc/Makefile -j8 D
Hi,I was able to successfully use arm_math.h in stm32cubeIDE and I did the same for the touchgfx application generated cubeIDE project.But when I tried compiling the same with touchgfx , it was showing an error "arm_math.h" not found however , building the stm32cubeIDE project generated by touchgfx builds fine. I am totally lost how to integrate DSP library to touchgfx so it can flash along with UI
hello, I'm currently developing an application that features more than 150 screens. However, I've encountered a significant challenge: once I build the code, the overall size exceeds the available flash memory. While I'm using external flash for images, I still need a solution to accommodate the large code base . What strategies or best practices can I implement to optimize my application’s size and ensure it runs smoothly? Any insights or recommendations would be greatly appreciated!
Hi, i am using linux and want to customise STM32U5A9 discovery kit display. I am not able to use touchGFX in Linux. Also if i create a project in windows for touch GFX and try to build in it Linux stm32cubeide i am getting TouchGFX/target/CortexMMCUInstrumentation.cpp', needed by 'Application/User/TouchGFX/Target/CortexMMCUInstrumentation.o' above error. Please suggest any other platform to customise display for my discovery kit or how can i build my project imported from windows in stm32cubeide.
Hello Everyone,Earlier we have successfully developed a variant using STM32F746 Discovery board but now we have shifted towards our own developed PCB with custom LCD Display 800 * 480.Our new PCB uses MT25Q128A external flash for storing images, text and font used by TouchGFX and we are using single buffer allocation in external SDRAM for framebuffer. We are using different pins for QuadSPI communication so had to develop custom external loader for this. We have tested the external loader for various images and it works fine.When we started inputting texts in TouchGFX the system would wait infinitely in xQueueSemaphoreTake() function so we suspected something might be wrong with loading from external flash so we created another project this time stored everything in internal flash, again the result was same, the TouchGFX hangs while using texts.After searching through the community we came across following links:https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/ui-stuck-in-takefr
Board InformationI am using STM32H7B3I-DK and have generated a project using the TouchGFXDesigner. I have then modified the pin configuration through STM32CubeIDE.Problem DescriptionI want to read the value of a resistance (and thus the voltage) through the ADC and display it on the screen. I have looked at the board schematics and seen that I need to configure Pin PA4 to read ADC (ADC1_INP18). However, the clock needs to be reconfigured for some reason. So I run the automatic clock issue solver and flash the code to my board, where I just get a blank (white) screen.This is really confusing to me because the tutorials I have watched on the topic never have to configure the clock and thus don't run into this issue. Thanks in advance!
Hello ST Community,I’ve been working on a project to enable TouchGFX on my STM32H735-DK, but instead of using the TouchGFX Designer, I decided to configure everything manually to display a pre-designed image on the screen.The IssueInitially, everything seemed to work fine—I could see the image on the screen as expected. However, I noticed a strange issue:If I reboot my PC, the screen displays a blank white background instead of the image.The problem persists only when the board is disconnected or powered off. Pressing the RST button on the board does not cause this issue.Additionally, after disconnecting the board, the ST-LINK connection fails with the error:Error: No device found on ST-LINK.To fix this, I need to:Connect the board to STM32CubeProgrammer while holding the RST button.Modify the Option Bytes (specifically, reset the RDP level to Level 0).ObservationsI also have a test project generated using TouchGFX Designer, and I noticed the following:To flash my manually config
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.