Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
In the E-Bike Demo, inside LanguageSelector.cpp (Container) there's the function void LanguageSelector::setLanguage(LanguageId selectedLanguage)where, at the very end, after updating the cache calls the functionemitLanguageChangedCallback(); Unfortunately, it is not Documented.I'm seeing the auto-generated Base Function of LanguageSelector has a virtual functionvirtual void emitLanguageChangedCallback() { if (languageChangedCallback && languageChangedCallback->isValid()) { this->languageChangedCallback->execute(); } }I suppose that it refresh the cache of all the text managed by the translation engine in ToucGFX Designer but, it's just a guess
I am new to TouchGFX interface. I am trying to create GUI for the custom LCD hardware of size 240x320 communicating with ILI9341 LCD drivers. The touchgfx builds the code and runs appropriately in the simulator., but the same is not working with the hardware. screen switching with the images in it works absolutely fine but without the text.The MCU in use is STM32U575V.Touchgfx version is 4.24.1The images and font is placed in the internal flash as there is no space constraint for my application. ( Most of the demos or examples use external Flash for images and fonts).Using a custom Font for my application (default font Verdana didnt work as well)so the settings considered are as followsThe *.icf file image 2. the settings in Touchgfx With the setting to unmapped storage format in Config, the images are getting displayed on the screen and switching of the screen also works fine. (No text is displayed on the screen)Since the texts are not working for me. I ch
Hi!I have an issue with one of my implementations. void CalendarRepetitiveDaysView::scrollListProgramsUpdateItem(CustomContainerPrograms& item, int16_t itemIndex){getWeekPrograms();if (itemIndex < programCount){WeekdayProgramGroup& program = weekdayPrograms[itemIndex];TypedTextId type = getTypeOfProgram(program.active_favorite, program.standby_active);item.updateTypeText(type);item.updateTimeText(program.start_hour, program.start_min, program.hour_duration, program.min_duration);item.updateWeekdayText(program.weekdays, program.weekday_or_not, program.day, program.month);if (itemIndex == selectedIndex){item.triggerProgramInfo(selectedProgram.start_hour,selectedProgram.start_min, selectedProgram.hour_duration, selectedProgram.min_duration,type, selectedProgram.temp, selectedProgram.hum);customContainerProgramInfo1.setVisible(true);customContainerProgramInfo1.invalidate();}}} void CalendarRepetitiveDaysView::scrollListPrograms_ItemSelectedHandler(int16_t itemSel
Hello Friends!Im trying to configure TouchGFX manually on STM32H747I-Discovery board. Im using CubeMX version 6.14.0, after selecting TouchGFX for Cortex-M7 'Vector Rendering' & 'Video Decoding' options are not getting visible.TouchGFX Manual Configurationbut on other hand if im generating project through TouchGFX Designer and checking ioc file then these options are visible there.TouchGFX Designer generated Configuration i compared both project's ioc files i didnt get any diffrence.. is there any hidden setting do i have to enable for this isse? @Osman SOYKURT @mƎALLEm
Hello Everyoane,I'm new here and I'm trying to set up my first project. I don't have experience with the STM board, so I don't know where the problem starts.To check the boards, I'm using some templates from TouchGFX Designer and writing on my board. The problem that I have is that is not working correctly at all. I don't have texts or instead of the graphic (one analog clock), for example, I have just a white square. Also, if I load an image and try to display it, it's just a white square on the display ( after I write the program).If I'm usind text, on the display I have pixel problems.Can I have some advice, please?Thank you!Alex
As the title, I can't get the difference between the Model and ModelListener.From what I've understood the Model class is used to get and store/send the data coming between the phisical part of the microcontroller (i.e. peripheral) and the GUI. The ModelListener instead is the interface that checks if these data have been updated and inform specific Presenters when needed.I have kind of understood the documentation provided here but, first of all, why in the Model.cpp it checks if modelListener != 0?I can't understand where and how modelListener takes its value.I've checked the E-Bike Demo and the process of passing data from the Model to the GUI is a little bit difference. In the Demo the Model.hpp has a bind functionvoid bind(ModelListener* listener) { modelListener = listener; }With the ModelListener.hpp having another bind to the Model classclass ModelListener { public: ModelListener() : model(0) {} virtual ~ModelListener() {} void bind(Model* m) { model =
Hello,I'm trying to get the DebugPrinter to work on an STM32H7S78-DK, but the debug message does not appear to be properly refreshed after the Application::invalidateDebugRegion(); The area slowly turns into a black rectangle after each text update. TouchGFXConfiguration.cpp shows: static LCDGPU2D_AXI display;I don't see an hpp file for this. Is there a solution? Have tried LCD16DebugPrinter.hpp and LCD24DebugPrinter.hppThanks,The Windmill
Sometimes I want a source folder in Windows set to case sensitive so I can fix the case of filenames for git and so I can test consistent case uses of include files so building on linux works too.In this case TouchGFX simulator complains that SDL2.DLL and SDL2_image.DLL are not found. The reason is the DLL extensions in the middlewares folder are lower case.For some reason building with Visual Studio 2022 did not cause any problems.For now my workaround is renaming the DLLs that are in the build folder.Changing the case in TouchGFX Designer should not cause a problem for people who have case sensitivity disabled (default).
Either from the code, or a screen button interaction? I added a swipe container to my project and it appears to be working, but I will be using a resistive touch screen and I don't know yet how well it will interpret swipes. I would like it to be able to have both buttons and swipe.Is there a link to the source for this example: https://www.youtube.com/watch?v=3zAS3WFp4Rsthanks
When I create a gauge with this configuration, it works fine in the simulator, but on the device the needle is not visible.Arcs work fine, and gauge is correctly displayed. Needle is not.I have tried with STM32F746G-DISCO: it works fine.It's only with nucleo-G071RB + GFX01M2.My environment:- nucleo-G071RB board- X-NUCLEO-GFX01M2 espansion board (XNGFX01M2$AZ1)
Hello!I'd like to trigger a screen change (navigate to a specific screen) whenever a hardware button is pressed, and I want this behavior to be global. How can i do that in touchgfx?The only way i managed to redirect user is local, creating interactions in each screen, but i want to do this globally.
Dear Gfx Team,Could you possibly add a variant of snprintf() for double please ?In touchgfx/Unicode.hpp, there is a float versionstatic UnicodeChar * snprintfFloat ( UnicodeChar * dst , uint16_t dstSize , const char * format , const float value ) And for double, it would bestatic UnicodeChar * snprintfDouble ( UnicodeChar * dst , uint16_t dstSize , const char * format , const double value ) Thanks.
When I add a button I get: Button1When I add another button I get: Button2This is good.When I duplicate Button2 I get: Button2_1When I paste it again I get: Button2_2Repeated copying is worse: Button2_1_1_1_1...What I want is for it to be: Button3If I have a lot of widgets it can be a pain to change their names renumber all of them.
I am running into a difficult bug when trying to use the SVG and vector fonts on the STM32U5G9NJH6Q that may be related to this specific variant of the chip, or to the dimensions of the RGB LCD that is being driven (or both). The problem is that SVG images (even a single basic rectangle) end up having a "shattered" look where there are many holes/tears and random lines and shapes that almost make it look like shattered glass. It also tends to be more prominent on the top left of the image (regardless of size). A basic square also showed an 'X' shape like it is split into four parts by a fine line (even following rotations). The strange thing is that animations and rotations of even large SVG images work well (despite the rendering issues).I also have an STM32U5G9J-DK2 where the SVG feature works perfectly fine. I have built and debugged the demo 7 project in STM32CubeIDE, so my tools appear to be fine (unless this is a hardware issue with the NJH6Q package
I have a new STM32U5G9J-DK2 board. I have to port an application running on STM32H747I-DiSCO board.I have a big problem with setting brightness in the new board. In STM32H747I-DiSCO app I used:extern "C" { void LCD_SetBrightness(int value); }The LCD_SetBrightness() function is implemented in TouchGFXHAL.cpp file for the H7 processor. The same thing does not work with U5 processor because the TouchGFXHAL.cpp file does not contain the LCD_SetBrightness() function.So, the question is how I can set the LCD brightness in STM32U5G9J-DK2 board.I tried using the brightness control implemented in Board Support Package but calling BSP_LCD_SetBrightness(0, 50) (50% brightness) causes Hard_Fault() interrupt... Nice!Can somebody help? Thanks,Louis
Hi all,For a project, I made a simple tab structure where I can put all kind of settings, The list is divided under the tabs and shown in 2 list views next to each other. In the class, I have a variable keeping track of the currently selected tab. After clicking a tab button this variable is set to the new tab. I set the number of items for the list views to the amount needed for the number of options and invalidate the list views.After doing this, if the number of items in the listview did not change, the invalidate will not trigger an updateCallback so the list items will not be updated, and instead, the old items will stay in the view. For now, I solved this by setting the number of items first to 0 and calling the invalidate function before I set the number of items to the correct amount.Is this expected behavior, or have I run into a bug here?I attached a screenshot of the view and the code to give you more of an idea of the implementationCode:/** * Set the selected tab * Set the
The question was already asked but still not answered. I was trying to use:application().goto() functions but unsccesful.https://community.st.com/s/question/0D53W00000xqBlLSAU/how-can-i-switch-screen-from-model-class-in-response-to-external-event-backend-event
Hello, I created an app form my STM32H7474I-DISCO board to test SD card based on this example. I spent a couple of hours with porting it to H747I-DISCO board, but finally it worked: I could save and load a file from an SD Card. I implemented the whole thing into my TouchGFX based project on same discovery board. I could build and run the project but when I tried to write a new file the SD Card was mounted fine but creating a new file failed with FR_NOT_READY (The physical drive cannot work) error. uint32_t byteswritten; if(f_mount(&SDFatFS, (TCHAR const*)SDPath, 0) != FR_OK) { Error_Handler(); } else { //Open file for writing (Create) if(f_open(&SDFile, "STM32.TXT", FA_CREATE_ALWAYS | FA_WRITE) != FR_OK) { Error_Handler(); } else { //Write to the text file res = f_write(&SDFile, wtext, strlen((char *)wtext), (void *)&byteswritten); if((byteswritten == 0) || (res != FR_OK)) { Error_Handler(); } else { f_close(&SDFile)
Is there any form of 3D graphics drawing support? I have a matrix of temperature sensors data which would be easier to view and understand their positions on the real world as 3D points. What I want to achieve is some kind of 3D heat map where each sensor is drawn on its own position based on multiple vertical cables and their color representing the actual measured temperature. Is that possible?
Hi ST community!We have a custom OEM product that using STM32H753ZIT6 with external SDRAM (parallel mode) and NOR Flash (QUADSPI mode) memories.In this particular project we are facing some issues with the TEXTS, more specifically the rendering of the texts.I attached a video to show this details.The text alternates between the correct content and the '?' character. On some screens the frequency is higher between the content and the '?' character, but on others it can vary up to 1 second.Normally when it happens means any special character was not defined properly at Touchgfx, but we double check it and everything is there.When we change a text we always follow this sequence (just an example): text.setWildCard(textBuffer); text.resizeToCurrentText() or resizeToCurrentTextWithAlignment(); text.invalidate(); After this effect we try to erase all NOR FLASH to guarantee the content. Also after all download to NOR FLASH, is checked. But it not works or return error
Question moved from this post. I do this and upload the project but the stm32h747i-disco screen does not work
Hi,I am using STM32F469I-DISCO with touchGFX on it, and I would like to reduce power consumption. I managed to set the brightness of LCD to lowest when no user activity for more than 30sec.I am resetting brightness as soon as the user touch the screen.I would like to know if it is possible to use sleep or stop mode for reducing power consumption as much as possible. My concern is about how to wake up the system, since I need to check if user has touched the screen?Second, is using an ammeter on IDD (by removing the jumper) the right way to measure power consumption?Thanks for any help,Best regards.Clément Devevey
Dear Gfx Team,Could you please add a 'Clone' option when right click on a Typography ?Newly created Typography is then a carbon copy of the original. Thank you.
I created my first UI using the TouchGFX software but after when I opened the file in CubeIDE, Build the project and try to Debug it. I am getting this IssueIam New to STM32. Can someone help me?I used this youtube video from ST as reference(2194) How to TouchGFX: Creating my first GUI with TouchGFX Designer for STM32 GUI applications - YouTube
Hi all,For my GUI I need several circle and box progress widgets in different sizes that have a transparent background, e.g. only showing the actual progress "line" and nothing else. So far I achieved this by simply choosing a transparent PNG as background image and that works fine. However, due to the many widgets and sizes I use quite a lot of transparent PNGs which start to add up in flash size.Having PNGs using space for practically not displaying anything feels wrong, but It seems like the progress widgets only can take images as backgrounds and actually do need an image (there is obvious option to leave it blank). Is there a more flash space efficient way to achieve circle progress and boxes with transparent (or no) background?Thanks in advance!Sascha
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.