Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,We have a design based on the STM32L4VGT6 which is connected to a LCD of resolution 240 x 320 in RGB mode (using vsync,hsync,DE and lcdclk) . We are not using any using any external memory and so the frame buffer is to be located in internal SRAM using 565 bitmap format. We intend to use a GUI, is this approach do-able? Are any examples available?Thanks MikeZ
Hi there, i'm really new to touchgfx and stm32 ecosystem and working on a project with multiple screens, were all has to be controlled with hardware buttons, the polling function for the buttons it's already implemented in a separate task and working (i can change screen back and forth using touchgfx interaction), but i'm really stuck on how to use the buttons to scroll and then select items on the container (container already implemented and showing the correct elements and it works using touchscreen on a 32F746G DISCO board). Any suggestion? Just as a notice i'm really ok in C programming but still learning C++Thank you very much, Best Regards.
Hello,I have 2 boards connected via UART (baud rate of 115200). The first board is a custom board with an STM32F479 chip using the Standard Peripheral Drivers and mostly custom firmware(for sake of coherence I'm going to call this the master board). This board packages and sends data over UART to my second board. Shown below is how I package and send data from this board:void dummy_tlm() { srand(300); uint8_t data[480]; uint8_t data_with_opcode[483] = {1,2,3}; while(1) { // Generate dummy telemetry for(int i = 0; i < 5; i++) { // These are just arrays of doubles and ints defined elsewhere, filling with random data position[i] = (double)rand()/(double)(RAND_MAX/360); velocity[i] = (double)rand()/(double)(RAND_MAX/80); current[i] = (double)rand()/(double)(RAND_MAX/10); temp_a[i] = (double)rand()/(double)(RAND_MAX/100); temp_b[i] = (double)rand()/(double)(RAND_MAX/100); status[i] = (int8_t)(rand() % 2); limits[i] = (int8_t)(rand() % 2); } package_tlm(&data); // Thi
So if we choose dynamic graph widget, and activated 'X-AXIS LABELS', it only label up to last grid -1 instead of till last grid.I want the user to immediately know the nominal value of max X axis from graph instead of deducing from the last one labelled + scale. Anyway to do this?
So assume we are at main screen, then triggered by an event we display an overlay which could be a user prompt. To close the prompt, we want to click anything outside this prompt area. Can we do this in TouchGFX?Please note, the main screen could consist of multiple 'click listener' areas instead of one big chunk 'click' listener area. Obviously I can solve this by handing this in each of the click listener area, but this would be ugly. I am looking for a more elegant way.
I'm first working with GUIs and have some experience on bare-metal firmware programming for STM32 on SW4STM32. I'm studying both ways for GUI (TouchGFX and STemWin), but I can't understand all the pros and cons. Should I use TouchGFX for new projects? It seems to be the future for STM32 graphics. The emWin GUIBilder is verystuck when running from STM32CubeMX 5. My project is a treadmill touch display controller and I need to integrate graphics UI with embedded controller firmware. Thanks a lot for the support! :)
I have tried with Noto Sans, ipaexg, NotoSerifCJKjp-Medium. But still I am getting fallback character. I am using STM32H750VB. Can you please help how to fix this issue.
Hai everyone ....,I am new to touchGFX, I have a STM32F746IGT based waveshare development board and 7 Inch display (800X480 Pixels) SDRAM with 16bit data bus from Micron,QSPI flash.I firstly try to configure LTDC to display a image on LCD from flash i got success so means i am able to configure LTDC ok. Then iniatlize SDARM i just give LTDC frame start address as 0xD0000000. Configure TouchGFX and generated code. But it not workout. please let me know how to debug where is my mistake?My doubt in SDRAM .how to check SDRAM initialize working or not , How change image data flash to SDRAM? Image data from flash just is i use: pLayerCfg.FBStartAdress = (uint32_t)& image_data_Hello_World; Thanks & Regards M.Govind
I am following AN4861, and reading 4.5.2.I have a 800x480 display, so I need the closest 64 byte multiple. 8321) In CubeMX, DMA2D-Basic Parameters- DMA2D Output Offset. (832-800) = 322) In CubeMX, Additional Software-TouchGFX Width(LTDC) = 8323) in main.c at end of MX_LTDC_INIT() add: HAL_LTDC_SetPitch(&hltdc, 832, 0);Device config compile.Touchgfx Generate code.Project build.With these changes it appears to work.The Touchgfx editor now displays the 832 pixel screen.Is this the correct configuration for implementing Optimized burst read accesses?ThanksMartin
..
I am trying to get the Camera module (MB1379) running on the STM3220G-EVAL. The MB1379 has the OV5640 image sensor whereas the on-board camera on the STM3220G-EVAL has the OV2640. I am currently running the Camera_To_USBDisk project in the STM32Cube_FW_F2_V1.9.0 software. Do I need to up-date the camera driver to the OV5640? If so please can you let me know the steps?
Hi, For the application I am building in TouchGFX, the image and text quality is very good and crisp in developed screen. However, the quality/resolution is not retained in simulation. Below are the before and after pictures. In this picture, both the "Welcome" text and the button label "Continue" are very crisp. This is from development screen in TouchGFX.Picture below is from simulation window. As can be seen, both the texts are not as crisp as above picture. This loss of quality is observed with images too (compare the blue button image itself).Please advice what settings I might be missing.
Hi.board : stm32L4R9-EVALLCD : MB1315ATouchGFX version : 4.16.1STM32CubeMX : 6.2.1I try to get index of scrollList selected.before add callback function, debugging is work.However If I add callback function, Debugging is Strange.(Some function is removed. I don't want to show.)In View. hppclass SearchScreenView : public SearchScreenViewBase { public: SearchScreenView(); virtual ~SearchScreenView() {} virtual void setupScreen(); virtual void tearDownScreen(); protected: Callback<SearchScreenView, int16_t> scrollListItemSelectedCallback; void scrollListItemSelectedHandler(int16_t itemSelected); };in view.cppSearchScreenView::SearchScreenView() : scrollListItemSelectedCallback(this, &SearchScreenView::scrollListItemSelectedHandler) { } void SearchScreenView::setupScreen() { SearchScreenViewBase::setupScreen(); ScrollList.setItemSelectedCallback(scrollListItemSelectedCallback); } void SearchScreenView::tearDownScreen() {
Hi,I'm just starting with TouchGFX but quite familiar with STMCubeIDE and various chips.Issue 1 - I have a STM32F769I-DISCO board and I'm unable to download any code onto the board. I get the below errorCompiling Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c Compiling Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x60EA0000, RegionSize 0x4B0000, State 0x10000 C:\TouchGFX\4.16.1\env\MinGW\msys\1.0\bin\mkdir.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0 Compiling Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_qspi.c gcc/Makefile:346: recipe for target 'TouchGFX/build/STM32F769-DISCO/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.o' failed make[2]: *** [TouchGFX/build/STM32F769-DISCO/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [generate_assets] Error 2 gcc/Mak
I am creating a test_lcd project and I want to use the bsp lcd functions/whatever functions. How do i do that?
Hello,if I try to run the simulator from inside TouchGFX 4.16.1, I get the following error.cannot find -ltouchgfx.How can I fix this?Thanks in advance!
Situation: STM32F469 Discovery board with DSI 800x480 Screen, broken native BSP drivers (Display-related part of the driver). I tried to create a project in STM32CubeIDE, set all the settings, initialized as default for the discovery. Added BSP files. Doesn't work. Spent 2 months editing BSP drivers, but only got it to half-working state with 9000 glitches and wrong things happening.Solution I found this morning: if I create the project FIRST in Touch GFX Designer, I can choose example program for my discovery board. Then I press "Run Target", and it uploads a whole working GUI program to the discovery board without me ever seeing a single line of code. It even generates all the main files, sets up FreeRTOS, generates CubeMX file with the CORRECT settings (which are different from default discovery board's settings if I make new STM32F469-disco project, no wonder it doesn't work). It generates MX automatic parts and fills in all "user customizable" sections of files too, makes all BSP
Hi everybody,Has someone an empty project for stm32H7 (or similar) and Touchgfx and SPI display?Where I can found a simple project to start experimentation?Thanks in advanceBest regards
Hi everyone,I can print nice pictures & transitions on the display of my custom board.But when I'm rasing the brightness of the display (by setting the PWM backlight value), at a certain value the screen starts to flicker. Controls are shaking and if I continue to raise the brightness it flickers more.Below that critical value it's working well, as you can see on the pictures joined. I'm using a LCD TFT (parallel interface) with external SDRAM & TouchGFX.What could cause this ?Thanks
The LCD hangs when it prints negative numbers lesser than -999, or more specifically, the whole program hangs. Does anyone know the reason for this? I have attached my code below.(The code is too long to be pasted here, I attached the file.)
I'm having trouble running stm32f746igt processor with quadsb w25q128 external memory using touchgfx Note when using touchgfx using internal memory, it works fineAlso included in the function is osKernelStart(); And it does not come out of itPicture showing the problem
Hello!Look at the codevoid CONTROL_SCREENView::setupScreen() { CONTROL_SCREENViewBase::setupScreen(); MovingSpeed_ScrollWheel.setAnimateToCallback(MovingSpeed_ScrollWheelAnimateToCallback); MovingStep_ScrollWheel.setAnimateToCallback(MovingStep_ScrollWheelAnimateToCallback); MovingStep_ScrollWheel.animateToItem(SETTINGS_IN_RAM.CONTROL_MOVE_DISTANCE); MovingSpeed_ScrollWheel.animateToItem(SETTINGS_IN_RAM.CONTROL_MOVE_SPEED); }I enter to screen, and I can see how scrollwheel scrolls to position.I want at first - scrolling to initial position, and than - screen show.How to do it?
Hello,Have been looking for Mutli-touch support in TouchGFX, needed for custom gesture detection. But as it stated in documentation, current version dosen't have support for the same.May I know if it will be added to future releases? If yes, the when can we expect release with this feature?ThanksKrishna
Hello,I am currently trying to play a video using the JPEG decoder on a STM32F76xx chip.Right now, I can play a video with HAL_JPEG_Decode in polling mode, but the it takes too long (~100ms) and the FPS is low.My objective, is to use HAL_JPEG_Decode_DMA to display an image.I copied the code from example project JPEG_DecodingUsingFs_DMA into my own projet, but the program freeze on this line :JPEG_ENABLE_DMA(hjpeg, JPEG_DMA_IDMA | JPEG_DMA_ODMA);called from HAL_JPEG_Decode_DMA -> JPEG_DMA_StartProcess (in stm32f7xx_hal_jpeg.c)This macro sets the IDMAEN and ODMAEN bits of the JPEG control register.I tried to dig a little bit, and I found the freeze happens specifically when I try to set the IDMAEN bit.hjpeg->Instance->CR |= JPEG_CR_ODMAEN; // works hjpeg->Instance->CR |= JPEG_CR_IDMAEN; // freezeAny ideas on why is it blocking ? Its very strange.(I do define the JPEG_Msp_Init, and interrupts JPEG_IRQHandler, DMA2_Stream3_IRQHandler, DMA2_Stream4_IRQHandler like expected.)
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.