Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I am new in TouchGFX and I like it. But now I have a problem:I am trying to make a ScrollList with a variable number of items. To do that, I made in TouchGFX a ScrolList with number of items: 1 and a height of 50 which is the height of 1 item. The generated code is scrollList1.setPosition(40, 200, 400, 50); scrollList1.setHorizontal(false); scrollList1.setCircular(false); scrollList1.setEasingEquation(touchgfx::EasingEquations::backEaseOut); scrollList1.setSwipeAcceleration(10); scrollList1.setDragAcceleration(10); scrollList1.setNumberOfItems(1); scrollList1.setPadding(0, 0); scrollList1.setSnapping(false); scrollList1.setOvershootPercentage(75); scrollList1.setDrawableSize(50, 0); scrollList1.setDrawables(scrollList1ListItems, updateItemCallback); add(scrollList1); In the setUpScreen(), I change the following void Screen4View::setupScreen() { uint16_t elements; uint16_t height; uint16_t windowsize; elements = presenter->NofThick()
Hi,looking at this dev kit https://www.st.com/en/evaluation-tools/32f469idiscovery.html#overviewit comes with a 800x480 pixels display and the QSPI is "only" 128Mbit.Am I correct in saying that (without any compression) it can only store just over 10 full screen-sized images assuming 4 bytes per colour (1 layer with transparency)?128,000,000 / (800 x 480 x 32) = 10.4That also means no video can be stored (unless you just play a few frames)?Is that correct or am I missing something?Thank you :)
I'm trying to work with touchGFX, but I'm struggling to get it to compile.I downloaded the latest version of cubeMX as of today, 7/8/2023, then started a brand new project for an STM32F446VETI enabled X-CUBE-TOUCHGFX version 4.21.4, enabled the CRC, and set the clock to 180Mhz. I then imported the project into CubeIDE as an existing STM32CubeMX configuration file. I went into touchGFX, created a blank display, ran the simulator, closed it, then tried to compile the code and I'm hit with many "no such file or directory" errors. The directories do exist, I can see them in the file explorer If I edit the offending include to point directly to the file in question, the error does seem to go away but I'm hit with about 30 more, different but similar, errors, I attempted to go into properties -> Paths and Symbols and adding in every combination of the directory I could think of but that made no difference. Anyone have any ideas on what the issue might be?
Hi, I'm trying to render a 60Hz waveform using a static or dynamic graph widget. The use-case is to render all 480 points at a 60Hz rate, e.g., a noisy sin wave... My graph is size 240x480 pixels using 480 data points. I'm trying to demo this on 2 Eval boards, STM32U5G9J-DK2 and STM32H747I-DISCO. I cannot achieve the required 60Hz refresh using 240x480 graph size, however, using a much small graph I'm able to get 60Hz refresh.My Question: is it possible to achieve the 240x480 draw at 60Hz using the above gpu hardware or is there a more capable STM32 hardware solution or software solution. Thanks...
I'm using TouchGFX version 4.24.1 with external flash memory mapping at address 0x90000000.When using the original image, there are no issues. However, when using the compressed RGB565 function, a tearing effect appears on the LCD screen. If I disable 'SCB_EnableDCache()', the issue is resolved.Therefore, I believe that 'TouchGFXGeneratedHal::InvalidateCache()' is not properly invalidating the decompression bufferIs there a solution for this?If I disable 'SCB_EnableDCache()', will it have a significant impact on display performance?"
Hello,I'm trying to build a simulator on Linux x64 platform. But unfortunately, getting a weird error. /usr/bin/ld: ../Middlewares/ST/touchgfx/lib/linux/libtouchgfx.a(AbstractPartition.o): relocation R_X86_64_32 against symbol `_ZTVN8touchgfx17AbstractPartitionE' can not be used when making a PIE object; recompile with -fPIE /usr/bin/ld: failed to set dynamic section sizes: bad value Seems that library was not compiled with -fPIC. Or, I'm doing something wrong.TouchGFX v4.24.1Please help with this.
Hi there,As the title, I use a static graph with a line, and I want to change the line's color according the data.But I check the API of static graph in TouchGFX document, I didn't find the function like setColor() or setLineColor().How can I do it by code?Thanks
STM32F746G_DISCO by default has 480 x 272 . We changed the display to 800 x 480 (EK9716B LCD and FT7311 Touch controller) . Then we used the TouchGFX 4.17 / 4.16 to generate the code and updated the parameters to reflect 800 x 480. The 800x480 images are displayed properly on the LCD. When we touch the screen at any pixel beyond 480, we can see that STM32TouchController::sampleTouch (x, y) does indeed detect touch. However the user code in flexButtonCallbackHandler ( ) is not getting called by TouchGFX frameworkThe same code works well for Simulator. The lower lever I2C Touch controller driver detects the touch and during debug with disco-board, shows the correct coordinates. Did anyone face a similar problem ? Why do you think, TouchGFX framework is not calling the user code for a pixel > 480 ?
Hi Touchgfx team! I've this screen requirement I'm doing it with a custom container list as in the listLayout example. Currently, once I press the audio element, I'm able to move the "on" text to the left, and add the image. Now, I want to update the background color. I'm trying this but it doesn't do anything:void CustomListElement::set_audio_element(int new_x, int new_y){ settings_text.setXY(new_x, new_y); background.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); invalidate(); }this is a method in the custom container. The 255 is just for referenceThis is my view where I call the function void settingsView::listElementClicked(CustomListElement &element) { // The button of the list element has been pressed switch (element.item_index) { case DATE_TIME_INDEX: go_to_date_and_time_screen(); break; case STORAGE_INDEX: go_to_storage_screen(); break; case ABOUT_INDEX: go_to_about_screen(); break; case AUDIO_INDEX: audio_toggle_butt
Hi,I am learning TouchGFX and I have gone through all the study materila from the TOuchGFX academy.I am having a BW monochrome display on the SPI channel. And the display need not have to get updated unless there is a change in frame as the display itself has inbuilt RAM to store the framebuffer content. The question I have is, where the TouchGFX setting is to update the display in such case only when the framebuffer is change rather than updating the diplay on every tick (FPS)?
I have an STM32H745 Kit with two processors: M7 and M4.I created graphics using TouchGFX and built several screens.I set up the M4 to work with the RTC, and I want to send information from the M4 to the M7 using OpenAMP.I modified the linker file and built the M4 file.The issue occurred when I tried to integrate OpenAMP into the HPP and CPP files for each screen. Errors appeared, and I don't know how to deal with them. 10:55:10 **** Incremental Build of configuration Debug for project STM32H745I_DISCO_CM7 ****make -j8 all arm-none-eabi-g++ "C:/TouchGFXProjects/noooooooooo/CM7/TouchGFX/gui/src/settings_screen/settingsPresenter.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DCORE_CM7 -DUSE_HAL_DRIVER -DSTM32H745xx -DMETAL_INTERNAL -DMETAL_MAX_DEVICE_REGIONS=2 -DRPMSG_BUFFER_SIZE=512 -DVIRTIO_MASTER_ONLY -DNO_ATOMIC_64_SUPPORT -c -I../../../CM7/Core/Inc -I../../../CM7/TouchGFX/App -I../../../CM7/TouchGFX/target/generated -I../../../CM7/TouchGFX/target -I../../../Drivers/BSP/Component
So I bit the bullet and upgraded my touchgfx from 4.19.1 to 4.24.1 because the older version was unusable in that it locked up as soon as you looked at it.Now I have several linker errors after I have generated code from the designer in my stm32cubeide project:undefined reference to `touchgfx::paint::rgb565::lineFromColor(unsigned short*, unsigned int, unsigned long, unsigned char, unsigned long)'This post here seemed to have the same problem but I don't understand why it mentioned cubemx? Surely when I click on F4 from designer it generates all the code needed for my stm32cubeIDE project? Or at least it used to. CubeMX is dealing with .ioc files which my project doesn't have, I have a .cproject which opens with stm32cubeide.There is talk of 'regenerating the files' from the IDE. What does this mean? A clean build or a refresh?How do I somehow update my cubeIDE to match the new version of designer (this is what I want)?This is why I don't normally update IDEs halfway through a project
Hi,I am working on integrating TouchGFX into Zephyr and have made some progress. However, I am currently facing an issue where the text appears scattered and displayed strangely.I have enabled DMA2D, and the font data is stored in external QSPI flash and loaded into external internal SRAM. My board is the STM32H750B-DK.Any help or tips would be greatly appreciated. Could you possibly guess the reason by looking at the image? The texts are displayed better after I press the reset button following the initial flash
Hello.I am using mb1191-F746NGH6-C01, IAR Embedded Workbench for ARM 9.50.1.69506, CubeMX V6.12.1 andTouchGFX V6.22.0. I generated the project in TouchGFX for IAR. TouchGFX locate the backgrounds and widgets in external flash memory. The Discovery STM32F746 board has MT25QL128ABA1EW9 memory.In IAR I select "Use Flash Bootloader"Select STM32F746G-DISCO_QSPI.flashWhen I press the button "Download and Debug"I have the next information in the log:Wed Oct 16, 2024 21:00:42: Hardware reset with strategy 0 was performedWed Oct 16, 2024 21:00:42: Verification error at 0x9000'0000: mem = 0x00, file = 0x0BWed Oct 16, 2024 21:00:42: Download completed but verification failed.Wed Oct 16, 2024 21:00:42: Hardware reset with strategy 0 was performedWed Oct 16, 2024 21:00:42: Target resetWed Oct 16, 2024 21:00:42: There were 1 error and 1 warning during the initialization of the debugging session.Memory window in the IARPart of the array where it is stored backgrounds imageLOCATION_PRAGMA("ExtFlashSec
Hi,we are planning to use the display shown in the attached datasheet.It is MIPI-DSI and also has a Tearing Effect Output signal. How is the Tearing Effect signal connected to the micro? I could not find any dedicated pin but from reading online about that signal, it looks like it is for syncronization which makes me think that is needs to be very high speed (MIPI-DSI speed?) and no latency. But there is no such pin on any of the micros we looked at.Does that signal need to be connected to a specific pin?If so, which one?Thank you
Hi Team,After assigning NOR Flash space in the linker, I created an external loader, tested it, and debugged it in CubeProgrammer. @mƎALLEm suggested to seek help regarding my TouchGFX-related query in a new thread.Is there any reference or guide available for implementing FMC NOR Flash in a TouchGFX project within CubeIDE? I added my own loader in the debug configuration and debugged it, but no data is shown on the display, nor is anything visible at 0x60000000 in the memory browser.Please guide me on how to achieve full access via Flash memory.Regards,jr_mbed_engr my linker file: estack = ORIGIN(RAM_D1) + LENGTH(RAM_D1); /* end of RAM */ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0x2000; /* required amount of heap */ _Min_Stack_Size = 0x4000; /* required amount of stack */ /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K RAM_D
Dear Community, We're excited to announce the creation of the TouchGFX Academy! The TouchGFX Academy is a new place to learn TouchGFX with concrete examples and to find answers to your questions when developing your UI. It includes tutorials of course, but also a new series of "How-to-TouchGFX" videos where we explain all you need to know to become an expert in TouchGFX, even if you are starting from scratch =) We will publish our videos on YouTube, as well as on our support website under the "TouchGFX Academy" section. Stay tuned whenever we publish a new video by subscribing to our YouTube channel and get notified by clicking the bell icon! Don't hesitate to reach out if you have questions regarding the content or if you have suggestions for topics you would like us to cover in new videos. We hope you'll appreciate our dedication to providing a comprehensive learning experience with the TouchGFX Academy. Wishing you an enjoyable and enriching journey as you explor
I am currently working on STM32H747XIH6 DISCO Board using Touch GFX. Although the simulation runs without any issues, I am encountering intermittent problems during the compilation and programming stages. At times, the compilation fails with errors stating that specific font files are missing, despite these files being present in the correct directory. I have not added any additional C++ code yet, as I want to confirm everything is functioning properly before proceeding.Attached below are screenshots related to the errors encountered. I looked for the file, which should be in the debug folder and it's missing.I then tried starting a new project and the file was still missing.I created a new workspace and a new project but had the same result.kindly help me out ,Thank you
Hello everyone.I have a project that uses CubeMX, CubeIDE, TouchGFX Designer with FreeRTOS.Everything has been working fine until i upgrade to TouchGFX version 4.24.I was using TouchGFX version 4.23.2, no code changed and upgraded the project in CubeMX and in TouchGFX Designer.No faults are thrown and all other tasks seem to be running as normal.TouchGFX never makes it to the startup-screen and the the TouchGFXTask only gets called once. The below article is all i can find to issues, im not using JPEG-decoding nor am F7 MCU...https://support.touchgfx.com/docs/miscellaneous/known-issues#touchgfx-4-24-0https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/x-cube-touchgfx-4-24-0-is-out/td-p/683800 Does anybody know what is causing this issue?Hardware config:STM32F429LTDC: Yes (565)DMA2D: YesFMC: SRAM (double buffered frame)JPEG: NoL8: YesRGB Comp: No
Hello,I hope this message finds you well. I am currently working on a project involving the STM32H747IH6-Discovery board, where I am merging STM32CubeIDE with Touch GFX Designer to display data on the UI. I'm sending data through various communication protocols, including UART, and although the data is being correctly received and stored in variables, it is not being displayed on the UI. Despite following the available documentation and tutorials, I am encountering issues that require expert guidance to resolve, particularly in getting the stored data to appear on the user interface. Thankyou.
Hello everybody,I would want to know if there is a way or another to exclude TouchGFX from build when debugging in STM32CubeIDE.I'm using ThreadX underneath, so basically I've got at least two separates threads: one for the GUI and one for a background task. I'm working a lot on the background task so each time I modify it, it takes a lot of time to upload binary to the debugger each time I want to debug on a board.Thanks a lot in advance for your valuable help
(Moved from Feedback to the TouchGFX forum) Hi there TouchGFX team! How can I setup a round display and develop the UI for it? I haven't decided yet on the display but I just want to make TouchGFX can work with round displays Thanks a lot in advance
Hello,Is there a way to compile TouchGfx and STM32 project from command prompt? Please share some examples or steps if any.Thanks & Regards
I sent a write data to LCD like display the RED background on the LCD panel. But it display like this- this is my code part: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_FSMC_Init(); MX_CRC_Init(); MX_FMPI2C1_Init(); /* USER CODE BEGIN 2 */ ST7789H2_Init(); LCD_Fill(0xF800, 0, 0, 240, 240); /* USER CODE END 2 */ /* Init scheduler */ osKernelInitialize(); /* USER CODE BEGIN RTOS_MUTEX */ /* add mutexes, ... */ /* USER CODE END RTOS_MUTEX */ /* USER CODE BEGIN RTOS_SEMAPHORES */ /* add semaphores, ... */ /*
I'm currently developing a touchpanel on a H7a3 in which i use a swipecontainer on the main page.In this swipecontainer are multiple buttons with each time a svg image on it. On scrolling this, the srolling is very shaky and slow. Measuring reveals that the rendertime is more then 75ms.Replacing the svg images with regular bitmaps solved the issue. Now is my question, why are apparently the svg images rendered every time the swipecontainer moves?One would expect that this is only a shift of a memory zone so should only be a copy action? many thanks in advance
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.