Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello all,I have used TouchGFX for one project before (see https://www.eevblog.com/forum/projects/high-voltage-electronic-load-(500v-500ma)/msg4833872/#msg4833872)which was lots of trial and error, following some tutorials. I still find the architecture (MVP) pretty confusing, so this time I am asking for your help to set this up properly:I want to build a user interface module (based on an existing module like STM32F469I DISCO) that displays pre-defined screens. It will be connected to a host via a fast serial link (UART or SPI). From the host, it might get commands likeSwitch to screen 2Put text "asdfasdf" in text field 23set gauge 17 to value 1234... you get the idea.In the opposite direction the UI module should send messages for UI events likebutton 5 pressedslider 8 set to value 123How do I structure the code? I'll have CodeMX generate the HAL interface for a full duplex UART, generating interrupts for received characters. From there, a message handler would collect th
I am new to the touchGFX ecosystem and I am trying to setup a touchGFX project to work with the STM32CubeIDE. I have looked at various other forum posts, youtube videos, and the touchGFX board bring up documentation to no avail. I can setup a basic project within the IDE but as soon as I add touchGFX I run into 182 undefined reference errors. I have tried starting the project in CubeMX with and without the generate under root box checked and I run into the same issues. I have noticed that by when I attempt to build the project many of my files are crossed out in the project explorer( see screenshot). I have attached a zip file of my attempt to create a blank project that just has touchGFX initialized and builds correctly. Thanks in advance
Hi,I'm using virtual function calls in order to handle my click events. When a Screen Change shall be done, I'm using the application().gotoViewNoTransition() Funktions inside those virtual functions.When I'm not using TouchGFX Designer Change Screen Settings to the View at all (because I'm only using virtual function calls) then these GotoView Funktions are not generated.So either I Need some other possibility to change the Screen, or you can tell me how to enforce the Generation of this GotoView-Functions even without any Change Screen Event in T-GFX Designer.Thank you for your answer in advance,Denis Kökeny.
Hello,I'm currently learning how to use an STM32H7B3I-EVAL, I'm just starting out. I'm trying to debug a simple TouchGFX project with only a slider with STM32CubeIDE.The problem is that when debugging I get a warning:Warning: the current language does not match this frame. set *(int *)0xE000EDFC=*(int *)0xE000EDFC|0x7F0I use : TouchGFX 4.20 CubeIDE 1.9Does anyone have an explication please?
I am currently working on a project using TouchGFX on STM32 microcontrollers and have encountered a challenge with implementing animations for a scroll container. Specifically, I need to move a scroll container and ensure that the data within it moves accordingly.To provide more context, I have attached a reference video that illustrates the issue and what I am trying to achieve. The video shows the current behavior and highlights the specific problem I am facing with moving the scroll container and the data inside it.Could someone please provide guidance on how to properly animate the movement of a scroll container and ensure that the data within it moves in sync? Any advice, sample code, or resources related to this would be greatly appreciated. https://youtu.be/J8rWm0xfuKA
Hi @binod1780 I have good experience with BareMetal TouchGFX projects with mostly my own developed custom development board.Following is my latest tiny experiment of TouchGFX on 2.95" 854X480 RGB TFT and STM32H745 core board on the back.Here is one of my custom STM32H745 Development board running Full-HD display over VGA cable.Following is my same dev board , TouchGFX running on Samsung Tab3 10.1inch 1280X800 TFT.following is the link of short video of above experiment.`https://www.youtube.com/watch?v=xE5iAROBQwc Let me know if you need some guide-lines about implementing TouchGFX on your custom board.I can generate the project in MX for you if you provide schematics of your board.regardsI.N
Hi team,I am using the STM32H753BIT6 MCU and a 1Gbit parallel NOR flash (MT28EW01GABA), which is an alternative to the 128Mbit default flash on the evaluation board. Unfortunately, I did not use QSPI in the hardware design.Can anyone explain how to use the IAR project on our custom hardware, which includes a TouchGFX GUI project? I am able to enable TouchGFX using the internal flash, but I need guidance on enabling the external NOR flash for at least 16MB of storage.I followed this link:How to implement and use your own external flash l... - STMicroelectronics Communityand tried using the 128Mbit parallel flash example program from GitHub. However, from respository GPIO example HEX file is used in cube programmer,it shows the same addresses, 0x08000000 and 0x60000000. I'm unsure if this external loader will work for my NOR flash for testing, given that it should store up to 16MB. or if i need to follow the steps in guide, i didn't find .c and .h file for my flash in any where.?Please g
There's some sample code here showing how to do an on-screen cursor when editing the content of a TextArea. I decided it would be easier if I could have a screen independent object that could be associated with any TextAreaWithOneWildcard (which is what I plan to use to display all my editable data fields).If I define the Line widget I use as a cursor in the TouchGFX Designer it generate code like this in the View's Base class definition: touchgfx::Line aCursor; touchgfx::PainterARGB2222 aCursorPainter;then initializes it like so, in the constructor:aCursor.setPosition(333, 17, 2, 30);aCursorPainter.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));aCursor.setPainter(aCursorPainter);aCursor.setStart(0, 0);aCursor.setEnd(0, 28);aCursor.setLineWidth(1);add(aCursor);I can then associate this with my AttachableCursor class where I define a pointer to a Line widget, which I assign in the constructor of any View that will use it:attachableCursor.setCursor(&aCursor);Th
Hi,I have a custom board with STM32H7 & TouchGFX.I'm using DMA triggered by interrupt to sample datas with my ADC. Without DCache enable, it's working well. But TouchGFX fails if DCache is disabled (problem meet by others here: https://community.st.com/s/question/0D53W00000S752ySAB/touchgfx-4160-issue-when-dcache-is-disabled )And if my DCache is enabled, my ADC DMA sampling fails if I move from one screen to an other. (the DMA appears to stop)I was thinking not using DMA for ADC but it kinds of mess with the generated code.Any ideas how I can keep both DMA with ADC & TouchGFX running ?Thanks !
I am trying to get the https://github.com/lvgl/lv_port_stm32h745i_disco to run on the STM32H750 instead of the H745 disco.I have selected the external loader and at startup the corresponding project loader. In the main.c file of the disco port project I have removed the QSPI inits.I replaced the linker script file with the content from the linker script of LTDC_Paint example for the STM32H750.It compiles and flashes everything without errors, but nothing works, also no LED starts.What else do I have to adjust or should I consider?
I am using STM32F469i-Disco board with a custom DSI video mode LCD interface and TouchGFX.The display is working and renders the initial screen, however the screen is not being updated.I know the reason for this is because I am having difficulty defining the call to OSWrappers::signalVSync() from the LTDC_IRQHandler() function in stm32f4xx_it.c, this is a requirement to unblock the TouchGFX Engine main loop. The LTDC interrupt is enabled and the function LTDC_IRQHandler() is being called (established by debug).My software skills are not that strong and the problem that I am having is not understanding how to call the C++ function OSWrappers::signalVSync() from the C function LTDC_IRQHandler().The TouchGFX manual shows an example for the STM32F7 as follows:Implementing this code in the STM32F4xx LTDC_IRQHandler() results in a syntax error when the directive extern "C" is encountered.I have included OSWrappers.hpp in my code and set the apropriate include p
Hi. Using a STM32L4R9I-Discovery board with a connected ST7789VI screen. I'm trying to display a design I made in TouchGFX, yet I'm getting some distortion in the middle and quite a bit of misalignment where the bottom part of the screen is on the top and the top is on the bottom. ALso, I've noticed that the right and left sides of the screen sometimes get mixed up. I initially thought it was the flushing that was the issue, but I printed the framebuffer content pre-flushing and I noticed that I had corrupt/missing pixel data around where I'm experiencing the distortion (pictures attached). Can anyone help out please?
Hello,I'm using stm32CubeIDE V1.9.I wanted create new project example based on "LTDC_Display_1Layer".Before - I deleted all folder related to this project (because I created it already and did something into but wanted start again from a fresh project) .I also installed CubeIDE new.Now I still get this stupid error, see screenshot below.What can I do? New installation of V1.9 and new start of computer does not work...Thank you
Hi team,I have interfaced LTDC and TouchGFX, and they are running without any problems. My CTP driver is GT9271. How do I configure this with the H753 custom board?I found a video on YouTubeAdding External Flash (QSPI) and touchscreen driver to custom board - WARNING: BORING VIDEO ;) - YouTubethat goes through the process using the BSP of discovery boards where his CTP is similar to the discovery board. However, I noticed that the H743I-EVAL BSP uses a different driver.What steps should I take to achieve the exact output? Please guide me as we are almost ready with the UI.Thank you.Best regards,Jr_Engr_Mbed
what mean by this error? don't understand
Hi everyone,I’m working on a project that requires developing a driver for the Goodix GT2931 capacitive touch controller using an STM32 microcontroller. While I’ve set up basic I2C communication in STM32CubeMX, I'm struggling with the driver code implementation.Challenges:1. Register Mapping: I’m unsure about the correct register addresses for the GT2931. If anyone has experience or documentation, I’d appreciate guidance.2. I2C Communication: I'm facing issues with structuring I2C read/write sequences. Any code snippets or explanations would be helpful.3. Touch Data Handling:- Reading Coordinates: Need help understanding how to correctly read and interpret touch data.- Interrupts: Advice on handling touch interrupts efficiently would be great.Request:- Sample Driver Code: If anyone has a driver for the GT2931 or similar, sharing it would be very helpful.- Best Practices: Tips on optimizing I2C communication, reset timing, and accurate touch data capture.- MCU: STM32H743IIT6Any assistan
Hi TouchGFX team,I'm in dire need of a test framework for my TouchGFX projects, and I've heard that you already make use of an internal version that allows you to step through a program frame by frame. That would be really useful!Do you plan on releasing this to the public?Best regards,Örjan
I saw a video on Youtube (https://www.youtube.com/watch?v=E5RraVX_IuA) about animation and I found the effect great. But I don't see the example code as other videos do, so anyone can share the example or materials in this video?
The last custom board project I did, the ST contact told me to start with TouchGFX designer (4.20.0) and generate the project from there. Then I was able to import the existing project into STM32CubeIDE. However the new version 4.23.2 does not seem to generate the .cproject and .project files in order to import the existing project into STM32CubeIDE. Is there something I'm missing?
Hi Team,I hope this message finds you well. I wanted to inquire if the TouchGFX team has any plans to introduce a BoxWithRoundedCorner widget in TouchGFX Designer.I’ve created a custom implementation on my end, but managing multiple widgets has proven to be quite challenging. The process of manually adding a significant amount of code to the application for each instance is cumbersome and time-consuming.Having a dedicated BoxWithRoundedCorner widget in the Designer would greatly simplify development and enhance productivity by streamlining the integration of rounded corner boxes into applications.Thank you for considering this request, and I look forward to any updates you may have! Best regards,Amol
when i run on touchgfx but with cubeide when i build there isn't error : gcc/makefile_cm7:503: recipe for target 'CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o' failedmake[3]: *** [CM7/TouchGFX/build/Riverdi_70STM32H7/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.o] Error 1make[3]: Leaving directory 'c:/Users/Aziz/Downloads/aaaaaa/MV_Display'gcc/makefile_cm7:438: recipe for target 'generate_assets' failedmake[2]: Leaving directory 'c:/Users/Aziz/Downloads/aaaaaa/MV_Display'make[2]: *** [generate_assets] Error 2Makefile_cm7:51: recipe for target 'all' failedmake[1]: Leaving directory 'C:/Users/Aziz/Downloads/aaaaaa/MV_Display/gcc'make[1]: *** [all] Error 2../../gcc/Makefile:10: recipe for target 'flash' failedmake: *** [flash] Error 2FailedFailed
I am using similar hardware to the stm32f469i-disco however the screen is a st7701 and is ran in video mode (burst mode) with double buffer.I have added a video below showing the issue, for context the framebuffer doesn't shift with quick interactions however it will shift with longer interactions such as in the video, what is shown is a colour picker map, when moving across the map to choose the colour sometimes the screen will shift horizontally in portrait mode to the right of the screen, sometimes it can be slight shifts and sometimes it can be extreme shifts. The shift of framebuffer that is shown on screen will stay like that however the touch zones for the touch panel have not shifted.Has this happened to anyone or would you have any insight as to what could be the cause of the issue?
Generating Code in Post Generate Target step failed, I'm making custom board project using STM34F411E-DISCO board and LCD with SPI 1 connectivity, after configure board in STM32CubeMX ver 6.12 --> Generate Code --> add TouchGFX_DataTransfer.c and .h library --> open the project in TouchGFX, I put box in my screen, and tried to generate code to test configuration and got failed massage when generate the code. here the failed massage:Generate Code Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config Reading ./target.config Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Post Generate Target touchgfx update_project D:/TouchGFX/4.24.0/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/gems/3.0.0/gems/touchgfx-cli-4.24.0/lib/touchgfx/generators/keil_project_updater.rb:313:in `check_compiler_options': undefined method `text' for nil:NilClass (NoMethodError) from D:/TouchGF
Hi,I'm experimenting a bit with the TouchGFX designer and my STM32U5A9J-DK board. I created a simple project with couple of buttons and some labels and it worked straight out of the box. Imported on STM32CubeIDE, built and ran flawlessly. After playing a bit around I noticed that the display starting to show some artifacts. For example the following screen is rendered wrong, I cant really see why its even picking that red colour unless its some leftover from some previous images I used that was red.TouchGFX Designer PreviewRendered ScreenAnother example:DesignRenderingDepending on how I change the design, I may hit a clean/proper rendering.At the beginning I thought it may be memory related but even increasing memory pool size for TouchGFX did not solve or improve it. Any hints? Thanks a lot!
I have a STM32H7B3 Discovery Kit.To free up RAM for my application I tried to configure the PartialFramebaffer.Compilation fails with the following error message:undefined reference to `touchgfxDisplayDriverTransmitActive'The question is: is it possible in this scenario to use the PartialFramebaffer strategy ?
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.