Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi All,Are there any TouchGFX examples driving multiple displays over SPI using ILI9341 controller? I am able to drive a single 320x240 display no problem but run into issues when extending to two displays.I'm guessing I am sending too much data over SPI but I am assuming that each SPI controller is independent so data sent over SPI1 should not affect data sent over SPI2?I am using the following components:ST NUCLEO-F767ZISTM32CubeIDE v1.10.0TouchGFX Designer 4.20.02.4" DisplayTech TFT (DT024CTFT) using ILI9341 ControllerThanks,Mike
Hi,MCU : STM32H743ZITouchGFX : 4.18.1After I execute HAL::initialize(), my jump doesn't work anymore, I do get in the bootloader but the USART1 bootload doesn't ACK my requests. If I jump before HAL::initialize it does work. I tried to look at the register modified during HAL::initialize but I found nothing relevant and I do not have access to the code.In TouchGFX code "TouchGFXGeneratedHAL.cpp" :void TouchGFXGeneratedHAL::initialize() { // BOOTLOAD jump working ok here HAL::initialize(); // BOOTLOAD jump fails hereMy jump code :void Bootloader_Jump(void) { uint32_t i=0; void (*SysMemBootJump)(void); volatile uint32_t BootAddr = 0x1FF09800; MODIFY_REG(RCC->D2CCIP2R, RCC_D2CCIP2R_USART16SEL, (uint32_t)(0U)); __disable_irq(); SysTick->CTRL = 0; HAL_RCC_DeInit(); for (i=0;i<5;i++) { NVIC->ICER[i]=0xFFFFFFFF; NVIC->ICPR[i]=0xFFFFFFFF; } __enable_irq(); /* Set up the jump to booloader address + 4 */ SysMemBootJump = (void (*)(void))
CubeIDE v 1.10.1TouchGFX v4.20.0CubeMX v6.6.11- created default project in GFX (for STM3H750B-DK), added a box to the screen2- generated code3- Files are ok and complete in touchGFXprojects folder4- switch to MyApplication folder and open STM32CubeIDE/.cproject5- The IDE has no touchGFX folder to write user codebelow is the file trees in both folders. Please help
Did the followingCreate a very simple TouchGFX designer 1 screen with a buttongenerated codeclosed TouchGFX designerOpen CubeIDEImported touchgfx project (ioc file)Build CubeIDE projectGet the following build errors - Why doesn't the CubeIDE project build?CubeIDE V1.10.1TouchGFX V4.20.0I have noticed in the forums that there seems to various ways of created TouchGFX and CubeIDE projects. What is the ST preferred way of getting a project with TouchGFX into the CubeIDE environment, I am under the understanding that these environment are meant to work together. Is that the point of it all or.is my thinking here stupid.11:02:35 **** Incremental Build of configuration Debug for project STM32H735G-DK ****make -j16 all arm-none-eabi-g++ "../TouchGFX/target/generated/OSWrappers.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32H735xx -c -I../Core/Inc -I../TouchGFX/App -I../TouchGFX/target/generated -I../TouchGFX/target -I../Drivers/STM32H7xx_HAL_Driver/Inc -I../Drivers
Hello,After search on net too much time, i found a software that@sebastien Dumoulin (Community Member) made.https://www.electro-info.ovh/bitmap2headerfileHe or she did really well program, but i have some problems with that.BSP_LCD_DrawBitmap function in stm32746g_discovery_lcd.c:void BSP_LCD_DrawBitmap(uint32_t Xpos, uint32_t Ypos, uint8_t *pbmp){ uint32_t index = 0, width = 0, height = 0, bit_pixel = 0; uint32_t address; uint32_t input_color_mode = 0; /* Get bitmap data address offset */ index = pbmp[10] + (pbmp[11] << 8) + (pbmp[12] << 16) + (pbmp[13] << 24); /* Read bitmap width */ width = pbmp[18] + (pbmp[19] << 8) + (pbmp[20] << 16) + (pbmp[21] << 24); /* Read bitmap height */ height = pbmp[22] + (pbmp[23] << 8) + (pbmp[24] << 16) + (pbmp[25] << 24); /* Read bit/pixel */ bit_pixel = pbmp[28] + (pbmp[29] << 8); /*
i convert an image RGB to a buffer 8 bits and plot it with a function BSP_LCD_DrawBitmap(), but not work correctly like logo image.please any idea ?thank you.
Hi everyone I,m having a problem when i try to capture a photo in raw format with the OV5640 camera. I get an image of a suitable size but it adds the header of the JPEG that i want to avoid it.When i try to open it with the image viewer, i can see the image but it has wrong colors.I,m using ADC with DMA in Snapshot and when i starting the DCMI i have JPEGMode = DMI_JPEG_DISABLEanyone can help me?Thank you in advance
I am trying to get familiar with the workflow for using TouchGFXDesigner with CubeIDE, when I create a project with the designer and import it to the CubeIDE all works fine, but for example I change the name of a screen in the designer and regenerate the code, then the CubeIDE project still reflects the old name for the screen and does not compile anymore.Is there a way to regenerate all files so that the project in the IDE is correctly updated?
Hello,Working on touchGFX project (ide: IAR workbench 8.40) for STM32H750B-DK board and its working (generate code, run simulator, run target from TouchGFX generator tool) as well as successfully build in IAR also. But I couldn't debug this project from IAR workbench. Returns error 'failed to load flash loader flashSTM32H7xxx.flash'. but file is already present in that folder. Can anyone please explain what are the configuration for IAR project to load and debug code form QSPI external memory.Thanks in advance
We have been having this issue for a while. We are in TouchGFX version 4.19.1 (but it seems to be an issue in most versions). For a while we were able to add text in touchgfx and everything worked great. Then after a while TouchGFX wouldn't create the text bitmap in BitmapDatabase.hpp. When the text is added to a screen it would say the bitmap isn't defined, which makes sense since new text isn't showing up in the bitmap database. I can add new text boxes to screens with words that were added before things stopped working. So it seems to me like some disconnect occurred with generating the BitmapDatabase. I was wondering if you know of a configuration file that points to BitmapDatabase and it may be generating things in the wrong place now or if this could be a different issue
..
Hi Everyone,I am working on a project with TouchGFX. I'm working with STM32H743X MCU. Project have MT48LC4M32B model external SDRAM. I was have an issue with screen that corrupted image on it. You can see below some example at picture.In expectation, the back color of the screen needs to be grey and the text need to be readable.So I was start my own investigation on this issue. Right now, I have suspicion on external ram. I am try to use write a sngle word to external ram and see on debug mod. You can see two picture below for this test. You can see the ram status on right side of 1st picture. On second picture I just run code for 1 write operation. In my expextation fisrt 4 byte of ram will change to DD CC AA FF, the rest of it will be same. But you can see the ram status after fist write operation in next picture. Ram write same word for 4 time. I am using ram BSP from ST examples. You can see installation of FMC at cube mx in below pictures. I need all of suggestions
Hi ! I'm currently working on a STM32H747-DISCO with TouchGFX to test and discover this graphic library. My touchGFX app is only 2 screens with a button to go screen 1 or 2 with a slide animation.But when I'm implementing an other task in FreeRTOS with a higher priority, TouchGFX freeze at some point when i'm changing screen. My goal was to see when the animations of the library would lag with an other task running on the M7. Do you have any idea why the screen freeze ? It may be linked to the slide animation of screen.
Hi, Is it possible to use custom fonts other than True type fonts listed in Touchgfx Designer. Thanks
Currently it seems that text can only be rotated by a multiple of 90 °. In a current project, however, I have a customer requirement that text must be rotated by any angle, since the display must be mounted rotated. What would be the best approach to implement this in the current circumstances?
Hi Community,How to map External Touch sensor (Not integrated with display) to Scroll list? Is it possible?If yes what is the method to do it?/Vins
helloI want to receive the callback function from the button of "Container" by generating an event from "Screens".The following is the definition of Callback Function for Button in Container.// @ Container void CC_Pop_Cancel_Check::flexButton_confirm_event() { // Override and implement this function in CC_Pop_Cancel_Check } void CC_Pop_Cancel_Check::flexButton_cancel_event() { // Override and implement this function in CC_Pop_Cancel_Check }Below are Screens inserted into Container.#include <gui/scrautoremain_i1_screen/ScrAutoReMain_i1View.hpp> #include <texts/TextKeysAndLanguages.hpp> #include "BitmapDatabase.hpp" ScrAutoReMain_i1View::ScrAutoReMain_i1View() { } void ScrAutoReMain_i1View::setupScreen() { ScrAutoReMain_i1ViewBase::setupScreen(); } void ScrAutoReMain_i1View::tearDownScreen() { ScrAutoReMain_i1ViewBase::tearDownScreen(); }I want to receive the callback function generated from the button of the container fro
Hi, i am having problems with TouchGFX generated Project and LWIP/Ethernet My Software setup:STMCubeIDE Version: 1.9.0TouchGFX Version: 4.19.1STM32Cube_FW_H7_V1.10.0My Hardware setup:STM32H747I-DISCOI have followed the steps in the ST-article How-to-create-project-for-STM32H7-with-Ethernet-and-LwIP-stack-working (can't add link) but can't ping the board. There is no Ethernet interrupt or RX callback, but GPIOs are set to high speed and ETH global interrupt is enabled and set to priorty 5 - preemption and 0 - subpriority.Ping works in the attached example from the article, even when I migrate to the new H7-FW (after using the steps under 10. STM32Cube_FW_H7_V1.10.0 (and newer) specific issues). I think there might be a problem with the MPU region, since I read somewhere that the M4 core is accessing the 0x30040000 with 0x10040000 and I have setup the same address there (sorry i am new to dualcore and mpu configs - see region 4 to 7 in my config). here is my config:void MPU_Config(void)
Have anyone succeeded in using compressed images with TouchGFX ? Here is what I tried to do (spoiler : didn't work)I've been trying to implement a GUI with TouchGFX for an STM32L4R5 with 2 MB of FLASH memory, but all the images take 8 MB and so don't fit in the FLASH.By compressing the images using RLE & LZW simple algorithms, I would achieve a more than ten-fold reduction in image sizes, but they cannot be used as-is by TouchGFX. So I thought I would write a decompression layer to dynamically decompress the images into dynamically allocated RAM, and free it when the images are not displayed anymore. This would happen upon each screen transition : discarding the images of the former screen and bring in the new ones.Fortunately, we have the sources of the part of TouchGFX which handles image loading : the constructor & destructor of the Bitmap class, in Bitmap.hpp, deep into the "Middleware" folder brough up by TouchGFX Generator. So the easy part is replacing the raw images wit
Hello,We are working on interface of OV6946 camera with STM32F7508 development kit. We need to capture image and stream on STM32F7508 Display. Camera which we are using provides 10bit output with 400x400 resolution in Bayer’s format. The connections are done as mentioned below:Camera Pin Controller PinsDCMI_D0 - PH9DCMI_D1 - PH10DCMI_D2 - PH11DCMI_D3 - PH12DCMI_D4  
I'm interfacing 10-bit camera on DCMI protocol. I can able to read the data over DCMI and display it on the STM32F7508 Discovery board. Since the color format is different I'm not getting the actual real-time colors. I'm using the "Camera" example on STMCUbe IDE. There is no Macro expansion for RAW Bayer. I referred AN502, section 3.6. It says it also supports the Bayer format. Can somebody help me to figure this out? or else do I need to implement demosaicing algorithm?
From the example code 'CAMERA' for STM32F7508-DK.main.c/ "static void LCD_LL_ConvertLineToARGB8888(void *pSrc, void *pDst)" function we have configured DMA2D_Input_Color_Mode macro to DMA2D_INPUT_RGB888 and we are getting color image but the colors are not identical, in the place of yellow color we ara getting blue color and in the place of blue we are getting yellow color. This may be because of Bayer's color format. We tried all the macros mentioned below under DMA2D_Input_Color_Mode.DMA2D_INPUT_ARGB8888 0x00000000U DMA2D_INPUT_RGB888 0x00000001U DMA2D_INPUT_RGB565 0x00000002UDMA2D_INPUT_ARGB1555 0x00000003UDMA2D_INPUT_ARGB4444 0x00000004U DMA2D_INPUT_L8 0x00000005U DMA2D_INPUT_AL44 0x00000006U DMA2D_INPUT_AL88 &nb
Good morning,currently I am experimenting with a STM32H735G-DK demo board. I started with generating a simple Button for toggeling an LED in Touch GFX. Then I opened the project in the STM32CubeIDE and changed a GPIO pin. After compiling the program, the controller immediately crashes and the MemManage_Handler is invoked.I tried to verify the problem and repeated the steps with a new project. In this case, I just ran the configuration tool without making any changes which showed the same result. So I think there is a problem with the configuration file ***/or settings.Unfortunately I am not able to find the cause for crashing, so I do rely on a working configuration for now.
Hi,I was wondering what the TouchGFX porting process is like for development across different MCUs.I'm thinking of starting development for a GUI on an STM32 Discovery Board, and then when the actual hardware gets produced, switch over to developing on that. I was wondering what the porting processes for that would entail.It seems like you can easily port over a TouchGFX version on the same MCU. https://support.touchgfx.com/4.20/docs/miscellaneous/updating-to-a-new-touchgfx-versionBut I was wondering if there was a similar process across different MCUs other than just re-generating the MCU specific code and then copy and pasting the user code into the new project.Thanks!
I am trying to operate 480x272 RGB LCD, SDRAM(for graphic memory), flash memory(for log), BLDC motor, wifi, sound, freeRTOS. At first, it was implemented with STM32F767IIT (flash-2MB, ram-512KB). Since there are too many pins connected to SDRAM and LCD, PCB artwork was difficult and a lot of electromagnetic waves were emitted.If the LCD interface is MIPI-DSI and drives only with SRAM without using SDRAM, the number of pins can be greatly saved. But I'm not sure if I can drive the LCD while running FreeRTOS with 512KB SRAM.Is there a development board that implements MIPI-DSI LCD? Or is there a suitable solution?
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.