Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I have a .png image that I'm using in the TouchGFX GUI (utilizing the STM32H725AGI6), which I have fully integrated with the display and working.That image is going to dynamically change based on a specific value received from the code (0-100%). When it's 100%, the entire image is showing. When the value is 50%, the left half of the image is revealed and the right half will not be shown. When the value is 0%, the image is not showing. I was previously using a black box that was on a layer higher than the image and had it slowly cover it, but now I have a real background image and not a black box, so that is no longer feasible. Is there a way to dynamically define how much of the image is drawn? Something similar to the image below.
I attach examples and unselected examples of the "Do not generate the main" option of the Application Structure in the Project Manger of STM32CubeMX.In both cases, when TrueStudio is compiled, an error occurs in startup_stm32f769xx.s in the "startup" folder.The error is "undefined reference to 'main'".It is an error that "main" is not defined in "bl main" command.I want to know how to fix this error.
Hello All, I have set XPT2046 and set sample touch as specified by the documentation and I have getting coordinates accordingly but the problem is when I try to press the button I register the X, and Y coordinates but there is a delayed response, or the key is registered but touch gfx doesn't process forward.Touch Strokes are working fine when touch is pressed according to Debugger.CHECK THE VIDEO LINK BELOW FOR CLARIFICATIONVIDEO@jiangfan @Osman SOYKURT
Hi,In my project, I have an epaper screen driven by TouchGFX (4.22.0), Bluetooth and I try to manage the solution with the sequencer.Without the sequencer and bluetooth, the epaper works fine.I follow this solution Howto combine TouchGFX and WPAN BLE ? to manage TouchGFX, WPAN & sequencer all together. But I never go in the function "touchgfx_taskEntry". Did I miss something ?Edit :I follow the code step by step.During the initialisation, I see the task "shci_user_evt_proc" is well register in TaskCb by the function UTIL_SEQ_RegTask.But when I arrive at "UTIL_SEQ_RegTask(1 << CFG_TASK_SYSTEM_GFX_ID, UTIL_SEQ_RFU, touchgfx_taskEntry);", I don't go in UTIL_SEQ_Task. The execution go directly to startup_stm32wb.s at line 128 : Infinite_Loop:Edit2:I found that if I comment the "TL_Enable()" function in appe_Tl_Init(), I could register the task CFG_TASK_SYSTEM_GFX_ID.But I never go in the touchgfx_taskEntry() function anyway.Edit3:Ok, I found why it didn't work
Hello,Could somebody explain what is the purpose of this second line of code below taken from main.c in TouchGFX example for STM32HB3I-DK?:SDRAM_Initialization_Sequence(&hsdram1, &command);*(__IO uint32_t*)(0xD0000000) = 0x11111122;It works fine with provided example but my program (set up from scratch in CubeMX) is going to mem fault on this line. When I comment this line out my program works fine. D0000000 is start of address of external SDRAM. Is it something to do with testing speculative memory access? I know nothing about it.
I activated TouchGFX in CubeIDE (...->...-> TouchGFX Generator ),made the default project settings, generated code, but when I double-click from the file xxxxxxxx.tuchgfx.partI want to open TouchGFX, at the beginning I get a warning that<<< The path E:\PORCER STM32\my_F429i_5\TouchGFX contains spaces, this can result in erroneous behaviourwhile compiling >>> and then when I enter TouchGFX,during generation code gives<<< Generate Assetsmake -f simulator/gcc/Makefile assets -j8simulator/gcc/Makefile:20: *** Spaces not allowed in path. Stop.Failed >>>
Hi,I'm using STM32F746 MCU on my custom Board. My application uses TouchGFX Dynamic Graph widget on a 480x272 capacitive touch display.I want to know is it possible to change the Number of Data Points in runtime of the application? If the above method is not possible then How can I Increase or Decrease the Graph Plotting speed in application Run Time? I want that user can change the graph plotting speed in the application.For Eg. Suppose My ADC sampling rate is 500 Samples per second. I want to show 5 seconds or 10 seconds of ADC data on the display from start pixel to end pixel.
Hi I am luisI have tried to test stm32f4r9i-disco evaluation board.I made new stm32f4r9i mcu project and merged stm32f4r9i-disco evaluation code but I have a problem!! No matter what I modified in the code, I could see the same moved image.please help me I attached my code(click to below link) and shifted clock imageMy SourceCode
For an STM32H747i-DISCO board (800x480 lcd), I have used TouchGFX Designer v4.22.1 to create a very simple project with a box and static graph. The white box was maximized to the full screen. The static graph was untouched.I imported this project into CubeIDE v1.13.2.I want to be able to draw 799 horizontal line segments on the lcd. I am getting close but cannot get the resulting line to reach across the entire screen. It gets about 15% across and then stops.The starting point of this short line can be moved to the right by adding a constant to 'segmentCounter' in graph1.addDataPoint( segmentCounter , 240 );, but the length of the line doesn't change.Any hints to what I am doing wrong would be appreciated. The attached code should draw 799 one-pixel line line segments. Attached are Screen1View.cpp and .hpp, plus a picture of the display.
Hi Forum..I would like to know if it exists any commercial tools available for doing some automated test for the gui which is usable in touchgfx.I mean something similar to this done for QT :https://www.froglogic.com/squish/editions/automated-testing-embedded-qt-guis-hmis/
Board: STM32F429I-disco1How can I send an I2C command when a button is being pressed? So I set up a FlexButton to act as a toggle button and set its interaction to call a function (ToggleMute) which I would need to implement.My idea was just to use the HAL_I2C_Master_Transmit function in the ToggleMute function which is in the file Screen1View.cpp/hpp but the issue that I ran into is that the variable hi2c3 which I need to pass to the HAL_I2C function is privately declared in main.c meaning I cannot access it. So I do not know what to do.I thought of maybe having to use the Model and ModelListener files by making a function in main.c which is the functionality of the ToggleMute function so that way my ToggleMute function in Screen1View can just call that function in main. Even if that is correct I would not know how to go about it exactly.
Using STM32F469I-DISCO in video mode, the testing screen created in TouchGFX Designer is being printed to the DISCO board in video mode. The issue I am encountering is the start of the frame is being printed again and I am not sure how to solve this issue, I have tried change different porch values but the problem persists, would anyone know what could be creating this issue and a method to solve it? Below is my method of creating video mode from a fresh TouchGFX Designer project, would this creation method be the reason for this issue? TouchGFX Designer testing screen Testing screen being printed to STM32F469I-DISCO in video mode for otm8009a Methodology to creating the project.Using STM32F469I-DISCO in video mode:1. Built the project in TouchGFX Designer for STM32F469I-DISCO.2. Opened the generated project's STM32CubeMX .ioc file to convert to video mode.2.1. Changed LTDC's Parameter Settings porch values to the values found in otm8009a.h file.2.2. Changed LTDC's Layer Settings
Hi allI want to create a GUI, similar the Scroll Wheel in the provided examples.The only difference to the Example i need, is that it should always update the Selected value from the scroll wheel. Also when moving around. So I used the scrollWheel.getSelectedItem() which returns the selected item. But as the documentation says:"Gets selected item. If an animation is in progress, the item that is being scrolled to is returned, not the item that happens to be flying by at the time"What i actually want is to the the item which is selected also when flying over. Do you have a Idee, how i can get the selected Item also when a animation is in progress?
I made a custom STM32 board based on the schematics of Nucleo-G071RB and X-Nucleo-GFX01M2. On the development board, the TFT LCD works. However, when I program my custom board using STLINK-V3SET, the TFT LCD only shows a white screen.I did changing TFT LCD(DT022CTFT) : new TFT LCD just same. this is my custom board's MCU. This is my custom board's SWD pins 1. How can I program using STLINK-V3SET in TouchGFXDesigner?
Hi. I'm using the STM32F469 Discovery kit (32F469IDISCOVERY) and the code generated with TouchGFX Designer (4.21.3) works fine (showing GUI on the screen) until I set "Debug: Serial Wire" using CubeMX. Then the screen remains black. The strange thing is that depite disabling "Debug" - the code does not work anymore. Does anyone have any suggestions what to try? Thanks.
Hi.What I want is call model function(C++ function) in C.I dont use rtos.I add simple Queue in model and in tick function, check queue, pop and to do something.in queue just push one data (type int)I want to push Queue in model in C, but I dont know how to get model instance.How can I to do?thank you
I'm currently working with the STM32F736 Discovery board and an OV5640 sensor. I've successfully configured the DCMI for snapshot mode and enabled DCMI DMA interrupts. However, I've encountered an unusual issue. While I observe that the capture bit clears after frame completion, I'm not receiving a DMA interrupt as expected.In my current setup, I've been relying on the DMA interrupt to signify the completion of a frame. Unfortunately, this approach doesn't seem to be functioning as expected, as the 'hcamera_dcmi.State' isn't transitioning to 'HAL_DCMI_STATE_READY.'As an alternative, I've been depending on the 'CR.Capture' bit to signal frame completion. However, it appears that the frame time is longer than anticipated. I'd greatly appreciate any insights or guidance on addressing this issue.Thank you.
Good day I am trying to interface my GUI on my STM32F429i-DISC1 board for my final-year project using STM32CubeIDE (1.6.1) and TouchGFX (4.16.0 - 4.17.0 won't run on my PC so I opted for an older version) and I have run into the following problems (shown below). Any help regarding this matter is greatly appreciated.**** Incremental Build of configuration Debug for project SystemA.2 ****make -j2 all arm-none-eabi-g++ "../TouchGFX/target/generated/STM32DMA.cpp" -mcpu=cortex-m4 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DDEBUG -DSTM32F429xx -c -I../../Core/Inc -I../../Drivers/CMSIS/Include -I../../Drivers/BSP -I../../TouchGFX/target -I../../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../../TouchGFX/App -I../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../TouchGFX/target/generated -I../../Middlewares/Third_Party/FreeRTOS/Source/include -I../../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../../Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -I../../Drivers/STM32F4x
Hi, I'm a beginner with TouchGFX Designer. I am trying the following gauge example with minor changes:https://youtu.be/NdGgtKwQ6fg Everything works fine in the simulator.On the device needles are not visible, and arcs appear only for left gauge andpartially. What I'm I doing wrong? I use TouchGFX Designer 4.22.1The hardware is a Nucleo-G071RB board with a X-GFX01M2 TFT display (expansionboard). A zip of the project is available here:https://fichiers.dagami.org/Nucleo-G071RB-GFX01M2-gauge.zip Thanks for any help.
I’ve already asked and didn’t get any answer to the following question: how did it happen that TouchGFX, being ST product, does not support the very basic HW feature of each and every LTDC interface in STM32 controllers, namely – L8 (8bpp) format with hardware palette (look-up table) and the second layer with blending?Do similar limitations apply to other HW features as well or it is just L8 was that unlucky after so many years of TouchGFX development? Last CubeMX version with StemWin and dual layer with 8bpp support was 6.4.1, already coexisting with TouchGFX for few years. Now is CubeMX 6.9.2, TouchGFX 4.22.1 – and still very basic yet very important feature is missing, forcing to double memory requirements for GUI application where more than 256 colours are not necessary. GuiX provides that feature but also didn’t get any official ST support despite clear move towards ThreadX.We are a big ST customer for years, and are in the process of selecting GUI library at the moment. The lack
Hello everyone,This is the first time I will be using TouchGFX, and I'm not sure if what I want to do is possible. Additionally, considering that the MCU has only 64k of flash and 40k of RAM, is this integration feasible?.
Hi,I have read all the posts here about the changning of display format to 90° in run mode but it seems also not work!i will put here two images for the both modes (Landscape & Portrait) to see the issue which happend. I have added this screen_orientation := -rotate90 in the app.mk file then i called this function while the button is being clicked: application().gotoScreenWaitingConnectionPortraitScreenNoTransition(); HAL::getInstance()->setDisplayOrientation(ORIENTATION_PORTRAIT); It seems that the images are not rotated. Is there anything else I should do?Note: the second screen designed in portrait mode.Regards,Mahdi
Hello,I read about radio buttons and also checked the tutorial and examples.As far as it concerns my project a simple radio button is not flexible enough for what I want to do.I have a set of flex buttons in a screen and I want them to behave as if they were a set of radio buttons.Testwise I implemented this behaviour in the presenter class myself but I think this is not an elegant solution.Then I tried it with custom actions and triggers in the way that the screen has an action "reset other buttons" that will be called by an interaction each flex button does have. Another interaction will be triggered the action "reset other buttons" and this interaction I thought should be able to cange the state of the other flex buttons.I took the idea from the tutorial 5: https://support.touchgfx.com/docs/tutorials/tutorial-05There you can set the background color of a box from the interaction. But my flex buttons do not show up in the actions drop down menu. I think I am missing the point here /
I am trying to use the external QSPI flash to store some contents while touchgfx is running.I believe the correct procedure to do is:Suspend touchgfx task.Disable interrupts(LTDC and DMA2D)switch QSPI to indirect modeperform write to QSPI switch QSPI to memory mapped modeenable interrupts (LTDC and DMA2D)Resume touchgfx taskI am following above procedure but the device restarts approximately after 90 seconds of suspending the touchgfx task. Even though there is no write operation to QSPI.I would like to know if the above mentioned procedure is correct ?also what would be correct place to suspend and resume the task ?Note: we are using EMBOS. @Martin KJELDSEN it would be helpful if you could provide some tips here.
HiI would like fade-in and fade-out of widget text, using a single button ,is possible?How I can do?Thank
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.