Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi everybody!I implemented a keyboard into my project. (I tested the keyboard widget in a separated project, and it worked well).If I use the keyboard in my dashboard project, it make weird things.If i entry a value, i write to the eeprom(M95320). If is restart the dashboard, i read all eeprom value.On the "Beállítások 1" screen work perfect the keyboard and value entry. But on the "Beállítások 2" doesn't it work good. The end of the video you can see this.Keyboard text area wrong and when(2:29) i entry a value to "Levegő tartály szorzó", then change the values some textarea to zero and "Emap nyomás szorzó" will be 5.0.I don't know where to look for the error, but it's very strange that it doesn't always do it.Here is the video:Youtube video Thanks!
Hello, I'm trying to build a simple GUI Application with TouchGFX. And right now im trying to resize the updated area (make it bigger than needed) to get it byte aligned and because of other reasons as well.I`ve found one Person who described it here. He has overwritten the Function void FrontendApplication::draw(Rect& rect) { // Make sure the draw area is always byte aligned rect.x -= (rect.x % 8); rect.width = ((rect.width + 7) / 8) * 8; Application::draw(rect); } like this (Copyright to Mike Norgate - see the link).I dont need exactly this function but i need to resize it at the same position in the code. So i tried to reproduced it but i got confused. I found here some mentioning of the function in touchgfx/Application.hpp but its mentioned under protected functions. So ive looked in my generated code, but in the TouchGFX/FrontendApplication.hpp there is no function like this and i couldnt find a application.hpp as well. S
Hello community,I am trying to show a shape (line) or text on a background a TFT parallel RGB Display. I am using the NUCLEOH7A3 board without external RAM and a 800x320 Display.Everything works fine using TouchGFX. So it is not a hardware problem or CLK. But I want to program it buy my self using other libraries.I copied the files and functions from the STM32H7B3i Discovery LCD example (stm32h7b3i_discovery_lcd.c and stm32h7b3i_discovery_lcd.h) and changed them a bit.The function UTIL_LCD_Clear() works fine (except of weired pixels on the top (line1 or 2)) but the text and the line are not shown. And if I take the function UTIL_LCD_Clear() out, the text and the line are shown but the Display background looks weird with weired pixels. (see images) So why the text and the horizontal line are not showing after filling the screen with UTIL_LCD_Clear()?(Nevermind about the horizontal line now. It had another color, that I could see. But now because I've already made the picture
I tried to show text via textArea, i put some string into translation field, i see the string in designer but when i ran it the text is not present. I tried similar thing with digital clock with same result. I tried define own typographies with or without wildccards and non generated texts but all with the same result. I tried it on real hardware, other things like images and buttons are visible but the text in textArea not. Should i call some method for rest of init textArea?
Hi,I am trying to copy the TouchGFXDemo1 in TouchGFX Designer.When I add a "text progress", there is a property of Image for the background.This property always has an initial image, and I do not know how to delete it.Could someone tell me how to do it?I want it like this:Thanks
I'm exploring the new STM32U5G9 and I'm reading that the NeoChrom GPU supports MJPEG codec for video playback.Is there a demo code/example on how to use it and load/reproduce a video on the the STM32U5G9J-DK2?
Hi,I would like to use TouchGFX on the STM32WL55 in Dual-Core mode, on the Cortex-M4 Core. After creating a dual-core enabled project, enabling the TouchGFX middleware, designing a minimal GUI in the TouchGFX designer I try to generate code from the designer but get the following error: Post Generate Target touchgfx update_project Unable to locate <...>/WL-GFX-Test/CM4/WL-GFX-Test.ioc Failed Apparently the code generator looks for the IOC file in the wrong directory. Manually copying the file into this folder works, but then I get the next error: Post Generate Target touchgfx update_project Unable to locate <...>/WL-GFX-Test/.cproject Failed Manually copying the CM4's .cproject file into the root project directory makes the code generation succeed. I then have to copy the modified file back into the CM4 directory.However, there is an error in the resulting project setup. In the linker settings, TouchGFX adds the following library
Hi everybody, In my custom board I discover a strange effect when I interact with widget.The latest widget redraw has always a lots of wrong pixels while the previous one is redrawed correctly.I'm using an STM32H743VIT6, with touchGFX 4.23.2 and Stm32cube ide 1.15.0.Assets are load from an external QSPI memoryThis is the first time I see this strange behaviour and I would like to understand the cause.Does some has an idea? IS it software or should be hardware?Some suggestion?At the following link, I upload a small video to show you the effect (link is available until April 16, 2024):https://fex.net/s/rveymxr thanks in advance
I have a working code generated with STM32CUBEMX and TouchGFX 4.17, which I compiled with Keil using ARM compiler version 5. Now, we have updated the setup, and while trying to compile the code with ARM compiler version 6, Keil throws an error saying 'error: use of undeclared identifier 'assert''. This error occurs in more than 2000+ files related to TouchGFX. I checked the files where it is throwing errors, and each file has a header #include <touchgfx/hal/Types.hpp>. In the file Types.hpp, the following headers are included: #include <assert.h> #include <stdint.h> #include <touchgfx/hal/Config.hpp> I went through the following articles, but the error still persists. How can I resolve this issue? https://developer.arm.com/documentation/ka004216/latest/ https://developer.arm.com/documentation/100073/0618/The-Arm-C-and-C---Libraries/Tailoring-the-C-library-to-a-new-execution-environment/Program-exit-and-the-assert-macro
I have generated code for STm32U5G9J-DK2 via cubeMX, included FreeRTOS and touchGFX designer middleware. Once I compile I get error "sorry, unimplemented: Thumb-1 hard-float VFP ABI" from multiple locations (total 29 errors). I ma not sure what I am missing or the root cause of these errors.Need help with it. Thank you.
Good Day,I've been experimenting with transitions on TouchGFX. I'm not a huge fan of the 1990's style transitions that come out of the box, and wondered if I could define a transition myself with custom behavior. Basically, I want sections of my screen to slide off in different directions before going to the next screen.Using the transitions already defined as an example, I was able to use the Snapshot widget to do what I want to do, but I'm currently unable to compile, as the transitions that come with designer are declared in `FrontEndApplictionBase` which is generated code.I guess I'm not looking for a hard and fast solution here, but more just asking the open-ended question of, "has anyone else tried/succeeded in doing something like this?" I'm also open to suggestions of better solutions, but I really like the idea of this clean implementation.Thanks,Jack
Hello,I am using a STM32H745XIH6 Discovery Board with the external display of resolution 480 x 480.I need an infinite scroll list with the values should be filled incrementally for each item.The scroll List should be filled with positive values to negative values.For example: item_Index 0 = 1000; item_Index 1 = 900;...................item_Index 10 = 0; item_Index 11 = -100;........item_Index 21 = -2100; But unfortunately I can only take the positive values i.e 0,10,20......Help me in this regards!Thank you..
I want to implement reading large AVI files from an SD card for playback. When using VideoDataReader, I couldn't find a specific demo program. So, I added a MyReader class based on the official documentation. However, when executing the HardwareMJPEGDecoder::readData(uint32_t offset, uint32_t length) function, I found that aviBufferLength is less than the length passed in, preventing it from proceeding normally. What should I do?
I'm having an error where i get not such file or directory in an include but the file is there exactly where its located in the project that that touchGFX generates for my boardAnd while reading the documentation I saw that In Project manager, the option generate code under root should be off, and I thought maybe this was the cause, but I don't know, The thing is i can't disable this option, it appears in grey and i can't disable it, I get that I can't change the structure of an already created project, but even if i create a new project by doing new--> STM32 Project, when the .IOC files open some files are already created and I can't disable it either. I'm using STM32CubeIDE.
Hello developers,I am working on a device which has 5 graphs to show. If I use them in non-os mode, there will be no conflict and each graph can have more than 100 data samples. but if I add Freertos to the project, I can not use these 5 graphs with more than 50 data samples each. in other words, it doesnt even boot up in 100 data samples each while using freertos.Help me, please
Hello Everyone,I have 24 bit Display having 800 x 480 resolution.Also,I have fmc interface having stm32h753bit6 microcontroller with nor flash mt28ew128aba1lpc of 16MB and external sdram of 8MB .External SDRAM is working fine with touchgfx as double frame buffer config.I want to store touchgfx images in this nor flash using fmc interface.Can anyone help me in how to interface nor flash using fmc?
I'm new to TouchGFX and I'm trying to use a toggle button to send a data frame to a car display via the FDCAN bus using STM32 microcontrollers. I'm not sure if it's possible to achieve this functionality with TouchGFX and STM32, and if it is, I'm unsure where i configure the filter, transmit header, and add messages in the main.c function!! If anyone has experience working with this setup, I would greatly appreciate any guidance or assistance you can provide.
Hello,I'm working with STM32H7A3, STM32CubeIDE Version: 1.14.1 and TouchGFX Designer 4.23.2.If I add a simple button to my project, when I press the button on the touch screen I see the image change but the buttonCallbackHandlerdoes not trigger, while if I add for example a toggle button the callback triggers correctlyI attach part of the code generated by TouchGFX Designer.void Working_menuViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src) { if (&src== &toggleButton1) { //Interaction1 //When toggleButton1 clicked execute C++ code //Execute C++ code static int i; i++; } if (&src== &button1) { //Interaction2 //When button1 clicked execute C++ code //Execute C++ code static int i; i++; } } class Working_menuViewBase : public touchgfx::View<Working_menuPresenter> { public: Working_menuViewBase(); virtual ~Working_menuViewBase(); virtual void setupScreen(); protected: FrontendApplication& application() { r
I'm working with a Nucleo L476 board, I have a 128x160 SPI TFT display connected. I have no issues with the display and the bare metal code I wrote but wanted to learn touchgfx. No issue with the partial buffer implementation but I'm stuck at single and double buffer. The partial buffer code generated by cubeMX had several routines and comments that made it easy to figure out what I needed to do to interface to the AL. the single and double buffer seem more cryptic to me and my c++ knowledge is limited. I'm able to display images and cycle thru them but when I introduce a touch button the button graphics get corrupted when I release the button. I'm sure I'm doing something wrong in how I implemented the code in TouchGFXHAL.cpp - flushFrameBuffer. advanceFrameBufferToRect confuses me. I think I've seen everything on the touchgfx help site and they discuss this to some extent but I guess I'm missing something.Does anyone have some example code of how they've implemented flushframebuffer
I'm new to TouchGFX and I'm attempting to control an LED with a toggle button on TouchGFX. I've written some code for it, but I'm encountering two errors that I'm having trouble understanding. Could you provide any advice or assistance on how to resolve these errors?" c:\st\stm32cubeide_1.10.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe:C:\TouchGFXProjects\MyApplication_3\STM32H735IGKX_FLASH.ld:91: non constant or forward reference address expression for section .ARM.extabcollect2.exe: error: ld returned 1 exit statusmake: *** [makefile:74: STM32H735G-DK.elf] Error 1"make -j12 all" terminated with exit code 2. Build might be incomplete.
I want to play a tap sound when user click button or elements on list. I have hundreds button in my project, so I don't want to add that sound play function to each single callback. Is there a way to create a callback for all touchable widgets or a mechanism to do so? Thanks in advance.
Hello,I use the STM32H747 running at 400 MHz (M7) together with a display that has a resolution of 800x480 pixels.I have set up a project in TouchGFX Designer based on the Gauge example project.The design includes 2 gauges. The chrome ART is enabled according to the CubeMX configuration.How can I for sure say, that the DMA2D features are used? The only thing that happensin the project is that the gauge needles move based on the values of an array (the values change in each frame).The system should run at around 60 FPS, but only manages 30 Fps and therefore drops every 2nd frame (MCU is at 90% utilization).The needle images are 3x150 pixels (I'm using RGB888) and are stored in internal flash.What changes can I make to improve the performance of the two gauges?
Hi Community,I'm using the STM32U5A9-DK development board and trying to get the UART messages to show up on the screen.Using osMessageQueue to pass messages between the main and the Model.But I'm experiencing the problem described in this post , and I've found that the breakpoints don't work in the callback function.I'm not sure if the message is being put into the queue correctly.Has anyone else experienced a similar problem or know how to solve it? This is my code:Default Task: void StartDefaultTask(void *argument) { /* USER CODE BEGIN defaultTask */ extern UART_HandleTypeDef huart1; extern char RxData[256]; // received data from UART HAL_UART_Transmit(&huart1, "UART1 ready...\n", 15, 0xffff); char cmd[42] = "send_string \"Hello\"\n" "\n"; HAL_UART_Transmit(&huart1, cmd, sizeof(cmd), 0xffff); HAL_Delay(50); /* Infinite loop */ for(;;) { HAL_UARTEx_ReceiveToIdle_IT(&huart1, RxData, 256); osDelay(1); } /* USER CODE END de
Hello, I have problem with touchGFX once i updated it from 4.16.1 to 4.17 .... when touchgfx_init() function reached to this line (FrontendHeap& heap = FrontendHeap::getInstance();) it makes hardfault which i have not on previous version....in assembly on this line:0x08009748 F7FAFBF4 BL.W _ZN12FrontendHeapC2Ev (0x08003F34)Please help ......
Hello,I am using a STM32H747i-DISCO kit and have set up a project based on the TouchGFX Designer demo applications, which works based on a single framebuffer.If I go into the CubeMX settings and set the framebuffer strategy to "Double Buffer" and the buffer location to "By Allocation", I can see my screen after flashing, but it is frozen. According to TouchGFXGeneratedHAL.cpp the video RGB buffer (1,152 Mbyte for 800 x 480 x 3 bytes) is located at 0xd0000000 in SDRAM and the framebuffer is placed at 0xd0119400 right after the video buffer. The pointers are set accordingly in the TouchGFXGeneratedHAL::initialise() by calling setFrameBufferStartAddresses((void*)frameBuf, (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 2)), (void*)0);.What causes my display to freeze when I change to double framebuffer?
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.