Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi. I made a project with stm32cubemx and add touchgfx.then I added some images to the asset folder and compile the project.I used NOR Flash(External Flash) for saving the images.the problem is that the memory usage in cubeide for pictures is larger than all images in the asset folder. This issue causes the external memory to fill up quickly. Does anyone know how to solve it?
..
Hi, I have initialized 1 layer in 800 * 480 resolution, and I also I have initialized DMA2D for this layer. I got 2 problems:1- when it loads my logo , I see some lines which I can't understand how they come!! for this: some horizontal lines appeared on my back ground just in logo resolution and for this I checked my sdram configuration and LTDC initialization.I use F429ZGT6.2- now I want to clear the LCD and loads it with six ball images in 90 * 86 resolution...but it doesn't show anything....Can some one help me? What should I do to show 6 balls current layer.here is my code:// enable layer 1 ----> configuration in Reg_setup.h LTDC_Cmd(ENABLE); LTDC_LayerCmd(LTDC_Layer1, ENABLE); LTDC_ReloadConfig(LTDC_IMReload); // DMA2D initialization: DMA2D_InitTypeDef DMA2D_InitStruct; DMA2D_FG_InitTypeDef DMA2D_FG_InitStruct; DMA2D_BG_InitTypeDef DMA2D_BG_InitStruct; DMA2D_DeInit(); DMA2D_InitStruct.DMA2D_Mode = DMA2D_M2M_BLEND; &nb
Hi Community,How to store Video (.obj and .bin) files in external memory as they have stored in any generated project from Touch GFX designer?Already we stored image data in external memory by using pragma location and linker script. But now I want to store the .obj or .bin video files in external memory. So, How can I can store the Video (.obj or .bin) files on external memory?But I cannot use pragma location and linker script to store the video data or file.Because, its showing 12.46 MB of video size but no data as shown in the image attached.Anyone is having idea how to store the video data in external memory as it stores from Touch GFX?/Vins
Hello, I am new to stm32F4 software programming. I'm working on a project to interface a TFT LCD screen with an STM32F429.I did the necessary configuration with cubemx and now I opened the project with cubeide. on description of display it is noted that these drivers are needed there: LI6122 + ILI5960OTA7001A+OTA9960A1-can you explain to me what this means?2- do I have to use these 4 drivers at the same time?3- should I find the c code for these drivers on the web? a corresponding library? or I have to program the driver myself.My goal is to interface my TFT LCD display with my board.I put here a photo on the outputs configured with cubemx, there are 23 pins configured for the LTCD.I can share my project but I judge that it is not necessary. Up to you.Thank you in advance for your answer.display reference: sh500j01z
HiWhen switching between screens fast, my UI always ends up freezing. Debugging reveals that it waits forever, waiting for the frame buffer semaphore.Here is the call stack: Inspecting other running tasks shows nothing wrong. Only the graphics task should touch the frame buffer semaphore, right? So it should never deadlock?Environment:IDE: AtollicRTOS: FreeRTOSTouchGFX: 4.16OS: Windows
Hello,I am using the TouchGFX Designer to make screens on the display on the STM32H7B3I-EVAL board. I have run through the tutorials, so I feel pretty familiar with how to use TouchGFX. My next goal is to have data displayed on the screen that was gathered by another peripheral on the evaluation board (i.e. the CAN bus peripheral). I can add code to the main.c, but I am unsure how to link that data to the ScreenXView.cpp files. Can someone please explain how to do that?
Respected Sir/Mam , I cannot able use the keyboard example in the ongoing project of the same screen in STM32H7B3I-EVAL.When I have tried to insert it, it is not visible and having blank code inside it. Although Touch GFX 4.17 version has that facility.
I am trying to get the demos to work on the disco board, but every time I upload the code the ST logo appears and then it hangs.I upload the hex files via STM32CUBEPROGRAMMER where it successfully uploads but always fails to verify giving me this error "Error: Data mismatch found at address 0x90000000 (byte = 0x00 instead of 0x99)".I am using the hex file v1.0 found here: https://www.st.com/en/evaluation-tools/32f769idiscovery.html#documentation. I have also tried 1.16.0, 1.15.0, and 1.14.0 of the STM32Cube MCU Package for STM32F7 series. Every time I try to build the example for TouchGFX, there are errors. Does anyone know how to solve this issue or could anyone provide me with the demo that comes with the STM32F769I-DISCO?Also, the Patch for STM32CubeF7 1.16.2 is for STM32H7, not STM32F7.
I've recently updated with no major issue my TouchGFX project from 4.18.1 to 4.20.0.The screen behaves like before with one major exception: all the slide transitions have become way slower and laggy now with the new version.When previously with 4.18.1 moving between 2 views with a lot of widgets took something like 1 second in 20 frames (which is fine in this application), it now takes randomly from 3 to 5 seconds in 2-3 frames.I don't know why those transitions appear to be way slower now since every other animation in the project (including gifs and scroll list) appear unchanged.I've look through all that has been modified in the project after the update and I cannot find something that would explained the laggy transitions. What could explain this and what should I do to at least get the animation speed of the previous version ?
I am developing a TouchGFX-based firmware. The partial framebuffer is used since we have limited memory (stm32wb). I have an issue with my custom widget that it is used to draw QR code. Currently I am using TouchGFX 4.18 on STM32WB55 MCU.I used this codevoid QRCodeWidget::draw(const touchgfx::Rect& invalidatedArea) const{ touchgfx::Rect absolute = getAbsoluteRect(); uint16_t* framebuffer = touchgfx::HAL::getInstance()->lockFrameBuffer(); for (int y = invalidatedArea.y; y < invalidatedArea.bottom(); y++) { for (int x = invalidatedArea.x; x < invalidatedArea.right(); x++) { framebuffer[absolute.x + x + (absolute.y + y) * touchgfx::HAL::FRAME_BUFFER_WIDTH] = 0xFFFF; } }HAL::getInstance()->unlockFrameBuffer();I had no display; the screen did not change and I had a hard fault.Any suggestions?
Currently I'm designing a UI using TouchGFX and like the ease of use. But there are some limitations:A ScrollList can only snap in the topmost (leftmost in horizontal mode) position, if not circular. I've designed dropdown menus, where due to limited place the scrolllist has to be above the box. So the snapping should be on the bottom for those.For a list with 3 items visible above the box, you can scroll down, so only one item is shown, there will be two items space between the box and the last visible item.So I'm missing a checkbox/option menu where I can select the scroll direction for those lists. It seems like there is no real workaround available via other API functions.Correct alignment when all items are shown:Wrong alignment when scrolled upwards:
Im doing numbers keyboard and do not know how to change bitmap position then i press the buttonIm using this struct :
I'm making a custom keyboard and want to add some extra functionality. I need to be able to edit the texts (i.e. by marking the place of the text and moving the entire text to the right when writing). Maybe someone has done something similar and can help?
I have set up some TEXTS (On Off). I noticed that there are 2 alignment settings here (see #2 and #3) in the imageWhat does the 2 alignment setting do?Then there is the alignment for the actual widget (#1)Which alignment wins as far as the text being displayed?
I have start with TouchGFX, select the demo board and generate the code. Simulator and download works.But now, when I want open the project with CubeIDE, the first is, the project is completly empty. Then when I start a new project with the existing IOC file, then CubeIDE generate a seperate folder with other files, but there are not the auto generates files from TouchGFX visible.What is wrong? Please write me step by step how can I start my own project with STM32H7B3I-DK.Thank you very much, Markus.
Not sure what I am doing wrong here in my header file. I have a struct pump_info which has some enums as properties. I get a build error on all 3 on the enums in the struct. Error'operation_mode' does not name a type'operation_mode' does not name a type'operation_function' does not name a type#ifndef PUMPINFO_H #define PUMPINFO_H #include "time.h" enum pump_function { pump_function_off = 0, pump_function_manual = 1, pump_function_automatic = 2 }; enum operation_status { operation_status_off = 0, operation_status_on = 1 }; enum operation_mode { operation_mode_standby = 0, operation_mode_duty = 1 }; struct pump_info { pump_function pump1Function; operation_status pump1OperationStatus; operation_mode pump1OperationMode; float pump1Current; unsigned long pump1RunHours; tm pump1LastRunDateTime; pump_function pump2Function; operation_status pump2OperationStatus; operation_mode pump2OperationMode; float pump2Current; unsigned long pump2RunHours
Hi all,SBSFU ported to many custom boards and in projects, and is working as expected. But in a project with Touchgfx throwing error "error was: Firmware signature check failure." on Installing update FW from download area.As it is working for other projects without Touchgfx, I'm really clueless where to look?I'll appreciate for any info.With regardsJitu
I have a new project with TouchGFX and currently create a huge bunch of new screens.As I have my own set of images (.png) for buttons etc. I do not use the integrated skins.When placing a radio button or checkbox now with my own images, it is very time consuming to select the images for e.g. 4 states of a radio button from my own set of images. My question therefore: Is it possible to create a customized skin so that I can select my preset skin images for the standard checkboxes and progress buttons etc?This would speed up the creation of setup menus dramatically!I could not find such a feature.
AFAIK, destructors are meant for "deinitialization", freeing memory and such. But isn't it what tearDownScreen() in views and deactivate() in presenters do? Are the views and presenters destroyed when the application changes screen, or are they kept in memory without calling destructors?Is it safe to treat the Model as a singleton? I mean - I made a singleton of it (by adding getInstance() method) and it works exactly as expected. I wonder why this method is not built in by default. It gets useful when I add "Execute C++ code" interaction from the designer.BTW, why are some of the members of TouchGFX generated view and presenter classes protected and not private? It seems just natural to call them private, does it make any sense to extend the view or presenter classes? I just can't imagine such scenario. How? It would make more sense if the view or presenter class extended some other class, but how could it be a base class for anything else?
I just created STM32H745I-DISCO TouchGFX project with TouchGFX.That passed, I was able to import the project to the STM32CubeIDE.Then I just added USB_OTG_FS peripheral configured with host class (HOST_ONLY for USB disk).Saving changes in CubeIDE caused several errors about missing files. I recently worked on the same thing on STM32H747I-DISCO board and it worked. So I compared those 2 projects. The STM32H745I-DISCO project just misses Middlewares directory in STM32CubeIDE dicrectory. The directory in project root exists, however it misses most of the necessary files. Also, the necessary include directories are not present in the 745 project.So - to make it clear: The code generator for STM32H745I doesn't create any configuration for middleware files. It should do it, because this is how it works for STM32H747I project.To reproduce the issue:Create new TouchGFX project for STM32H745I-DISCO.Import the project to a new STM32CubeIDE workspace.Build and run the project. (That should work.)
I try to make an application with STM32H745I_DISCO. After I enable TouchGFX, and generate code, the project fails to compile.Did ST started supporting TouchGFX officially on STM32H745I controllers ?Is there any official documentation/guidelines ?If anyone is successful in doing the same, please share a demo project with CubeIDE. I don't have access to any other compiler.
I have integrated ILI9341 SPI display to Touch GFX. Frame Buffer Pixel Format is - RGB565 and getting the output. But when I change Frame Buffer Pixel Format from RGB565 to GRAY4 not getting the output.(Actually ILI9341 Supports RGB565). Is this possible to print GRAY4 images on RGB565 ILI9341 display? Frame Buffer Pixel Format : RGB565 Frame Buffer Pixel Format : GRAY4
This is a project that I just updated from TouchGFX 4.5 to 4.19.I've been working to update a project to use external flash fonts instead of internal which was the reason from upgrading from 4.5 to 4.19.I'm stuck at a point where the font gets loaded. It appears that the glyphNode buffer is getting filled correctly as the width, height, left, kerning, etc from the datareader->copydataBut it appears that the font itself might not be getting loaded as getBitsPerPixel is returning unexpected values like 0x79, when I know that my font has a BPP of 2. Which makes me think that the actual bitmap of the glyph might not be getting loaded.All the other image graphics and drawings we use are working fine.Code from TouchGFX/UnmappedDataFont.cpp const GlyphNode* UnmappedDataFont::getGlyph(Unicode::UnicodeChar unicode, const uint8_t*& pixelData, uint8_t& bitsPerPixel) const { int index = lookupUnicode(unicode); if (index != -1) { // Read glyphNode from unmapped flash
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.