Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,Not sure if this is the correct place for an issue report. If there is a better way, please let me know.I am using TouchGFX Designer 4.16.0 and noticed that when I use the listLayout containerit seems to only support "East" layout. Even if I change it to "South" and save the project and "Generate code", the generated code shows "East"listLayout1.setDirection(touchgfx::EAST);My environment is the STM32F769I-Discovery board with the screen set to Portrait mode,in case that matters.Is anyone else seeing this?
Hello I am using STM32F429I - Discovery Board. I designed an GUI on TouchGFX. I want to display readed ADC values on screen. How can I do this connection?
I am trying to setup touchgfx on a STM32H743II based custom board. When I run the code, it seems thatonly part of the screen is getting updated with some (wrong) fb dataremaining screen is noiseirrespective of my touchgfx screen color, I always see the same output on my display leading me to believe it could be some wrong pointer / address issueWhat I have tried and confirmedexternal SDRAM is working fine. Have done a write / read / compare test and it passes. it is mapped at SDRAM BANK 1 (0xc0000000)display is working fine. I am able to show a proper image by pointing LTDC layer 1 buffer pointer to a c array containing image dataany idea what could be happening here
I scroll ScrollWheel to first item, but when I release finger, scrolwheel scrolls to second item automatically.How to solve?
Hello,I am using Touchgfx v4.16.1 with an STM32F469 Discovery Board. I used Touchgfx Designer to generate two different applications for the Discovery Board. In both cases when I build the applications using the makefile, the external Flash file that is created is over 2 GB. I looked at the mapfile for each application and for both applications the memory used in the external flash space is much, much smaller. One of the external applications does not have any images in it so the external flash is only being used for fonts (approximately 400 bytes of memory). I removed the "-g" option from the makefile to try to eleminate the creation of debug symbols but that did not help.I can use Designer to load these applications onto the Discovery board and they run fine. I know the external flash file is much, much larger than the external flash on the Discovery board so it appears that only part of it is being loaded.I have used TGX previously and did not have this issue. The size of the extern
Hi I have doubt in MIPI_DSII Have only one lane but my Display has 4 lanes I don't know how to connect them bothPlease help me to interface the display with MCUor Else, please suggest to me some OLED display to interface with this MCU(MIPI-DSI)
Hi, I'm using a STM32F429ZIT6 controller to interface an OV5640 camera module. I'm interfacing the sensor over 8 channel DCMI. I'm trying to capture RGB565 at high resolution. I'm using DMA with the double buffer on the fly address update feature. I capture the image directly into the SDRAM.When I try 320x240, 640x480, 800x640 and 1280x720 the DMA is working properly and I am getting the desired image. When I increase the resolution to 1280x1024 the DMA stops exactly midway of the total bytes to be transferred. I checked multiple times and it stops exactly at the same point. I'm getting only half the image at this situation. I thought it was because of a faulty SDRAM but know the SDRAM is working perfectly. I'm using an 8MBytes SDRAM.I could see that the direct mode error flag is set. How do I prevent or handle this error?
I am receiving corrupt images from OV5640-STM32F4. This isn't regular, I get proper images of resolution 320x240 to 5MP, but occasionally I keep receiving corrupt images. The corrupt images are found in all resolution. By corrupt image I mean, sometimes the image color is wrong, sometimes the pixels are shifted, sometimes half the image is missing. I pick the image from SDRAM and transfer it over UART. I suspected it was because the DCMI is overflowing or some error. I set the FRAME COMPLETE, OVERRUN and ERROR interrupt of DCMI along with frame capture interrupt. When I debug even though I receive corrupt images, I don't get any error callbacks, I only get a FRAME capture call back. Does that mean DCMI is not the one causing the corrupt images? What might be the reason for obtaining random corrupt images?
So I bought STM32F769 Disco board which come with LCD 800 x 480 size. But then the project decide to use smaller LCD size say 480 x 272. Can use the same display for this? So in away, I dont mind to see the application graphics shown by portion of the display since this is prototyping only, This way can save some bucks :)
So I am using STM32f769 Disco board, first I use template project from TouchGFX Designer and so far it is good. But then I realize it is using framebuffer located on external SRAM address 0xC0000000. But I want to change the location to internal RAM e.g. defined as array in the code like:uint16_t framebuffer[widht*height].How should I do this?
Thank you for helping.I want to access common variables on several screens (View).How do I pass a variable to View?Will it be passed to the base class of View?I want to make it a smart way without using global variables.Thank you.
Hellovoid MovingStep_Container::SetStep(uint16_t data) { Unicode::snprintf(MovingStepTextBuffer, 20, "%d", data); MovingStepText.setWildcard(MovingStepTextBuffer); MovingStepText.invalidate(); }Unicode::snprintf(MovingStepTextBuffer, 20, "%d", data); works without problem/But if I writeUnicode::snprintf(MovingStepTextBuffer, 20, "%.1f", 0.1);I get text "%.1f";
Hi,I am facing a strange cache problem. I use the DCMI coupled to the DMA in order to acquire an image into the external SDRAM. As indicated in the application note AN4839, I proceed in this way.before to start the DMA transfer I clean the cache (cache_D_Clean();)At the end of the transfer (in the DMA interruption indicating the end), I invalidate the cache (cache_D_Invalidate();)Everything work perfectly on the stm32H7.On the stm32F7, as soon as the cache invalidation routine is called, the CPU generates a bus error.On the stm32F7, in the DMA interruption indicating the end of the transfer, I replaced the cache invalidation (cache_D_Invalidate();) by the cache clean followed by the cache invalidation (cache_D_Clean(); cache_D_Invalidate();). Adding a clean (cache_D_Clean();) seems to avoid the bus error but I cannot understand why.Why the behavior of the H7 and the F7 caches are different on the same code?Thank you for your feedbacks.Any idea why ?
Hi, I am trying to use the ST-CUBE-EEPROM driver to store some settings with touchgfx 4.16.I have a separate section defined in the linker script, 24kB for 500 variables at the end of the internal flash. It works well if I run it before the touchgfx task starts.If I try to read a variable while touchgfx task is running I get a WRPERR in the flash status register. I have image assets stored in memory mapped external flash and fonts in internal flash. Am I able to stop touchgfx from locking the section I defined for the EEPROM somehow? Or do I have to go down the same route as suggested for memory mapped external flash by stopping the touchgfx task?Thanks for the help :)Russell Burge
Since a few days I own an STM32H735 Disco board. But I can't get HAL DMA2D to work correctly. The following code shall copy a line of pixels from RAM into the framebuffer:DMA2D_HandleTypeDef hdma2d; static void ConvertLineToRGB(uint32_t *pSrc, uint32_t *pDst, uint32_t xSize) { hdma2d.Instance = DMA2D; /* Configure the DMA2D Mode, Color Mode and output offset */ hdma2d.Init.Mode = DMA2D_M2M; hdma2d.Init.ColorMode = DMA2D_OUTPUT_ARGB8888; hdma2d.Init.OutputOffset = 0; /* Foreground Configuration */ hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA; //hdma2d.LayerCfg[1].InputAlpha = 0xFF; hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_ARGB8888; hdma2d.LayerCfg[1].InputOffset = 0; /* DMA2D Initialization */ if(HAL_DMA2D_Init(&hdma2d) == HAL_OK) { if(HAL_DMA2D_ConfigLayer(&hdma2d, 1) == HAL_OK) { HAL_DMA2D_Start(&hdma2d, (uint32_t)pSrc, (uint32_t)pDst, xSize, 1); HAL_DMA2D_PollForTransfer(&hdma2d, 25); } } //memcpy(pD
HiI have two screens A and B. On A ButtonSTART (Toggle).On B ButtonSTOP (Toggle). ButtonSTART is to change to screen B and turn on the counter. ButtonSTOP is to change to screen A and stop the counter. After changing screen A to B, ButtonSTART should be 0.After changing screen B to A, ButtonSTOP should be 0. How to set up GFX INTERACTION? greetings Andrzej
I got trouble with Arabic text. And i get this information. But, how can i check the font is fine with TouchGFX?
Hi, I want to change the screen from model. Do I have to declare the goto methods in the current screen and its presenter? Do I have to do the same thing for using appSwitchScreen()? Is there another way to do it without declaring goto methods in the current screen or its presenter?
Hello,I want to integrate my STM32F746 discovery board in his final destination, to do this I am researching a way to put the board into a enclosure.I know that I could create my own box with 3D conception but I'm not very good with this kind of conception...Does anybody have already integrate an STM32F746 discovery board into an enclosure ? There is specific enclosure on sale for the board on the web?I've found nothing on internet about these questions...Thanks for you help,PS: Sorry for my bad English
The field DMA_Handle of the local data pointer phdcmi, which points to a global struct variable hDcmiEval, is not initialized in the function BSP_CAMERA_Init (from the file STM32Cube_FW_F4_V1.25.0/Drivers/BSP/STM32469I_EVAL/stm32469i_eval_camera.c).uint8_t BSP_CAMERA_Init(uint32_t Resolution) { DCMI_HandleTypeDef *phdcmi; uint8_t status = CAMERA_ERROR; /* Get the DCMI handle structure */ phdcmi = &hDcmiEval; /*** Configures the DCMI to interface with the camera module ***/ /* DCMI configuration */ phdcmi->Init.CaptureRate = DCMI_CR_ALL_FRAME; phdcmi->Init.HSPolarity = DCMI_HSPOLARITY_HIGH; phdcmi->Init.SynchroMode = DCMI_SYNCHRO_HARDWARE; phdcmi->Init.VSPolarity = DCMI_VSPOLARITY_HIGH; phdcmi->Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B; phdcmi->Init.PCKPolarity = DCMI_PCKPOLARITY_RISING; phdcmi->Instance = DCMI; /* Configure IO functionalities for CAMERA detect pin */ BSP_IO_Init(); /* Apply Camera Module hardware re
I created one project with help of Touchgfx generator. The project build successfully in stmcube ide. I build the same project in command prompt at the time i am facing some issues.Board :STM32F469IIDE version: 1.6.0MX version : 6.2.0Touchgfx :4.16.1C:\TouchGFXProjects\MyApplication_3>make -f gcc/Makefile assets -j8gcc/Makefile:82: C:/TouchGFXProjects/MyApplication_3/C:/TouchGFXProjects/MyApplication_3/TouchGFX/config/gcc/app.mk: Invalid argumentgcc/Makefile:115: C:/TouchGFXProjects/MyApplication_3/C:/TouchGFXProjects/MyApplication_3/gcc/include/cube_programmer.mk: Invalid argumentfind: 'C:/TouchGFXProjects/MyApplication_3/C:/TouchGFXProjects/MyApplication_3': No such file or directorygcc/Makefile:286: C:/TouchGFXProjects/MyApplication_3/C:/TouchGFXProjects/MyApplication_3/gcc/include/flash_sections_int_ext.mk: Invalid argumentmake: *** No rule to make target `C:/TouchGFXProjects/MyApplication_3/C:/TouchGFXProjects/MyApplication_3/gcc/include/flash_sections_int_ext.mk'. Stop.Th
Hi,There is a problem with TouchGFX 4.16.1 vertical front line in dynamic graph by using STM32H7...When graph is initialized for first time, vertical front line have a shadow of it's last position until end of the graph and when it start from beginning, shadows are cleared by front line forward moving... When also changing screen and back to graph screen, shadows come back again....Please help me what is wrong here and how can I solve this...Thanks.
Dear sir ,We are using this in one of our product.We want to know how long this product available in the future.
Hi,I use scrollList1.animateToItem (cursorpos, 14); and I need to wait for the animation to ended. I saw examples of implementing callback in user code for boxMoveAnimationEndedCallback and boxFadeAnimationEndedCallback here https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/mixins/#callback-implementation-in-user-code but its little different and when I tried implementing callback for setAnimationEndedCallback it was without success. If someone could share an example or how to do it, it would be very nice, thank you!
Is there any document which can help me do this
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.