Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I'm developing a HAL-based software running on STM32F778AI MCU. The software uses the hardware JPEG decoder in DMA mode.It decodes 'classical' JPEG images that have 8-bit DQTs without an issue.But if a JPEG's the precision of the quantization table is set to 1 and its luminance table defined with 16-bit values, then the JPEG decoder fails. Is there a nice way to make F7's JPEG decoder work on JPEGs with 16-bit DQTs?
The board powers up, the display comes on. The LED by the STLink connection is a solid red. STM32CubeProgrammer (v2.5.0) will not recognize the sTLink. The computer is recognizing the connection as an STLInk-V3. I really do not know how to proceed from here. Thanks.
Hi @Martin KJELDSEN I've got a problem that i want to redraw the frame buffer before the screen lights up.so I clean the frame buffer after close screen (memset(framebuffer,0,sizeof(framebuffer))).When the screen is bright I notice that only part of the frame buffer has been drawn.Everything that isn't drawn is black.What interface can GFX be notified to draw a full frame buffer?And which sign indicates that the drawing is done? Please help me to solve this problem.Thank you very much!! Best RegardsJack
Hello I am using graph on STM32H747I-DISCO. Running simulation is ok, like having the sine wave on it but when I click "Run Target" I get this error...Run Target Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Converting images Reading ./application.config Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj && touchgfx update_project --project-file=../EWARM/TouchGFX.ewp Done Compile make -f ../gcc/Makefile -j8 STM32CubeProgrammer is placed in Program Files STM32CubeProgrammer is placed in Program Files Converting images Reading TouchGFX/application.config STM32CubeProgrammer is placed in Program Files Linking TouchGFX/build/bin/target.elf Producing additional output formats... target.hex - Combined internal+external hex intflash.elf - Internal flash, elf debug intflash.hex - Internal flash, hex extflash.bin - External flash, binary Done Flash make -f ../gcc/Makefile -j8 flash STM32CubePr
Dear TouchGFX team,I am developing STM32H7B3 including:-Display 5" (480x800) 16bit color-OctoSPI Flashetc..I need ram for two frame buffer, the internal ram is to small for my GUI application, (memory needs for one frame buffer is 480x800x2 =768KB).I'm thinking to use an externat Octo spi ram memory to store two framebuffer.I need simple UI complexity: static, few/simple animations. I'd like to use the oct spi ram to reduce the pcb complexity/cost.The speed and memory latency seems fine.Up to 110MHz in DTR available in STM32H7B3Memory latency around 10 CLK.I'd like to know a your opinion/advice.What do you suggest ?Thankyou Best RegardsStefano
I bought a STM32F469-DISCO to start my adventure with STM's MCU.Included demo is great.Now I'm trying to upload some other example from CubeIDE and TouchGFX.I've updated st-link, and go.. (I'm working on a windows 10 system)From CumeIDE some examples for my Discovery board work fine. For example from CubeIDE -> new Project -> Example Selector -> StM32F469I-DISCO -> BSP and HID_RTOS are running fine.From TouchGFX no example work on my board: Run Simulator go fine, Run Target get my board into black screen.The strangest thing is that if I try to reload the original demo it don't work:even if I flash the original HEX from https://www.touchgfx.com/resources/demos/even if I run from CubeIDE -> new Project -> Example Selector -> STM32F469I-DISCO -> TouchGFXThe effect is like in the video attached: seem like something is going wrong on my device.I suppose that the board is ok: It worked with original firmware, and it work with others examples from IDE.But: - how t
Dear friends.I am starting a new hardware designer for a project with the STM32H753 MCU.The project is a picture grabber and video recorder by infrared trigger. A display will be used to show the images/video using TouchGFX framework and the pictures/movies will be written in a SD card. The device is portable, powered by a lipo battery.The camera has PIXEL_CLOCK = 74.25MHz and the desired output is 1920 x 1080p / 30 fps. The output image is YCbCr 422 format.My doubt is about the kind of memory to project a reliable framebuffer for this application. I need a dual framebuffer. Each one with 4MB. Considering 30 fps to recorder a video I will need a memory with a bandwidth of 120MB/s.So, my memory should be at least 64Mbits of space and 120MB/s of throughput.Unfortunately, the STM32H753 have no OCTA-SPI to interface HyperBus memories. And by FMC we have several options, like PSRAM, SDRAM, SRAM …Therefore, I have 2 issues:- Could some one
I have purchased "STM32H745I-DISCO" kit.I would like to works with "TOUCHGFX" with "STM32H745I-DISCO" kit.I select the "STM32H745I-DISCO" kit in "Board Selector" in "STM32CubeMx" software.I have not found "GRAPHICS" option in "Middleware" TAB in "Pinout & Configration".Can you please provide the some clarity on it.How can i deal with "STM32H745I-DISCO" along with "TOUCHGFX".Can you please provide me the steps that how to enable "GRAPHICS" option.Please, do needful for me.
Here: https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/dynamic-bitmaps I can see how to set RGB 565 colours into a dynamic bitmap. I'm wondering how to achieve alpha blending in a dynamic bitmap?
I have text buffer which size has size more than width of text are widget so I wann add animation to move text from right to left in loop so all data of text buffer is able to get display. I tried using scrollableContainer but didn't find correct way to do it. Suppose max character can be 5 in one time at text area and data is "xyz 123456789 abcdefghijklmnopqrstuvqt". I want something like below.| x|| xy|| xyz|| xyz ||xyz 1||yz 12||z 123|and so OnAny suggestions,
Application/User/TouchGFX/target/TouchGFXHAL.o: In function `touchgfx::HAL::~HAL()':C:/workspace/test/test/CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/HAL.hpp:101: undefined reference to `vtable for touchgfx::HAL'Application/User/TouchGFX/target/TouchGFXHAL.o: In function `touchgfx::HAL::lcd()':C:/workspace/test/test/CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/HAL.hpp:235: undefined reference to `touchgfx::HAL::instance'Application/User/TouchGFX/target/TouchGFXHAL.o: In function `touchgfx::HAL::backPorchExited()':C:/workspace/test/test/CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/HAL.hpp:547: undefined reference to `touchgfx::HAL::swapFrameBuffers()'Application/User/TouchGFX/target/TouchGFXHAL.o: In function `touchgfx::HAL::setFrameBufferStartAddress(void*, unsigned short, bool, bool)':C:/workspace/test/test/CM7/Middlewares/ST/touchgfx/framework/include/touchgfx/hal/HAL.hpp:652: undefined reference to `touchgfx::HAL::FRAME_BUFFER_HEIGHT'Appli
..
Hi, I'm looking to add a TFT LCD to a project and I've been looking at iltek controlled displays as a solution specifically the ili9488. Displays that integrate various driver ICs such as ili9486, ili9341, ili9488 are very popular on the arduino platform because it only requires simple SPI control by the master microcontroller. Looking at various examples using these types of displays on the stm32 platform LTDC is always used. My question is why use LTDC when the TFT screen already has a full integrated controller? What are the benefits to using LTDC to help drive the screen? Why not use simple SPI control like an Arduino? I'm sure the benefits are there but reading AN4861 it's not clear what the benefits are if an IC driver is already embedded into the display. Any help in clearing up this confusion would be great.
Now i fight with my third DSI LCD and have trouble with set parameters.CubeMX say , that adopt from LTDC , but on changes nothing is recalculated.Please simply write me formulas for calculate this :VidCfg.Mode = DSI_VID_MODE_BURST; VidCfg.PacketSize = 480; VidCfg.NumberOfChunks = 0; VidCfg.NullPacketSize = 0; //this values i need calculate VidCfg.HorizontalSyncActive = 9; VidCfg.HorizontalBackPorch = 87; VidCfg.HorizontalLine = 1569; i know calculate from DSI datasheet , but this dont work everytime.
When the shape widget is set to a new angle, it can not completely remove the disability from the previous angle. Is there a Bug or is there another way to solve this problem? Thank you!
I have big text which I need to scroll left to right in loop with touch gfx. When I read more on it and found about scrollableContainer but kinda unsure how to combine it with my text object widget.I added below code scrollableTripAdviceParameterText_II.setPosition(509, 353, 282, 57); scrollableTripAdviceParameterText_II.enableHorizontalScroll(true); scrollableTripAdviceParameterText_II.setScrollbarsColor(touchgfx::Color::getColorFrom24BitRGB(240, 235, 235));// below code is added by me scrollableTripAdviceParameterText_II.add(tripAdviceParameterText_II);scrollableTripAdviceParameterText_II is Scrollable Container widget and tripAdviceParameterText_II is text widget Is there any other way to add Scrollable Container for my application? I read few blogs on it but unable to figure it out.Thanks
I follow the instructions in this STM32 Graphics Workshop series and I am able to use STM32CubeIDE to compile the code and run on the target al the ways up to session 11" STM32 Graphics Workshop - 11 TouchGFX lab LED and buttons "https://www.youtube.com/watch?v=AaL2xFCgLxY&t=129sHowever, when I Run Target from the TouchGFX Designer tool, I get these errors. Note that the methods are implemented and the project works under STM32CubeIDE.You can find the project and its code here: https://community.st.com/s/feed/0D53W00000OU4kjSAD--------- ------ TouchGFX/generated/gui_generated/src/screen2_screen/Screen2ViewBase.cpp:95:20: error: 'class Screen2Presenter' has no member named 'swButtonHwLedToggle' presenter->swButtonHwLedToggle(); ^~~~~~~~~~~~~~~~~~~ TouchGFX/generated/gui_generated/src/screen2_screen/Sc
Hello everyone. I just met Touch Gfx and I am a student.I want to display a list I saved in the first sector of qspi flash in the scrollistbut I could not reach a kind of resultI kept the first 2mb of the flash to myself/* Memories definition */ MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K QSPI (r) : ORIGIN = 0x90200000, LENGTH = 14M }// ***** readTable.h **** class readTable { public: void kategorisayisi (); // reading and extracting data from flash char * RitimIsmiGonder(int no); //for ScrollRitimUpdateItem call private: char * ritimListesi[121]; // The array I want to send to the scrollist widget } }; I do reading, extracting and sending in a class called readTable.// readTable.cpp uint16_t sizem = 1000; volatile char *externalFlash =( char * ) 0x90000000; char data[1000]; char delim[] = "\r\n"; void readTable::kategorisayisi() {
Hi everyoneI am working on a project with STM32H750 chip. I use internal flash for run application. I want to use vga display. So for this, I disabled touch controller and configured LTDC for vga. I fixid the erros and load tha aplication in chip. When I try to run application, code goes to "hal.taskEntry()" but never go to "setupScreen()" funtion. I debug code until "OSWrappers::waitForVSync()" function. When in this function never returned back. Then code gone "vApplicationIdleHook" continuously.I created project with TouchGFX designer with by choosing STM32H750 Disco board. Then I configured project with CubeMX. I use TouchGFX 4.15 software. I completely stuck in here. Thanks for your opinion in advance.Edit; I want to explain last status of problem. I writed this in a reply on below but I thought it better be here too;As a new strategy, I created a project with CubeMX and add TouchGFX later. My problem with freeRTOS is solved when do this.Now LTDC became th
HiI made a timer. I send seconds and minutes to Model and to main.c.I want seconds and minutes to be visible in main.c.Now they are only visible after changing the screen.What I have to do?best regardsAndrzej
Look at breakpoint - this function halts (program go to HardFault)You can see callstack.How to find course of problem?
I have a screen with some pictures, buttons and a custom keyboard widget. I want to show a modal window on this window. But when I do "view" on my modal window, it only covers the things defined in gfxdesigner not the custom keyboard widget. How can I include custom keyboard to so that it becomes part of the "main window" or is there perhaps an better / other way?
I made touchgfx GUI with STM32F412VGT6, my LCD is 240*240. The inferface is 8080 8bit (also tried 16bit mode). I use widget , container in my UI but when I change page in swipe container, there is tearing issue in my screen. And the tearing position is not in a fixed position. I capture the waveform and the data frame is not synchronous with the TE signal from the LCD. How to solve these issue in the MCU? It confused me long time. Our project is pending on this tearing issure.
Hello,I am developing on STM32L4R9I-Disco, and I want to display ARGB8888 images on the round DSI display under the command of UART. For example, I send hex 'b2' to this board by uart, one image is displayed. I have succeeded some parts, but the image is not well displayed (the attached picture).Anyone knows what's the problem? Thank you. Here are some parts of the program:#define VSYNC 1 #define VBP 1 #define VFP 1 #define VACT 390 #define HSYNC 1 #define HBP 1 #define HFP 1 #define HACT 390 #define LAYER_ADDRESS GFXMMU_VIRTUAL_BUFFER0_BASE static void CopyInVirtualBuffer_single(uint32_t *pSrc, uint32_t *pDst, uint16_t xsize, uint16_t ysize);UART part:uint8_t Rx_data[10]; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { HAL_UART_Receive_IT(&huart2, Rx_data, 1); if (Rx_data[0] == 0xb2) { CopyInVirtualBuffer_single((uint32_t*) image_img_01_ARGB, (uint32_t*) LAYER_ADDRESS, 390, 390); pending_buffer = 1; HAL_DSI_Refresh
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.