Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
void SmallFlag_Container::SetLanguage(Bitmap icon, TEXTS lang) { FlagImage.setBitmap(icon); LangText.setTypedText(TypedText(lang)); // LangText.resizeToCurrentTextWithAlignment(); LangText.invalidate(); }In TouchGFX all is right but in real life text is always aligned at left....How to fix?
we've just purchased a couple of X-NUCLEO-GFX01M1 kits and want to test them with different nucleo boards.The X-NUCLEO board should be compatible with the following: NUCLEO-F030R8, NUCLEO-F070RB, NUCLEO-F072RB, NUCLEO-F091RC, NUCLEO-F401RE, NUCLEO-F410RB, NUCLEO-F411RE, NUCLEO-F446RE, NUCLEO-G071RB, NUCLEO-L053R8, NUCLEO-L073RZ, NUCLEO-L412RB-P, NUCLEO-L433RC-P, NUCLEO-L452RE, NUCLEO-L452RE-P and NUCLEO-L476RG.what is the best (and quickest) way to evaluate/test the display with L4 and F4 boards? From TouchGFX Designer there is only one choice of template available working with the STM32G0 MCUs-DS
I already tried to uninstall and reinstall but without success. The log file says the following error:2021-01-03 19:11:01,782 [12] ERROR TouchGFXDomainModel.LoadSave.LoadSave: Der Wert darf nicht NULL sein.Parametername: sourceSystem.ArgumentNullException: Der Wert darf nicht NULL sein.Parametername: source bei System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector) bei TouchGFXDomainModel.LoadSave.Serial.FromSerial.Convert(List`1 colorDepths) bei TouchGFXDomainModel.LoadSave.Serial.FromSerial.Convert(SerialApplication a) bei TouchGFXDomainModel.LoadSave.Serial.FromSerial.Convert(SerialModel m) bei TouchGFXDomainModel.LoadSave.LoadSave.LoadDotTouchgfx(String filename) bei TouchGFXDomainModel.LoadSave.LoadSave.Load(String filename)I would be happy if someone can help me.Happy new year to everyone.Best regardsBernhard
Normally I can display all projects of touchgfx (which can be stored in internal memory) on my touchscreen without any problem. For a larger project I needed to use a SD card. For this purpose, I compiled all the images into a .bin file and then saved it to SD card. I try to use blockcopy function as shown below but all I get is just a black screen. To sum up, I dont know how to call the images. it will be appreciated if someone correct the mistakes or shift me to the the correct way.bool TouchGFXHAL::blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes) { uint32_t dataOffset = (uint32_t)src; if (dataOffset >= 0x9A000000 && dataOffset < 0xA0000000) { int fd; if(f_mount(&myFatFs,SDPath,1) == FR_OK) { if (f_open(&myFile,"images.bin",FA_OPEN_EXISTING | FA_READ) == FR_OK) { fd = open("images.bin", O_RDONLY, 0); dataOffset = dataOffset - 0x9A000000; lseek(fd, dataOffset, SEEK_SET); read(fd, (uint8_t *)dest,
Cube_IDE_1.4 and TouchGFX 4.16.Use the stm32f469i_Discovery Board to put the picture in the TouchGFX and upload it, and only the black screen appears.https://www.youtube.com/watch?v=12KXreXaLp0 that I have informed you hereI've seen and followed, but the result is the same.It is not easy to obtain data on stm32f469.Who can give me some advice?Please tell me how to upload a picture using TouchGFX on stm32f469.
Hi Everyone,If you haven't noticed by now, X-CUBE-TOUCHGFX 4.15.0 is out, available from CubeMX 6.0+ and from st.com as a zip (Also installable through CubeMX).Main features:Designer: Built in support for Graph widget!Generator: Option to use Flash Reader (limited to 16-bit apps atm) to make direct use of a non-memory mapped flash with the LCD classes and avoid having to cache images.Improved performance of Partial Framebuffer Strategy for low-cost solutions (e.g. G0)Here's the documentation for 4.15.0: https://support.touchgfx.com//Martin
I have an image (white with alpha). My configuration is as follows:Opaque Img Format: L8_RGB888Non Opaque Img Format: L8_ARGB8888When generating code follwing error message appears:ERROR: Error: L8_ARGB8888 image assets/images/logo.png has too many colors for palette. Consider using ARGB8888.Why does this error message disappear when I change the settings for the Opaque image format to RGB565?The said image (image_logo.cpp) is generated without issues.KEEP extern const unsigned char image_logo[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 223x44 L8_ARGB8888 pixels.Is this some sort of a bug or do I have some misunderstandings?Thanks for your help.
Hi! I have been trying to make things work for a couple of days. I'm using an Alientek Explorer developer board (STM32F407) and it the documentation is nonexistent. Everything is in chinese characters and it's been so hard to learn from examples when everything is unintelligible. Lucky me the new STM32CubeIDE is a breeze to use! It's so good the way everything is well connected!I have this display: https://www.buydisplay.com/7-tft-screen-touch-lcd-display-module-w-ssd1963-controller-board-mcuI'm not using DMA transfer yet. Trying to make the simpler way first and improve later.I have been following the doc for "FMC and SPI Display Interface" and STM32F412G-DISCO example.Someone could please help me to identify why my image is being drawn liek this? I suspect my buffer is the problem.Designer:Display:Designer:Display:May the cause of this be here?void TouchGFXHAL::copyFrameBufferBlockToLCD(const Rect rect) { __IO uint16_t* ptr; int16_t height; // Use default implementation (CP
Hi. I am trying to make a tester for a PCB and implemented ADC value display and Timer PWM output with no issues thanks to examples and youtube videos.Application has 2 screens, 1 with ADC measurements and 1 with Frequency Check. When trying to update textAreaWithOneWildcard on the 1st screen there are no issues, but doing same on 2nd screen causes system to fall into Memory Management Interrupt Handler (both screens use the similar logic, names of variables and methods are different).The debugger can not provide any Error details as the issue seems to be in the Drawable class.The definition of all textAreasWithOneWildcard is similar (position, buffer lengths are different obviously).// 1st screen display update function - works with no issues void MeasurementScreenView::analogUpdate(uint32_t value0, uint32_t value1, uint32_t value2, uint32_t value3) { memset(&measurementValue_5VBuffer, 0, MEASUREMENTVALUE_5V_SIZE); Unicode::snprintfFloat(measurementValue_5VBuffer, sizeof(measure
Hello,We are working with a custom board using the STM32H753II that connects to a 480x320 ILI9486 LCD via the FMC (8080 interface). The display and its custom-written driver work fine when writing pixel data using the CPU. To improve performance, we want to use the DMA2D available in the MCU for most rendering tasks.The first thing I tried was using the DMA2D in Mem-to-Mem with Blending and fixed color BG mode (MODE 101) with the FG color format set to A4 for anti-aliased font rendering (size 12x16). OMAR was set to the same address used when writing manually. I expected this to work just fine. However, the displayed characters are extremely distorted and not recognizable unless you know what they should be.To further debug this issue, I created some test characters. One consists of a gradient from 0x0 to 0xB from left to right. The other consists of a 2px wide vertical line in the center.All characters were drawn in the order they are shown and right after one another using interrupts
Box ContainerButton
Hello,I implemented the demo animation described in the CircleProgress example.Everything works correctly with the simulator.On the target, a crash occurs after calling the circleProgress.setValue (nextValue).The crash occurs even if the initial value of the circle is different from 0 and in this case I don't see anything on the display. How to solve?Best Regards/Antonello
Hi all,We use TextureMapper bilinear interpolation to rotate the image, but in RGB565 mode, dirty spots will appear on the border of the image.This problem will appear in version 4.15, but not in 4.12.3.Any suggestion to avoid the issue?
Hello!I have a widged image. With loaded picture.I want to get color of pixel with coordinates x,y.How?
I upgrade IDE and now TochGFX examples run target report error file not found.
Hi,I am trying out the following tutorial: https://support.touchgfx.com/docs/tutorials/tutorial-01, which is very basic.In the "Running an Example on an STM32 Evaluation Kit" section, when pressing run target, everything compiles, the MCU is loaded, but the external memory is not programmed.(I still get the Done message...)Looking at the extflash.bin size, it is over 2GB!I did not modify the example in any way.Looking at the Images and Texts, there is nothing extra and it shouldn't use much more than a few MB.Did anybody successfully run this example?Setup:TouchGFX Designer 4.15.0STM32F746G-DiscoThanks,Franck.
HelloI am using ST7735 TFT display with STM32l4.All the spi configuration is correct. I am able to get all fonts, shapes.But failed to display BMP image. I used BIN2c.exe to convert stlogo.bmp to convert into C array, but image color is correpted.How to generate C array from BMP file properly. Which format should I use?i used this function to display BSP_LCD_DrawBitmap(). In this, I need to pass BMP raw value as an uint8[] array. How to properly generate this array. Which BMP format I should use?Thank youJagath
Hello,I developed a STemwin project a few years ago, with an STM32F437 and an LCD(320x240) driven in FMC with the ILI9341 controller.I am looking to migrate this card to touchGFX for a different application. But I have an issue:If the screen is static, there is no problem. In the screen below I have an animated image, but the image doesn't turns. However the code enters continously in TouchGFXHAL::flushFrameBuffer(), so far so good.Expected: I did an other screen where a circle moves but it renders bad in movement. The first image is correct.I think there is a problem with the offset when the program reenter in flushFrameBuffer(), because with rect.x and y at 0, what is displayed is correct.This is the code :void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect) { // Calling parent implementation of flushFrameBuffer(const touchgfx::Rect& rect). // // To overwrite the generated implementation, omit call to parent function // and implemented needed functionality
Hi I am using STM32H735G discovery board and did select the USB_OTG_HS as a virtual com port. Usually CubeMX is generating the necessary middleware / USB_DEVICE folder with all the functions to use (works for the Nucleo-F767ZI just fine). How and from where can I manually copy the USB drivers from?Stefan
Hello, i have some c++ classes in a separate folder called Modules (in the project root directory). I added the header and source files in the Modules folder to the Makefile in TouchGFX/simulator/gcc but will not compile successfully.The image below shows the location of the Modules directoryThe image below shows the added Modules source and header to the makefile.The image below shows the Simulator compile errorI have tried all the suggestions in this two links:https://community.st.com/s/question/0D53W0000082jPLSAY/how-to-add-additional-header-and-source-files-to-touchgfx-projecthttps://community.st.com/s/question/0D50X0000BJ22vx/how-to-manually-add-include-path-to-touchgfx-designerwindowsNone of them seem to work for me. Please can someone help me figure the right way to solve this problem?
Hello everyone,I have a STM32H747I-DISCO and I am trying to use it with TouchGFX in the first part. But the problem is I cannot use it directly with TouchGFX "Run Target" mode.I have few errors, I tried to run as admin but it didn't work. I have the external loader file specified.Could you help me please ?Thanks,Simon
I tried to modify the ViewBase file generated by the designer by adjusting the width and height of the circle progress but nothing happened and I could not resize this element at all. So Is there is any other method to have different sizes of the circle progress either before generating the code from the designer or even after generating it by modifying some other code ???
Hi folks,i use CubeMX and touchGFX generated code with custom DSI 480x1280 display.All code works ok , but sometimes display is shifted horizontaly.70% starts code on and display is pixel 0 to 479 ok.But 30% starts dispolay randomly shifted and show 60-479-0-59 and rgb is too shifted randomly to gbr or brg. 60 is too random between 30 - 150I need idea howto solve this.We use FMC SDRAM and seems as LTDC DSI sync data problem.Pls help. I attach hwinit cpp file. MCU in main is started and go to sleep HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);then wake up by button and go. Code work all ok only GUI is sometimes shifted.
Hi, I am using the cubemx (older version that still had it included) generated STemWin library on an STM32F429 and I just tried adding support for creating barcodes and QR codes to my project, but it turns out the functions do not seem to exist in STemWineven though they are in the emwin documentation, eg 5.3.1.12 Drawing barcodes . The function just above it ( 5.3.1.11.1 GUI_DrawGraph) is however present in GUI.h so i am pretty sure I am looking at the right location.What is going on ? Is STemWin only providing a subset of the emWin functionality ? Or ss there something in CubeMX I have to enable to get all functions , or maybe download the full lib from somewhere else ? If it is not supported can I get an overview of what is missing to avoid future unpleasant surprises ?RegardsBram
I'm moving my first steps on STM's CPU, and I would like to start playing with stm32f469i-disco.Where I can find an updated step-by-step guide to open a project on TouchGFX, export into a project on CubeIDE and successful play on the discovery board?Thanks.
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.