Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I have search in universe and on youtube there are hundreds are videos which shows how to interface Touchgfx with ltdc interface, and wondering still ST fellows are making videos on same, on other side there is no single video or webinars which shows touchgfx integration with spi or fmc bus. except a single page document in helpfile which also refers to example of STM32L496-DISCO Application template. Now the real problem is how one can find what is changed in hundreds of file that are located in STM32L496-DISCO Application template.So there is a need which is simply ignored by touchgfx designer along with ST employees to make a video step by step starting with scratch from cubemx and necessary modification for touchgfx integration for standard lcds available like ili9341 for parallel data and ST7735 spi controller since these lcds are widely available,I forgot to mentionI have successfully interface https://lvgl.io/ ie littlevgl gui on stm32f407. They have written the
When configuring SDMMC1 in STM32CubeIDE, I get a warning that it conflicts with LTDC (RGB888). SDMMC2 does also conflict. Can someone guide me, how to resolve this conflict?
Long story short, I have a circular MIPI-DSI display and need to rotate the image by 180 deg. I've read the SW-only implementation post here, but it specifically mentions that this makes memory use highly inefficient, which is not ideal for our battery powered device. The manufacturer of the display recommended that the 180 degree flip is done with flipping just the x-axis in TouchGFX code (basically just changing x coordinates to 454-x (454 is the max disp width)) and then using a scan direction switch command on their display HW to flip the y-axis. Ideally this all would be completely transparent to the higher level TouchGFX code - i.e. the graphics configuration utility would know nothing about this and would just let me configure a normal display view. Any thoughts on the best approach to this as well as if there is any benefit to this approach vs just doing the whole rotation in SW as shown in the thread above? Thanks in advance!
Hi,I am trying to implement a product that needs to swap between landscape and portrait mode of the same screen dynamically during run time. I am using TouchGFX designer 4.16.0 with the TouchGFXWatch UI template to do some basic tests. When I run the target in landscape mode it works as expected. If I change it to portrait mode, as shown below, and run it on the L4R9I_DISCOVERY I get unexpected results as shown below (which is the same result I get from my code base). From my understanding and from other forum posts- How do i configure Landscape orientation for STM32F429I-DISC1 (native portrait) ?- Issues with Portrait Orientation on STM32F746G-Discovery Kit- STM32F746G-Disco Bd, doesn't display correctly in portrait mode I should only need to rotate the images in TouchGFX Designer which the Display orientation radio buttons do.The change log for TouchGFX 4.7.0 mentions a "display_orientation_example" that I have not been able to find. Is there any documentation or example that co
I am using TGX v4.16.0. All of the work I describe with is with the TGX simulator in MSVS.I am building native C++ strings from C character arrays. I am then taking these strings and using them to update a single wildcard text area. Most of the text is displayed correctly but some of the characters are interpreted as the fallback character (?). I am using a standard English language font. The characters that trigger the fallback character are in the range of A - Z. I have verified that the C++ string is being built correctly and that the wildcard buffer is big enough to hold the string. Here is a part of the code and the result.Initialization of the text area:m_mfgInfo.setWildcard(m_mfgInfoBuf); m_mfgInfo.setTypedText(touchgfx::TypedText(T_MFG_INFO)); m_mfgInfo.setXY(150, 150); m_mfgInfo.resizeToCurrentText(); add(m_mfgInfo);Update of the text area: void MyView::SetData(MyData_t& data) { Unicode::strncpy(m_mfgInfoBuf, data.mfgInfo->c_str(), static_cast<uint16_t>(d
Hello everyone,I'm currently developing a project using Touchgfx on a custom board with a STM32F469II, external RAM/FLASH, SD card and a 1024x600 screen.I'm having trouble placing the frame buffer in the external RAM close to eachover. Right now, the following configuration in the "TouchGFXHAL.cpp" is working quite well:setFrameBufferStartAddresses((void*)0xC0000000, (void*)0xC0200000, (void*)0xC0400000);The parameters are as follow:- The first address is the start of the first frame buffer.- The second address is the start of the second frame buffer (use for multi-buffering).- The third address is the start of the animation storage space (use for slide transition between screen).All of them are placed in the external RAM space of the custom board which goes from 0xC0000000 to 0xC07FFFFF (8 MB).With that, a fourth and final space is added which is the dynamic bitmap cache which stores images from the SD card to be displayed over the screen with TouchGFX.Howerver, when I want to ma
Hi,I am using low end STM32L0 series MCU, I need to display a minimal text message on the TFT LCD display.STM32L0 doesn't have LCD engine, so can we write a code with GPIOs and display a text message.Please provide your feedback on this.
Win 10, TouchGFX 4.16.1 Cube 1.6.1Disco 469 Board with 800x480 DSI touchscreenI have created a TouchGFX project and imported it into Cube (with the help of the video of EE by Karl youtube channel, since it's not an easy and obvious path).Now, I've created a pair of buttons and stuff in TouchGFX, found the generated code in ScreenRunViewBase.cpp (ScreenRun is the name of the screen with buttons). It's creating and adding buttons over there, setting their colors and coordinates and stuff, looks easy.The question is: I want to add buttons with my own code. Let's say I want to create a new array of buttons (or pointers to the button objects or whatever other way I can make a listed structure of them). Now, unfortunately, in the top of the file ScreenRunViewBase.cpp there is a message THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY.So how am I supposed to modify the code then? When the screen opens (I know there is trigger for that), how do I actually CREATE a new button/containe
HiI have a problem with TouchGFX on STM32H7B0 with external flash memory through OCTOSPI and TouchGFX 4.16. I try to make a screen with a debug console. It supposed to show debug logs from my application. The screen consists of 18 TextArea objects (lines of the console), one CustomContainer (4 TextAreas) and a fullscreen Box (background). I wanted to add one more object (SlideMenu). When I did it my application broke up - after startup I get this kind of random image: Then the debugger looses the connection to STM32 and I can't do anything. I tried increasing the stack size of the task running TouchGFX but it didn't help. Can you please help me? Regards,Piotr
The error I'm gettingRun Target Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Post Generate Target touchgfx update_project --project-file=../STM32F769I_DISCO.ioc --platform=m7 Done Compile make -f ../gcc/Makefile -j8 Reading TouchGFX/application.config Linking TouchGFX/build/bin/target.elf Producing additional output formats... target.hex - Combined internal+external hex intflash.elf - Internal flash, elf debug int
As I add more widgets into a screen, and each with non trivial behavior,one problem that I start to realize is codebase for Screen class grow massively. And some widgets may have associated overlay widgets. Imagine all those code reside in one .cpp.I tried one approach that is to create the widgets as custom container, this create a .cpp file for reach container of widgets. This somewhat better in term of code organization, but it pose challenge as we need now to establish communication between widgets. For this reason, I don't like the idea of making custom container for this, but at the same time I could not think an elegant way to address this.I would like to hear some ideas. Thank you in advance!
..
Good afternoon, In I have two projects Your JPEG_DecodingFs_DMA and mine. In your project, after executing the HAL_JPEG_Decode_DMA function in normal mode, the function returns 4110 bytes of Context in a stepwise 14 bytes. In my program, the HAL_JPEG_Decode_DMA function always returns 14 bytes. What settings are responsible for setting HAL_JPEG_Decode_DMA()? Sincerely, Alexander.
Hi,I ported successfully 4.9.3 application to 4.13, the process worked well and I can see the application running under the simulation.I tried to build the application under CubeIDE, the compilation and link passed successfully but from some reason the new version created a very large font section (More then 1M while it was around 90K)) that did not fit in the internal flash as before. This is a short snippets from the map file of the new build:FontFlashSection 0x0000000091ee26b8 0x17d88c *(FontFlashSection FontFlashSection.*) FontFlashSection 0x0000000091ee26b8 0x12f7 generated/fonts/src/Font_Poppins_Bold_16_4bpp_0.o 0x0000000091ee26b8 unicodes_Poppins_Bold_16_4bpp_0 *fill* 0x0000000091ee39af 0x1 FontFlashSection 0x0000000091ee39b0 0x664 generated/fonts/src/Font_Poppins_Bold_16_4bpp_1.o 0x0000000091ee39b0 unicodes_Poppins_Bold_16_4bpp_1 FontFlashSection 0x0000000091ee4014 0x121a9 generated/fonts/src/Font_Poppins_Bold_16_4bpp_28.o 0x0000000091ee4014 unicodes_Poppins_Bold_1
Given a container which contains , how to iterate through all the widgets which have been added inside ?
Hello,i try to start application on STM32F7 with external RAM.I setup frame buffer and cache in external RAM, but touchgfx not loading screen to FrameBuffer, Cache is loading.I check if image will render when a set start address of cache and FrameBuffer the same and it worked.What may be source of the problem?
So let say I have two custom containers : container1 and container2. I want to setup a trigger from container1 and setup the associated handler in container2. How can I do this? I don't want to route the communication via Screen class, instead I want it directly from container1 to container2 and vice versa. Can we achieve this in TouchGFX?
Hi,I didt call touchgfx function in my boot project but it is still linked into .text section, do you know how to avoid link touchfgfx code in?Thanks
I have several pages to be displayed when events occur. Each page shows which event happened.I think best place to parse the incoming event is FrontApplication. So I check the event queue in FrontendApplication::handleTickEvent() using processIncomingEvents() as in the follwing code.////////// Model //////////// uint32_t IDincomingQEvent; // in Model class uint32_t Model::getMostRecentEventID() { return IDincomingQEvent; } ////////// FrontApplication //////////// virtual void handleTickEvent() // FrontendApplication::handleTickEvent() { uint32_t currentScreenID; uint32_t bADPlayState; model.tick(); FrontendApplicationBase::handleTickEvent(); /* reset counter */ model.getADPlayState(&bADPlayState); currentScreenID = model.getCurrentScreenID(); if(bADPlayState != 0) { if((currentScreenID != ESP_SCREN_SCREEN_SAVER) && (tickCounter4ScreenSaver > 300)) { static_cast<FrontendApplication *>(Application::getInstance())->g
I have STM32F407 Boards like, DIsco board (without TFT) and some basic Chinese Boards. I have interfaced my TFT LCD with the board using FSMC interface and done basics like text, graphic shapes and images. So the driver is in place I think.Now I want to iintroduce Touchgfx to make my GUI lively. But as far as I understand STM32F407 needs external RAM and ROM to store images and frame buffer to be used by touchgfx to be effective. So which are the possible chip options I can use for this purpose. BGA type RAM or high pin count ICS are not practical my case.Please suggest.Thank you
STM32F407VG Disco Board is without TFT LCD. I am learning to interface this board with a TFT LCD using FSMC. The FSMC WR pin (Write Enable) pin is used in the board as input in USB OTG interface. ( As far as I understand). Schematic part below.I would like to know weather the existing LED and a IC connection in the board will interfere with FSMC operations if I connect these GPIOs to LCD via the connector Pins available in the board.Also I plan to use A18 as the Register select Pin which is also having an LED on board.RegardsThank you.
Hai i have a STM32F746IGT Development board and (Waveshare) 7inch display(800x480).Using tools are following bellow;STM32CubeIDE 1.6.1TouchGFX 4.16.0STM32CubeMX 6.2.1while run the code it's go to Hard Fault ();after doing some change in LTDC start Frame Buffer address and some were it work fine. if there any changes in screen using TouchGFX tool display is also update.(Note: while display working time it's not enter the While() loop function)Once switch OFF and ON the controller come back to fist position.I change Stack Size is also it not work.Searching in internet related this issues but not find anything.i am facing this issues for long time.any one please share solution for this problems. Please find the attachment of Program file for reference. where i am doing make mistakes....? i need change hardware or code........? https://we.tl/t-c5Mk475n6wThanks youbyM.Govind
Hi ST engineers,I make a time-display-container and bind callback from RTC wakeup irq.Set binding operation in time-display-container init function.Unbinding it in destructor function.But my unbinding operation does not work.When RTC wakeup irq is calling,ittrigger and show the last screen(which has time-display-container) I had leave.How can I unbind the callback?setAction and ReleaseAction bind callback unbind callback
Hardware:MCU: STM32L4R9ZGJ6OSPI Flash (512 Mb): MT35XL512ABA1G12Software:STM32Cube_FW_L4_V1.14.0STM32CubeIDE 1.6.0TouchGFX 4.13.0Hello,I am working on over-the-air device firmware updates for the STM application code and GUI assets stored in a memory mapped OSPI flash. I would like to be able to update the OSPI GUI assets independently from the application firmware since the GUI assets may not always be updated and can be up to 64 MB compared to the application flash size of 2 MB.Question: Does TouchGFX create a version or timestamp in the generated GUI source files that I can use for firmware update version comparisons?My goal is to be able to compare the version of the GUI assets in the OSPI flash to the version stored on a server, and update only if needed. However, I don't see if or where TouchGFX tags the generated GUI code with any version or date information.Thanks,Derek
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.