Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi there Touchgfx team! I have a header that contains a textarea "date" acrros different screens. The idea is that the model reads the "date" from the backend RTC and expose the get/set methods, for all screens to read it.I created this in my model: const char* get_date() const { return date; } const char *date = "MON 01 / 01:23 AM"; I can confirm the "date" arrives correctly to other screens by using touchgfx_printf. The problem is that once I try to update the textarea wildcard it appears as a "?" in the real screen. The ranges wildcards are ok. Also, since this date its not const, I think I will need a string but I'm not sure how to implement it on Touchgfx. Thanks a lot in advance
Hi everyone, I'm using the STM32F407G-DISC1 development board, which is mounted on a custom PCB I designed and powered by an external power supply. I've connected a Capacitive Graphic LCD Display Module (EVE3-70G-BLM-TPC-F32) to the custom PCB via SPI. The display and touch functionality work perfectly when the STM32 is connected to a PC, and the code runs on the board as expected. Interestingly, if I first connect the dev board to the PC, run the code via STM32CubeIDE, and then disconnect it from the PC, both the display and touch functionality continue to work. However, when I power the board directly with the external power supply, the display powers on, but the touchscreen stops working.
Hello , i am working for the first time on TouchGfx and learning step by step some basics about it . I currently encountred a problem with QR Code Feature . If i put an URL Link longer than 17 characters ,it wont be shown after i run the simulation . Is it a commun Problem ?
Hi,I want to show a circle progress like below:In touchgfx's circleProgress, there is't the little circle at the progress line end;So I am drawing the little circle and update its position realtime;Is there any simpler way to do the same things?And more, I need the sine() and the cosine() to calculate the position of the little circle, I find some info from HERE, but I don't know how to use it. Is there any example?Thanks!
Hi there Touchgfx team! I have a view with a custom container list as in the ListLayout example. class test_selectionView : public test_selectionViewBase { public: test_selectionView(); virtual ~test_selectionView() {} virtual void setupScreen(); virtual void tearDownScreen(); /** * Handler of list element clicks. */ void listElementClicked(CustomListElement &element); protected: static const int number_of_select_test_kit_list_elements = 30; CustomListElement select_test_kit_list_elements[number_of_select_test_kit_list_elements]; // Callback that is assigned to each list element Callback<test_selectionView, CustomListElement &> listElementClickedCallback; }; I would like to have the number of elements in the model, and access it with a get method. Right now, you can see I'm harcoding the "30" value in the view. I already created number_of_select_test_kit_list_elements in the model and created the g
Hi there Touchgfx team!I have two different views and I would like to create an enum that can be accessible from both views. I want to avoid the scenario of creating the same enum twice in each view. Is that possible? Thanks a lot in advance
Hi there Touchgfx team! I have a screen that does a lot different process based on buttons. I find myself scrolling up/down a lot so it feels its time to move functions into another file for simplicity. I want to offload helperfunctions that are in the calibrateView.cpp. Should I create a normal .cpp file or do I need to create a "helper" class? My purpose is just to help with readability and maintainability. Thanks a lot in advance!
I'm using touchgfx 4.22 on a stm32h755zi mcu. The touchgfx run on the M7 core. The mcu is running at 480MHz.The board is an internal board with a 800x480 display connected in parallel to the LTDC interface with a 18bit bus as shown below:I use an rgb565 buffer in an external psram. Touchgfx settings are as follow:And here the dma2d settings:I've made a simple screen where there is a fade of a box of 800x480 pixel (all the screen) from gray color to transparent but this fade is very slow. With or without DMA, the result is the same.Here a video of the fade: https://www.youtube.com/watch?v=OfER5-DQu4Msorry for the poor video quality; however the screen starts in grey color and after 1 second the box in grey color disappears and another screen is shown. All of this with a fade effect.And here it is how I made the fade; it's a simple interaction:As far as I understand the fade duration should be 1s but it is 7-8 seconds. A part the wrong duration, the fade is quite sloppy with or without d
So, have been using TouchGFX and FreeRTOS with the CubeIDE. But, am looking into Zephyr because of the middleware (for things like networking including WiFi) it can pull in. But I'm still going to need a GUI.Is anyone successfully using TouchGFX with Zephyr? How painful was that to integrate?Should I be looking at something else besides TouchGFX for GUI design? Key features for me are the Windows WYSIWYG design and simulation capabilities; Code generation; Built-in widgets (although I wish there were more).I've considered Qt but still think TouchGFX is a better choice provided you're using ST.Thanks in advance for the insight.Keith
Hi there Touchgfx team! I've these screen requirements The user can select a test in the "test selection screen". Based on that selection, a "calibrate screen" will be created with different steps as you can see in the 3 images. I've mora than 30 test options and a set of different steps for each one. How can I do this? I want to avoid the scenario of creating 30 different screens for each test. Is there a way to send the test option selected to the "calibrate screen", and based on that create the list of steps? Thanks a lot in advance
I am trying to save a much RAM as Possible in my project and realized there are some buffers associated with MJPEG that are taking up a noticeable amount of memory. I am not using any videos in my project and wondering if there is a setting I missed that would allow me to just remove MJPEG support and free up that memory.I am also not using any .JPEG (Only .PNG), so I tried just unchecking Multimedia JPEG in CubeMx, but CubeMx freezes upon doing so. Is JPEG necessary for all touchGFX projects?
Hi there Touchgfx team! I have these screensI already implemented all the navigation. When I'm in volume screen, if I start pressing the up/down arrow buttons, the read widgets appears again. Is there any way to avoid this different than calling invalidate() every single time? All those 4 screens are developed inside a single screen. Based on the user input, I just change their state to visible/invisible. Thanks a lot in advance
Hi there Touchgfx team! I have these screens Every "calibrate screen" header text is based on the test selected on "test selection screen". How can I update the text on the header based on the user selection? Thanks a lot in advance
Hello,I am having a custom touchgfx application running on a RiverDI 5 inch display board with STM32. During the application run, the application halts at 'hardfault handler' randomly after few hours of run. These are the measure I tried to debug the issue, but none of them worked.1. Increased the touchgfx task priority to high (from normal)2. Increased the touchgfx task size3. Set the CHECK_FOR_STACK_OVERFLOW to 2 in ioc4. Modified the clock sourceEverytime when the fault hits, there is no proper stack trace and the stack trace doesnt show the issue origin. The fault analyzer is showing PRECISERR in the window.When I debugged further in assembly instructions, one time it faulted in vldr execution and next time it faulted in ldr execution. Is there a way I can get more information on the stack trace? The issue is not quickly reproducible, it reproduces randomly over 4 hours or above.Your support is much appreciated! Thanks & RegardsRiverDI user
Hi,I have a RIverDI 5 inch display where I am trying to update the firmware through OTA. Basically I have a ESP board which receives the Firmware chunk through BLE and I need to store the chunks in the STM32. Unfortunately my application elf is of size 4MB+ and I cant store the chunks in the internal flash as the total flash memory size is of 4MB. Currently the application code is written into Internal flash and Touchgfx files and image files are written into the external flash when I update the FW through ST-Link, I need to achieve the same in my OTA aswell. Is there any working example for me to implement this? Initially I wanted to store some data in the external memory, could anyone point out some code example for the same? RegardsRiverDi User
Hello, I am using a RIverDI STM32U5A9 and I am facing a strange hardfault issue in my environment.The connection details as follows:ESP board <--UART--> STM32 <--MessageQueue---> LCD displayThe ESP board sends continuous data through UART and the STM32 UART task receives the data and send the data to LCD display task through message queue. Whenever I try to restart the ESP after firmware update, the STM32 stops getting UART data and reinit the UART once the connection is reestablished. But the application gets into hardfault error when this happens. The hardfault occurs after few packats transfer and not on the first UART reception.Can someone help me on this? Thanks!
Hi, a project runs in below trace in debug. I use external V2 ISOL debugger.But program seems to run when I download. Pl let me know if more inputs needed.
I use the MyButtonController function described in the "hardware button is clicked" tutorial to control the GUI on a 320x240 display. So far the buttons are limited to a control pad and the user button of the DISCO board (up, down, left, right, user button). Now I want to integrate a hardware button control of the keyboard using the TouchGFX example Custom Keyboard. Basically the keyboard display works but I struggle to control it with hardware buttons.My question is, how can I use the hardware buttons to select the currently selected key on the keyboard and set it as highlighted? Does it make sense to use a matrix that reflects the keyboard layout and set the keyboard key based on the corresponding matrix position (x, y)? Tips are highly appreciated!
Hi,Firstly, apologies if this in the incorrect section as this is specifically about CubeIDE. I am attempting to use the touchGFX designer in conjunction with CubeIDE. Once I have generated the necessary screens, buttons etc. with TouchGFX designer, I hit "generate code" and it provides me with a bunch of folders, an .ioc and various project files for different IDEs. I go in to the folder that is generated for STM32CubeIDE and load up the .cproject file. If I then build/compile this project in the cubeIDE, it is successful but then I get repeats of folders (they added by the build process) and also, files that are not present in the workspace, but ARE present in the touchGFX folder can be detected. For example, there is no Core / Inc and Src folders in the IDE workspace but they ARE in the folders generated by TouchGFX and the CubeIDE knwo this, so any references to "main.h" will be found by the IDE despite it not being directly in the workspace. Here are some images to hel
Hello,I just bought a STM32F746G-DISCO from Mouser (STM32F746G-DISCO STMicroelectronics | Mouser).After it arrived, the LCD and touch screen were working well. However, after I downloaded the demo project (STM32F746G-DISCO Control LED from GUI v3.0.6) in the TouchGfx 4.22.1, there is not anything displayed. Also I removed the TouchGfx and installed a version, 4.21.3, but there is not any luck. The board is the blue one. The label on the front is 'STM32F746G-DISCO DK32F746G$CU2', and the label on the back is 'MB1191-F746-C01 / C222103562'.I found in the previous discussions, the hardware has been changed from version B to version C.QSPI Micron N25Q128A13EF840F changed in MT25QL128ABA1EW9-0SIT (reached B-05)LCD Rocktech RK043FN48H-CT672B changed in KUNJIAN HT043C (reached B-05)MEMS ST MP34DT01TR-M changed in ST IMP34DT05TR (reached C-01)Oscillator NDK NZ2520SB 25MHz END4869B changed in NDK NZ2520SH 25MHz END4869C (reached C-01)Oscillator NDK NZ2520SB 24MHz E
hello, I am working on a project where I need to display a Touch GFX frame buffer on an OLED display that supports only 8-bit data transfers. The Touch GFX frame buffer is in RGB565 format (16-bit), while the OLED expects 8-bit data chunks for communication over SPI. I'm using an STM32 microcontroller and an SSD1333 display controller. My setup. Microcontroller: STM32L4 series Display: OLED with SSD1333 controller (RGB565, 8-bit transfer) Framebuffer: 16-bit RGB565 from Touch GFX Communication: SPI How can I split or convert the 16-bit RGB565 frame buffer data from Touch GFX into 8-bit chunks to properly send it to the OLED using SPI? Is there a specific function or method in Touch GFX that facilitates this kind of transformation? uint8_t Display_Frame_15_[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0
Is it possible to create a custom widget in touchgfx using code, specifically in stm32cubeide? I would like to start with a blank screen and add a custom widget that I design through code. What are the steps involved in achieving this, including creating the widget class, integrating it into the screen, and ensuring it functions correctly?
Hi: I have some problem about t Partial Frame Buffer memsory.I declared ManyBlockAllocator<360*182,2, 2> frameBufferAllocator in the program just like in the tutorial,but displayed the error .Are there any detailed tutorials about how to use Partial Frame Buffer memory? Thank you very much!!B,RJack liError[Li005]: no definition for "touchgfx::FrameBufferAllocatorWaitOnTransfer()"
hello friendsMy program does not run! It stays on the initial startup screen.I have reinstalled the program several times, but it did not fix it.Can you give me some advice?
Hello,I've created a test touchGFX project for stm32h747i-disco by using TouchGFX Designer-4.21.4. It has only one screen that has one background image and one text. You can see it below:When I generate the code by using TouchGFX Designer-4.21.4 and when I compile and download it with stm32CubeIDE, it works without any problem. But when I write this linker code to move FontFlashSection into QSPI flash memory, it stucks in the ErrorHandler. FontFlashSection : { *(FontFlashSection FontFlashSection.*) *(.gnu.linkonce.r.*) . = ALIGN(0x4); } >QSPI ExtFlashSection, FontSearchFlashSection and TextFlashSection work in the QSPI flash memory without any problem. But when I add FontFlashSection as well to the QSPI Flash, the code somehow stucks in the ErrorHandler. What else should I do to use FontFlashSection in QSPI Flash memory? What am I missing? Can you help me for this? I need to use FontFlashSection in the QSPI Flash memory. Tha
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.