Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
sir we are using stm32f7508-dk board , we generated code through touchgfx , as per our application requirement code is modified in that. but i need to control the 8 relays using the io pins , when we are going initialize the io pin in cube ide dipslay part is not working hardware controlling also not working .. can you suggest me how merge both dispaly and hardware control
Hello all,Maybe someone knows, why the STM32CubeIDE don,t reconize touchgfx::ScalableImage bat_img_w image?The error message is "Write occurrence of 'ScalableImage'". Of course I genererate code on TouchGFXDesigner and after in STM32CubeIDE. The Image objects ale reconized correctly but ScalableImage don't. I can't use not reconized object in MainScreenView. Below generated code from TouchGFX. /*********************************************************************************/ /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ /*********************************************************************************/ #ifndef MAINSCREENVIEWBASE_HPP #define MAINSCREENVIEWBASE_HPP #include <gui/common/FrontendApplication.hpp> #include <mvp/View.hpp> #include <gui/mainscreen_screen/MainScreenPresenter.hpp> #include <touchgfx/widgets/Box.hpp> #include <touchgfx/widgets/Image.hpp> #include <touchgfx/widgets/
Hello, I created two list, in picture I marked red and I want to drag list element to another and put element from list1 to list2. Is it possible? if not, maybe someone knows another idea?
Hi,I have a set of 85 images that I would like to add to TouchGFx to create animation.I just wanted to know, whether there is any limitation on the number of images that can be added to a animation?What is the naming convention to be used to name those 85 images?As far as I know after 9th image we will have to name the 10th image as 9a ........ 9b...so on and so forth until 9z. My question is Whats next after 9z?I mean what is the naming convention ?
I'm trying to use SVG image in TouchGFX, but I got this error:Maybe someone knows how to solve this error?
Hello everyone,I have a problem with TouchGFX, STM32CubeIDE and the STM32746G-Discovery PCB.I ran TouchGFX4.22.1 and compiled a simple example with an analog clock without any modifications. It worked well.I then launched CubeIde and created a project from the IOC file found in the TouchGFX project example I tested earlier.In the generated project, I made some modifications related to the use of SDRAM (init procedure) and QSPI (BSP init procedure).I also changed the linker script. (The changes are from an example generated by TouchGFX that I previously tested.)I then ran TouchGFX from CubeIde, selected the same analog clock example, and included the generated code in my CubeIde project ( it was done automatically).The project was compiled correctly and works, but the image on the screen is distorted, as in the photo.Can someone help me and point out where the error is?
Posted on August 17, 2017 at 18:07Hello all,I'm using the STM32F429 Discovery Kit and running the LTDC in 8 BPP (L8) mode. I have STemWin and am displaying their colour bar sample. I have a problem with colour conversion where the colour bars appear correct in the WIn32 simulator but are incorrect on the discovery kit.For the simulator I have in LCDConf.c:&sharpdefine COLOR_CONVERSION GUICC_888&sharpdefine DISPLAY_DRIVER GUIDRV_WIN32On the discovery I have:&sharpdefine COLOR_CONVERSION_0 GUICC_323&sharpdefine DISPLAY_DRIVER_0 GUIDRV_LIN_8In both cases I am using the default palette.Can anyone advise me which of the other many colour conversions would be the correct one to use on the discovery so that the colours match the simulator?Thank you,Regards,Andrew.#stm32cubef4-ltdc #lcd #stm32f429-discovery #color #stemwin
I have a full working project targeted to touchGFX 4.20 (compile and run fine). I've tried to upgrade to 4.21.4 but I have the following linker error:"Error: L6216E: Cannot use base/limit symbols for non-contiguous section .ARM.exidx"The migrating procedure is the following:open the .ioc file of the project and migrate touchGFX to 4.21.4 - generate project filesopen the project with touchGFX designer and saveopen in MDK and compile ==> I see the linker error (If I recompile the project before the migration, it just run fine)Some project info:microcontroller: STM32F750N8H6IDE: keil mdk 5.37ARM compiler: 6.18cube mx: 6.8.1Scatter file:; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_ROM1 0x90000000 0x01000000 { ; load region size_region ER_ROM1 0x90000000 0x01000000 { ; load address = execution addr
When I using handleDragEvent(const DragEvent& evt) function my application start to lagging. How to do that handleDragEvent function be called only when I touch image and not scrollable container? Draggable is turned off on scrollable container
Is it possible to simulate touch? For example I touch one time but executes two touches on same XY? I have one hided image and then I touch list element that image appears and I need to drag it.
Hello,I am having an issue with the relationship between TouchGFX(4.23.0) and STM32CubeIDE(1.14.0). Creating a TouchGFX project through a CubeIDE project and creating CubeIDE project through TouchGFX, seem to give differing results and challenges.Parameters:TouchGFX(4.23.0)STM32CubeIDE(1.14.0)STM32CubeMX(6.10)STM32F429I-DISC1 (MB1075-F429I-E01)STM32H7B3I EvaluationCubeIDE project through TouchGFXWhen creating a TouchGFX project with the STM32F429I-DISC1 board, I get the following:Adding a button and generating the code yields the following project docs:Opening the generated cproject file imports the following project:Notice that the IOC(MX) file has a different naming convention. The project seems to be the a older board revision.Note: I have seen and tried some online tutorials for adding the IOC file into the project, but this leaves the user needing to set up the .IOC file and I get the following message:Not to mention several build errors.TouchGFX project through a CubeIDE projectN
I am using TouchGFX and currently using simulator only. I want to change the 1st Screen after 2 Seconds. How can i achieve this timeout to change the screen. I explored all the widgets in the TouchGFX but i didn't get any option. Anyone has solution on this?Thanks in advance.
I am creating a menu similar to TouchGFX Dem1 1 for an STM32F767. I have had succes expanding the menu options from the original size to varios menu size (6,7,9) menu options. For some reason when I try to add the 10th element the animation of only the 10th element is never started. Is there any limitation on the amount of concurrent animations? What could prevent the animation from being started or canceled? void ScreenSelectorView::StartFadeOutAnimation() { int button_cont_duration = 30; int i; int button_cont_endX = 0; int button_cont_endY = 0; touchgfx_printf( "NUMBER_OF_BUTTONS = %u \n" , NUMBER_OF_BUTTONS); for (i = 0; i < 10; i++) { /* Start closing animation */ icons[i].setFadeAnimationDelay(FADE_OUT_ANIMATION_DURATION - i); icons[i].startFadeAnimation(0, FADE_OUT_ANIMATION_DURATION); texts[i].setFadeAnimationDelay(FADE_OUT_ANIMATION_DURATION - i); texts[i].startFadeAnimation(0, FADE_OUT_ANIMATION_DURATION); buttonContainers[i].setMoveAnimationDelay(
I get this message in TouchGFX Designer when I try to change the font format to vector. This is the new advertised feature of TouchGFX 4.23.0. I have "Vector Rendering" and "Vector Font Rendering" enabled in IOC. What else is needed to enable vector fonts in TouchGFX 4.23.0?
The problem appeared when I deleted a custom container that contained a specific font. I also deleted the typography. Then for a test purpose, I imported the custom container again. I got an error, that my font file is being open, so the import process cannot write it.The import failed leaving some files imported, and some not imported. I had to manually delete imported files and restart TouchGFX to be able to import the custom container.What IMO should happen - if the import fails, it should roll back the changes, or... maybe ignore the error and continue with the rest of the files. When unexpected error occurs - the best solution would be to display a dialog like this:An error occurred while importing the custom containerProceed with:Roll back the changes (remove imported files)Ignore the error and continue (some files may be missing)
I spent several hours on replacing all gradients from my clock control to SVG gradients.The SVG gradients, used as highlights and shadows were created in Inkscape and then edited by hand to contain minimal required information, no application specific tags and metadata.Here's one example:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg version="1.1" id="svg1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs> <linearGradient id="gradient" x1="0" y1="1" x2="0" y2="0" gradientUnits="objectBoundingBox"> <stop style="stop-color: #ffffff; stop-opacity:0;" offset="0" /> <stop style="stop-color: #ffffff; stop-opacity:1;" offset="1" /> </linearGradient> </defs> <rect style="fill:url(#gradient)" x="0" y="0" width="152px" height="152px" /> </svg>This is a simple gradient white at the top and transparent white at the bottom.I have several of similar gradients composed in my custom cont
Hello everyone, when I compile the code with the designer and throw it away, there is no problem, but when I create it via CubeMX and open it in CubeIDE and compile it, I encounter problems.For example:STM32U5A9NJHXQ_FLASH.ld ->EXT_FLASH (r) : ORIGIN = 0x90000000, LENGTH = 64MWhen the ext_flash address is like this, it falls to hardfault.Other example:While I can throw the project I created on Designer to the device with ST-LINK without any problem (graphics, etc.), when I throw the project I created on CubeMX, no display appears on the screen. I can't find a source about this and the topics I have found are very old.
Hello, I'm having issues trying to clear the data set from a dynamic graph in Touch GFX. Unfortunately none of the data points nor graph line are being cleared from the graph.The graph is set to scroll as more data is added. When a "user session" is reset I would like to clear the existing data from the dynamic graph. I would think it was as simple as calling the clear() function but I am not having any luck. Documentation says invalidation is done when clear() function is called but I have also tried adding the invalidate. dynamicGraphVoltage.clear();dynamicGraphVoltage.invalidate(); Thank you for any suggestions!
I'm am having trouble figuring out a good flow for using Designer and CUBE IDE to design a GUI. I am mostly using Designer (4.22) to draw graphics but can't seem to retain custom code when Designer generates code. For example, I am using the F769I-DISCO to do some development and added a circle with a ClickListener. What I want to do is change screens when a user clicks on the circle. Now, I know what code I need to add this feature and it does work but as soon as I generate code through Designer, my custom code gets deleted - how can I retain it?I really can't built my GUI if this keeps happening, there must be a way for me to be able to use Designer in conjunction with CUBE IDE.
这个问题是从4.22版本开始出现的,之前的4.20可以正常用,装完4.22后,出现这个问题,然后4.20版本也一样问题不能用了,我全卸载,装了4.23,这个问题依然存在,可能是什么原因,怎么解决?
Hi everybody,I'm developing a simple gui on an STM32F429 microcontroller with the use of the STemWin grapich library. Everything is working well till I'm using just one framebuffer; now I would like to use double buffering to optimize the interface and have a better displaying, but something is going wrong, since I can no more see anything shown, just a black screen with backlight.I read chapter 23 of emWin manual, where Multiple Buffering is described, and I've done changes to my code accordingly: enabled multiple buffering, customized buffer copy callback, manage buffers switching, enabled Window Manager multiple buffering option. To make this changes, I've used the project "STemWin_SampleDemo" of the "STM32F429I_Discovery" board.DMA2D and LTDC are used. Is it possible to copy one buffet into another using DMA2D if it's configured as Register-to-Memory? Should I modify its working mode to Memory-to-Memory?Thanks in advance for any help,Andrea
hello everyone I create a project in Touch GFX, generate code, make my changes to the xxx.ioc file,open it in Cube IDE with xxx.cproject . I compile, create my variable in the <usbd_cdc_if.c> file, use it in <Screen1View.cpp> how extern variable , run it,everything works fine in reality STM32F429I-DISC1 board, but when I try to Touch GFX simulate it. it gives an errorabout the my <Screen1View.cpp> extern variable ..... \TouchGFX/gui/src/screen1_screen/Screen1View.cpp:72: undefined reference to `my_char_Rx_buf'after that I read that I should add in the file <Model.cpp>.....extern "C"{#include "main.h" //////// or another .h file for example usbd_cdc_if.h}but I noticed that in CubeIDE it seems that all <zzz.h> files are ignored, for example, the compiler does not reactto changes made in the file <main.h> ; <usbd_cdc_if.h>how can understand this ???thank you in advance
Hi,I'm working on a project where we are utilising the dynamic bitmaps and "TextAreaWithOneWildcard" widgets to achieve "dynamic" Page generation during runtime. We are using STM32U599 with DMA2D, and TouchGFX 4.22.One of the problems we faced was also the screen orientation, for which we decided to try rotating the whole framebuffer 90 deegres clockwise, right after the touchGFX framework is done rendering all the elements, and prior to display controller updating the screen.We selected a `void TouchGFXHAL::endFrame()` as a promising moment at which we can perform a rotation of the framebuffer (using single framebuffer currently, with possibility of adding a second). Rotation in the endFrame() will be performed only once, when a "flag" is set indicating that our "Page" has been updated and we set the elements for rendering using invalidate().Here is where the problem occurs - when a new "Page" has arrived, we invalidate all the widgets (textAreaWithOneWildcard and Images) that should
sir we are generated code through touchgfx(stm32f508-dk) , the display part working good as per our requirement ,but when add led toggle code in while condition in that code ,its not working , before while condition we added led on and off for 10 seconds its working . only code in while condition not executing
Hi All,I'm trying to implement a busy indicator.I have a set of 24 images generated as frames from .gif file.I used couple of techniques.First one being texture mapper to rotate a single .png and the smoothness of the busy indicator rotation is not great.Second I tried using animation by adding all 24 images to the project (along with conversion to L8 format) and the same issue persists. There also seems to be a overlap in the head part of the busy indicator.How can perfection in the rotation of busy indicator be achieved?Could L8 format images be the culprit which is causing the busy indicator to look uneven?Will using more images provide more smooth rotation?Should I explore using SVG image format? Please suggest a solution for achieving more rotation of busy loader.
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.