Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I'm trying to get my 4.16.1 project updated to 4.21.1, but the conversion fails. I then tried installing all the versions in between, and can see that it fails from 4.18.1 to 4.19.0:The full error message: C:/TouchGFX/4.19.0/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/3.0.0/rubygems/version.rb:214:in `initialize': Malformed version number string - (ArgumentError) from C:/TouchGFX/4.19.0/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/3.0.0/rubygems/version.rb:205:in `new' from C:/TouchGFX/4.19.0/env/MinGW/msys/1.0/Ruby30-x64/lib/ruby/3.0.0/rubygems/version.rb:205:in `new' from C:/touchgfx/4.19.0/touchgfx/framework/tools/textconvert/upgrader.rb:42:in `<class:Main>' from C:/touchgfx/4.19.0/touchgfx/framework/tools/textconvert/upgrader.rb:25:in `<main>'
When moving the application across touchgfx versions, I am seeing unresolved dependencies for the aforementioned class. Is there any documented solution to this class and its base class?
Good day,I am currently trying to change the configuration of the STM32F769-DISCO Rev. A from single to double framebuffer. Unfortunately I am not able to get an output without artifacts for animated objects. With static screens there are no really visible problems even if there is some flickering. Especially problematic are objects which are moved with a MoveAnimator or which are distorted with the TextureMapper.I created my configuration with the Touchgfx-Designer by selecting the STM32F769DISCO. I am using the default DSI display for this board.If I use a color depth of 16bit with the double framebuffer the configuration works without errors.Also the configuration with a color depth of 24Bit and Singlebuffer works without problems. But as soon as I try to use 24Bit + Doublebuffer errors occur.According to support.touchgfx.com/4.18/docs/basic-concepts/framebuffer the size of the framebuffer is 800 * 480 * 24/8 = 1152000.0 which means a start address 1 of 0xC0000000 and start address
I am trying to make screen (slide) transition smoother using cachable container. I am trigerring slide transition with following line:application().gotoScreen2_BatteryScreenSlideTransitionWest() I am not using transition container.I tried to use cachable container for some elements that are generaly static. I assume this would make the stransition smoother. But there is no improvements in rendering time. Normaly rendering is done in less then couple of miliseconds. But during the transition rendering time reaches almost 50 ms. void Screen1_SpeedView::setupScreen() { Screen1_SpeedViewBase::setupScreen(); gaugeBackground1.setMaxRpm(presenter->getValI32(DATA_MAX_RPM)); dynamicBitmap1 = Bitmap::dynamicBitmapCreate(container2.getWidth(), container2.getHeight(), Bitmap::RGB888); container2.setCacheBitmap(dynamicBitmap1); container2.enableCachedMode(true); container2.updateCache(); initializeScreen(); }https://support.touchgfx.com/4.21/docs/development/ui-development/s
TouchGFX 4.21.2 is now out.Please follow this link to download it.4.21.2 Release details :Release date: March 1st, 2023Bugfixes in TouchGFX Designer:Fixed crash related to interactions.Fixed crash related to deleting texts in search results.Fixed SVG picker showing duplicates when undoing selected SVG.Fixed physical button names not being visible in interactions.Fixed erroneous code generation for Dynamic/Static Graph widget.Fixed faulty memory usage related to texts.4.21.1 Release details :Release date: January 16th, 2023Bugfixes in TouchGFX Designer:Fixed bug where locking a widget would cause it to appear in position (0,0) when compiling the codeFixed faulty memory usage when switching between screensFixed case where importing a Custom Container containing a font already existing in the project could cause a crashFixed a case where some widgets would not show their used images correctly when copy/pastedBugfixes in TouchGFX Core:Solid colors in SVGs would wrongly be placed
Hello, I am very new to STM32 boards. I just purchased an STM32F469I-Disco and have already installed STM32CubeIDE and can connect to the board via STM ST-LINK Utility v4.6.0 and see the blinking LEDs. However, when I power the board, the screen is black, and I cannot see the pre-loaded demonstration software programs.Thanks,Shawn
I use a module which uses C instead of C++. There is a feature used, which is available in C 99 but not in C++ before C++20. It can be compiled for the target but compiling the simulator fails with the message below. I could remove the "-pedantic" once in the temporary Makefile in the build directory of the simulator (TouchGFX/generated/simulator/gcc/Makefile):c_compiler_options_local += -pedantic $(addprefix -W,$(WARN))Shouldn't a C file compiled with the C compiler instead of the C++ compiler? The error message says "C++ does not allow...".if I add "-std=c99" in TouchGFX/config/gcc/app.mk to:# Optional additional compiler flagsuser_cflags := -DUSE_BPP=16 -std=c99... then I get the following: cc1plus.exe: error: command line option '-std=c99' is valid for C/ObjC but not for C++ [-Werror]Again, why g++ is used instead of gcc for C files?c_compiler := g++c_compiler_options += -DSIMULATOR='' -gcpp_compiler &n
..
Hello all,ST is obviously ignoring problems because i have found few topics about this issue which are two years old. So, during TouchGfx generation from CubeMX i get an errors in TouchGFXGeneratedHAL.cppJava has obviously still have problems with big numbers and ST is still unable to fix it. Know anybody walkaround? Thanks
Hello, I'm using stm32h750b-dk and I created an user interface with TouchGFX. This UI gets some user inputs and evaluting some results with that inputs. Here is my question is how can I save this user inputs and some config variables to qspi flash memory ?, and is the auto-generated touchgfx stm32 project already creates the qspi interface and driver? This variables must be non-volatile if there is another method to do that I can go with that, I'm very open the suggestions.Thanks
Hi everyone, I'm doing a game project with ST32 and ToughGFX for my Embedding Course. It's my first time using both, and I'm quite unfamiliar with the data struct in ToughGFX. Now I'm trying to write a funtion with input is 2 TextureMaper, and want to check the collision between them. Anyone can help me, I can't find any documents about this. Thanks you!!!!
I was looking at the 32F469IDISCOVERY board schematic, because I am developing a board with a TFT-LCD screen, and I was looking at the schematic as a reference to connect an SDRAM. But one thing caught my attention, and that is that the data bus of the memory indicates that the frequency is 90 MHz, that makes sense if we look at the maximum HCLK clock of the MCU is 180MHz so with a speed of HCLK/2 gives us that value.Now, looking at the datasheet of the ISSI_IS42S32400F-6BL SDRAM memory, I noticed that the memory frequency is 166 MHz or 100 Mhz if the lowest latency is used.How is it possible that SDRAM memory can operate below this value? Does this imply that you can choose any SDRAM memory and run it below its minimum clock value or is this characteristic of this memory?
Hi all,I'd like to use a scrollwheel container in touchgfx with a vertical scroll direction. The scroll wheels works fine from 0-10, but Number 0 is on top and the number 10 is below (have to scroll down. For our application we need it the opposite way:Start with number 0, but the numer 10 is above. So the user needs to scroll up, to get to number 1-10.Is this possible with just setting a mark somewhere?If not, it sure isn't to difficult to programm, but it would be way easier that way, because the getSelectedItem() would have the same number as the shown number this way and no calculation is needed.Thanks for your answer.
I am experimenting with a newly purchased STM32F469I-DISCO AU.I immediately had issues in downloading to the external flash. Is not a configuration issue, in fact the error is random: 5% of the times I manage to correctly flash it, most of the times I get errors like "Error: Unable to get core ID".No issues with the internal memory, but as soon as I allocated anything that requires to write more than one block of flash, the downloading problem happens. I confirm the flash gets written, since when it fails at 50% or so, I see the loaded picture shown half on the LCD.Attached an example of a project I managed only twice to correcly flash, and only from the TouchGFX suite, not from the CubeIDE. Also, in both TouchGFX and CubeIDE, the error is the same, just the percentage changes:make -f ../gcc/Makefile -j10 flash Reading TouchGFX/application.config Reading TouchGFX/target.config Linking TouchGFX/build/bin/target.elf Producing additional output formats... target.hex - Combined i
Hello,I am trying to develop an application on a STM32F469 using touch GFX and a frame buffer in internal RAM. The Pixel format I use is ARGB2222.The frame buffer is being written by touch GFX in a good way: in debug mode I can see that the values in the buffer changes accordingly to the application I developed, however the LTDC seems not to be working (at least the screen is black).In a project without OS and Touch GFX I am able to use the LTDC to print an image to my screen from the RAM memory so I guess that the parameters I use for the screen and the LTDC are correct.I do not use the DMA2D as I does not support my pixel format, but I tried with it and RGB565 and it did not change anything to my problem.I followed this article to set the LTDC and buffer in internal RAM : https://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internal And then I passed the address of my frame buffer to touch GFX.I followed this to configure the LTDC concurrently with TouchGFX
I would like to implement a screen timeout feature on our design. At timeout the screen would go back to the main screen and then dim the back light. We have everything in place appart from a common trigger that can be used to reset the timmer.I didn't want to have to manually add a function call to every touch target, so hoping there is a common place to pick this up from.I would also like to be able to just wake the screen on the first touch and not pass that touch to any of the targets. However, i may just do this by implementing a black touch box that covers all of the targets.Thanks for any help or pointers anyone can share.
I am new to TouchGFX, I ran into a problem that using TouchGFX 4.21.1 on STM32H743Eval 2 , I add a global variable (e.g. counter) within "USER CODE BEGIN 0", , in StartDefaultTask, add counter++ in the main.c file, follow MVP design procedure, just want to dispaly counter value in TextTArea widget, CubeIDE code compiling is ok, but when click "run simulator", it appers "C:\TouchGFXProjects\STM32H743\TouchGFX/gui/src/model/Model.cpp:13: undefined reference to `counter'I am also using 4.18.0 of touchgfx, both have same symptom, is there any setting I missed, please help, thanks in advance.
Hi All,I'm trying to convert deividAlfa's LCD library to use on a L412 micro but I'm having an issue that I don't understand.He has a routine in the LCD.C file:static void setSPI_Size(int8_t size){ if(config.spi_sz!=size){ __HAL_SPI_DISABLE(&LCD_HANDLE); config.spi_sz=size; if(size==mode_16bit){ LCD_HANDLE.Init.DataSize = SPI_DATASIZE_16BIT; LCD_HANDLE.Instance->CR1 |= SPI_CR1_DFF; } else{ LCD_HANDLE.Init.DataSize = SPI_DATASIZE_8BIT; LCD_HANDLE.Instance->CR1 &= ~(SPI_CR1_DFF); } } }The problem is there is no SPI_CR1_DFF register in the L412 code. I want to use 8 bits for the SPI bus.Is there a way around this issue?Thanks,Richard
Hello,I am using the TouchGFX application to display data gathered from CANbus communication, which I have verified is working. One feature I wanted to have is the following logic for fault error codes:If a fault is present, display the error code in hexadecimal (with a user manual to outline the meaning of said error codes) in red.If no fault is present, then I want NO text to be present. I do not want to show "0x00000000". I just want no text to be there at all.I've attached a snippet of my code that writes the value into the wildcard currently. This solution does not work. void Screen1View::UpdateFaults(uint64_t value){ if(value != 0x00000000){ Unicode::snprintf(textFaultSigBuffer, TEXTFAULTSIG_SIZE, "%x", value); } else{ Unicode::snprintf(textFaultSigBuffer,TEXTFAULTSIG_SIZE, "%x","" ); } // Invalidate text area, which will result in it being redrawn in next tick. textFaultSig.invalidate(); }Instead of displaying a blank space, it shows 8031650 (like in the picture). Doe
I have an STM32F469NI-DISCO (AU1) board, and I need to put a big array (representing a GIF) in the external flash. I created a code attribute at first, and stored this array under the attribute in the external flash, but it won't work: the linker makes the new memory location appear in the compilation summary in the STM32Cube IDE project.So I tried with the linker generated from another project that was using TouchGFX, and I put my array in the external flash, but again, nothing.Attached the project file. The array is called "animatedLogo", and is located in the zlogo1.c file. I also redeclared all the macros used in TouchGFX (although I am not using touchGFX here).I am also aware that the memory configuration in the Init() is not complete, but here the issue is a the compile time. But one step at a time...
I have a STM32H745I-Disco board which is still not supported. If I use an STM32H750B-DK example from TouchGFX (same board except mcu) I can download it from the designer and run it on the board. When I move the code to CubeIDE I can compile and download the code from CubeIDE. After reset with the Ex_Mem_Boot programmed in flash I can reach main. Stepping through the code it seems to crash at ret = HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4); when it enables the sys clock.Martin any idea? How long away are we to have the heavily advertised STM32 tool set supporting all mcu's? :)
Hello,I bought NUCLEO F401RE + X-NUCLEO-GFX01M2 and am learning TOUCHGFX. In TouchGFX4.21.0 design, there is no reference design for this configuration.Are there any sample projects for NUCLEO F401RE + X-NUCLEO-GFX01M2?If no, how to generate code with STM32CubeMX to support TouchGFX (NUCLEO F401RE + X-NUCLEO-GFX01M2)?In TouchGFX designer, how to create a project without a reference design, for example NUCLEO F401RE + X-NUCLEO-GFX01M2?Best regards,Jiannong
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.