Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
This is an appeal to ST to re-consider situation around NeoCrom GPU and making it publicly accessible with full documentation to little developers.Thank you & Kind RegardsR.
Dear GFX Team,When trying to move(drag and drop) an item within a group... This error message appears:Error log:2024-05-22 12:27:27,316 [1] ERROR TouchGFXDesigner.App: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at TouchGFXDomainModel.Texts.TextDatabase.MoveTextToGroupBefore(Text textToMove, Text beforeText, TextGroup textGroupTo) at TouchGFXDesigner.Main.Project.Texts.TextTab.TextGrid.TextGridViewModel.MoveText(Text sourceText, Text targetText, TextGroup targetGroup, RelativeInsertPosition relativeInsertPosition) at TouchGFXDesigner.Main.Project.Texts.TextTab.TextGrid.TextGridViewModel.Drop(IDropInfo dropInfo) at GongSolutions.Wpf.DragDrop.DragDrop.DropTargetOnDrop(Object sender, DragEventArgs e, EventType eventType) at GongSolutions.Wpf.DragDrop.DragDrop.DropTargetOnDrop(Object sender, DragEventArgs e) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) a
Hello all, I am developing with a STM32F429bit6 by STM32CUBEIDE v1.15.1 and TouchGfx v4.23.2. The LCD display works well. The screen layout is portrait.However, when I moved the images to the SPI flash (w25q64), the display was crashed. The changes are as below:Change the ld file to store the images and fonts: Enable External Data readeradd spi flash driver and implement the virtual function void DataReader_WaitForReceiveDone() { return; } void DataReader_ReadData(uint32_t address24, uint8_t *buffer, uint32_t length) { W25Q_Read(address24, 0, length, buffer); } void DataReader_StartDMAReadData(uint32_t address24, uint8_t *buffer, uint32_t length) { W25Q_Read(address24, 0, length, buffer); }
Hi there,I am using cubeMx and TouchGFX to show some UI.I set the display format to RGB 565 in both cubeMX LTDC and TouchGFX config.But in the generated code by touchgfx, all the images are stored by RGB888 or ARGB8888 format(in the path "TouchGFX\generated\images\src\*.cpp").Because I just need RGB565, can I just store the bit I need? Thank you.
I can't find an answer to this but, let's say I've an image as texture map of 4x4 pixels located at coordinate (0,0) so getX() and getY() return 0 and 0If I resize it with setScale(0.5f) so half the size, the getX() and getY() return the same value 0,0 or TouchGFX try to center the image and it returns (1,1)What about getWidth() and getHeight() value after the setScale(). Do I get 2 and 2 or it always return 4 and the setScale() is just a virtual function for the visualization?
How to put elements in list to the west? I set list direction WEST but it does not working.I found out that its not supported Maybe there is another way to put elements from east to west?
Hi community members !!I’m attempting to open my touchgfx file (.touchgfx file) from the ST32Cube IDE, but I’m running into an error that states, “Value cannot be null. (Parameter ‘path2’)”. I’ve attached a screenshot for reference. This is the first time I’ve encountered this error in my project, despite having successfully added screens, components, generated code, and flashed it to the board in the past using touchgfx. Could anyone provide a potential solution?
Hello,I am using STM32H745 controller with TouchGFX. I wanted to achieve slide transitions such as top to bottom, left to right and right to left for going to other screens. When I slide from top edge to down, slide from right edge to left, slide from left edge to right it should switch to different screen. Am using a resistive touchscreen with TouchGFXHow can we achive such transitions using TouchGFX?Thanks Anuj
Hi all,I currently working on a project using TouchGFX, multiple tasks are using functions from <math.h> which are not re-entrant, so I have them mutex protected. The drivers using these functions are written in C.Does anyone know if the TouchGFX library uses any non re-entrant library functions? Do I need to be careful with anything I use in the application?Kind Regards,Anthony
Hello,I am developing a TouchGFX application for my STM32H7 MCU using LTDC. Sometimes, after turning the system on, the assets on screen looks "smeared out". Or rather, it looks out of sync or something similar. Restarting the system usually resolves the issue temporarily. The issue only shows up after power up. I have tried to find a solution but with no luck. I need some help. Have anyone resolved any similar issues? Screen out of syncImage out of sync? Screen looking as expectedHow image usually looks
I cant use touchgfx well ,not familiar with c++.will stemwin add gpu2d support ?
Hello, I am trying to make text bold using the TouchGFX Designer. I am using 4.20.0 at the moment.Is this something that is possible? I am trying to look for options, but I am not having any luck.
Hello! I have a question that was raised before, but didn't get an answer: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/what-if-number-of-data-points-is-greater-than-number-of-pixels/m-p/222692Basically, my question is the same but concerns static graphs:I have 1300 data points that I add to a graph that has a width of 720 pixels. The library allows me to add those points, but what do we see on the screen? Will each graph pixel be an average of several data points (how it is done then if it is 1,805(5) data points per pixel) or will some points be thrown away completely?Thank you.
Dear Gfx Team,Could you please consider changing the following behaviour.When in Text view and double click in any edge, adjust width of all columns - not just the one associated with that edge.Example:Intial widthsDouble click on the boundry... only the 1st columns adjustedBut, this is what should ideally happen after the double-click: Thank youFerro
I noticed that areas of internal SRAM appear to be used by GFX. I inferred this from a project I am doing with an H745 dual core micro; I set aside a small amount of SRAM4 to be shared between the cores, and I can watch on the debugger as portions of that memory space can be updated or not, depending on whether I have interacted with the LCD. This suggests that GFX is helping itself to the SRAM, and I need to know how we can declare an amount of internal RAM off-limits (or, are there documented regions of SRAM that are safe to use when running GFX?). The DISCO board uses external SDRAM, by the way. Thanks for any insights someone might be able to offer.
I have created a custom container which includes some text boxes, scrollists labels etc to allow the user to set the parameters for an alarm. I add one of these custom containers to my listlayout in code for each alarm to be set. So the user is presented with a list of alarms, and the opportunity to change the settings for each alarm. I have also created a modalwindow containing a keyboard. The desire is when the user clicks the box for an individual alarm to set the numeric value of the alarm limit, a modalwindow pops up, so the user can enter the new numeric value, which is saved into the model value and displayed in the relevant box in the list for this alarm, when he clicks save in the modal window and closes it.The problem I have is that when the boxclickhandler displays the modalwindow, it only displays the tiny portion of the modal window which covers the listlayout, rather than popping up the modalwindow over the entire screen:I guess this is because the modalwindow is a member
Hello everyone,Hello @Martin KJELDSEN , I have read all the posts in the community, thats with this topic relevant and tried to do the same thing in this post.I could reversed the screen with 180 degree, except the buttons they staying on the original position. Even when they are clicked then nothing happens.The post above is few years ago and i don't know if there is some updates to this subject. Otherwise i muss flipping all the screens in the designer.Regards,Mahdi_____________________________________________________________________________Before flipping:After:but the button is not touchable.
I want to realize a scroll bar in ScrollList.So the scroll bar will work like process bar. And it will tell my user where the current icon is.Is there any clever way to realize it.In addition, can I customize the scroll bar?
Hello,I started a new design based on an STM32H745XI with a 480x272 TFT screen.I have some experience with TouchGFX with a previous design on an STM32H7B3 with the same screen but this development is stucked at the TouchGFX 4.17 revision.My problem is with images stored in a non mapped external flash (an eMMMC in this case). I setup the bitmap cache as usual using the registerBitmapDatabase call in my TouchGFXConfiguration.cpp file as this : // Use the section "TouchGFX_ImageCache" in the linker to specify the placement of the cacheLOCATION_PRAGMA("TouchGFX_ImageCache")uint16_t imageCache[2*1024*1024/2] LOCATION_ATTRIBUTE("TouchGFX_ImageCache");void touchgfx_init(){Bitmap::registerBitmapDatabase(BitmapDatabase::getInstance(), BitmapDatabase::getInstanceSize(), imageCache,sizeof(imageCache),10);I implemented the blockCopy function to detect address ranges in the ExtFlashSection and provide the copy from eMMC to RAM but this blockCopy function is never called in normal run ...
Hi, I'm using an STM32U5 DK and I'm comfortable with TouchGFX and its code generation features. However, I'm struggling to achieve the same results manually, as there are many changes in both hardware configuration and TouchGFX files. Can anyone guide me on how to display plain colors or anything on the DK screen without using code generation, just through hardware configuration and LCD initialization? Any help or resources would be greatly appreciated!
I am using a touch controller with TouchGFX on a custom board. It is using I2C1 on the MCU and is working fine with TouchGFX. However, when MX_TouchGFX_Init() runs it is reconfiguring pins on the MCU for I2C2 that I am using for other functions. I2C2 is not being used and I never enabled or configured it in CubeMX. HAL::initialize() in the following TouchGFX code is remapping the GPIO pins to I2C2: void TouchGFXGeneratedHAL::initialize(){HAL::initialize();registerEventListener(*(Application::getInstance()));enableLCDControllerInterrupt();enableInterrupts();setFrameBufferStartAddresses((void*)frameBuf, (void*)(frameBuf + sizeof(frameBuf) / (sizeof(uint32_t) * 2)), (void*)0);} I am reconfiguring the pins back to GPIO after MX_TouchGFX_Init() runs, but would like to fix this in TouchGFX.There is a reference to a touch controller driver in the TouchGFX HAL - touchController(touchCtrl), butI can't find where TouchGFX is trying to use I2C2 when my touchscreen driver is using I2C1 a
Hi,I never worked with STM32 platform. I have to interface a SDI round display with it.I have seen that TouchGFX includes three "parts": TouchGFX Generator, TouchGFX Designer, TouchGFX Engine. But still not sure what each of them does.A couple of questions if someone could please help:1) What tools do I need to generate the code for the actual custom round display's low level interfacing2) How do I define the round display in TouchGFX? Thank you :)
Hi all,as I'm new to TouchGFX I'm struggeling on a problem hat does not look difficult at first glance.My problem:On screen_1 there is a Text Area allowes the use to enter a string as input.The entered string is needed on screen_2. As far as I know, this has to be done via model files (cpp and hpp).I tried to setup a variable (Unicode::UnicodeChar string_A[10]) in model.hpp but unfortunately I get a compiler error "Unicode....... is not declared.. ) although I have included Unicode.hpp (#include <touchgfx/Unicode.hpp>) in model.hpp.I looked at tutorial 3 which shows me how to get integer values from one screen to another and it works.What am I doing wrong and how can I fix this problem.Thx in advance
I'm running the following git source on the NUCLEO-G071RB with NUCLEO-GFX01M2.GitHub - lvgl/lv_port_stm_nucleo_g071rb: LVGL ported to ST's NUCLEO G071RB boardBut, I got an error at the cursor location from the attached figure (LCD Error 1.png).The return value of "data" from st7789v_recv_data function was all 0.I'm not sure this is correct. I guess there should be some values in it.When I run the X-Cube-Display sample program, I got the same error.Please let me know what cause this kind of error.
I am trying to replicate the DCMI_SnapshotMode example from scratch, because the example doesn't have an .ioc file. I must say that it also didn't work at first because some files were missing in the example. It took me weeks to piece it all together and I was so close to give up, until I solved my last problem that I still don't understand (hence this post). I'm using a STM32H747I-DISCO board, with the MB116-A09 LCD screen and the MB1379-2V8-A05 camera.The problem comes from MX_DMA2D_Init(). After the code is generated from the .ioc file, all the initialization steps are placed just before /* USER CODE BEGIN 2 */ (line 10 below). Doing so, it will display nothing. But if MX_DMA2D_Init() is written after UTIL_LCD_Clear() (line 30 below), then it works. Why is it so? I don't understand it, because UTIL_LCD_Clear is basically just filling the screen with a rectangle. Why does it impact the DMA2D initialization?Can somebody explain why?I am using CubeIDE v.1.14.1.Here
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.