Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I bought a STM32H743I-EVAL2 board and updated to the latest STM32Cube 1.8.0 with firmware V1.9.0 and V1.9.1I tried 2 examples project and they both shows graphics issues.The example "DMA2D_MemToMemWithBlending" show the 2 first image incorrectly (then the final blending is correct)The example "DMA2D_MemToMemWithBlendingAndCLUT" is also incorrect with an issue which seems to be related to endianess (the pixels are shown reversed each 4 pixels)I'm new to STM32 MCU and trying to learn, but if the factory example are not correct, it badly starts.Also, I saw in some example that the LCD buffer is mapped to an address defined at 0xD0000000 but I can't find anywere how this address is configured ? to which chip is it mapped ? there is so much code that I don't know where to start.Thank you,Best regards,Cedric B
make -f simulator/gcc/Makefile assets -j8 andmake -f simulator/gcc/Makefile -j8 The two commands were used, and it seemed that they were executed after a while. Makes the compilation of the entire project very slow. I currently use inter 12th generati
I need to skip the upper row and lower row and print the characters.
hello, i am trying to use internal Ram And Flash only for controlling RGB-LCD(8x8x8) by STM32H743IIT6. after generating of code by cubemx+touchgfx i got some error related to videos.s file even i am not using any video file and no any interactions.
Hi I have a TouchGFX project and need some help.The issue I am having is about scaling an image inside of TouchGFX to match RPM.See image belowI am trying to properly scale this image to match the RPM. 0 to 9000 rpms is the range but I cannot get the progress bar to match it. Can you help with this? See attached TouchGFX Project
Dear All,We are running a graphical application using LTDC and DSI on a STM32L4R9 discovery board. We refresh the display per portions with the DSI peripheral configured in adapted command mode. At the beginning of a portion refresh, we are reconfiguring the windows position and size in the LTDC (only layer 1 is used). The next portion refresh is started after the end of refresh interrupt from DSI.During some refresh, the LTDC is generating a FIFO under run error. We did several tests with different pixel clocks, always with the same error.Test conditions:frame buffer of a portion is in internal RAMDisplay size 454 x 454 (RGB888)HCLK 120 MHzPCLK1 120 MHzPCLK2 120 MHzPLLDSICLK 30 MHzLTDCCLK tested from 3750 kHz to 15 MHzHow can we know if there is a congestion on the AHB bus which starve the LTDC FIFO? How can we troubleshot the LTDC underrun errors?Is there a way to set some priorities on the internal buses or the LTDC peripheral?Any idea to workaround this issue?Thank you,Be
I am creating a project for the STM32F469I-DISCO board, and trying to open it and build it in STM32CubeIDE. It appears that TuchGFX Designer is not creating correct file names. Some have -EVAL instead of -DISCO, and I think this is causing problems. You can see both in the project below. All I did was open the .cproject file in the TouchGFX project folder. It does not find the ioc file, because it is incorrectly looking for a -EVAL and the actual file is a -DISCO file.I'm assuming this is a bug in TouchGFX Designer because it is mixing up the two types of boards (-DISCO and -EVAL)?
I am using STMCubeIDE 1.7.0 on linux computer and running designer on windows host as virtual machine ...Is that maybe the problem, that I have to expose some directories from CubeIDE?Or is it from now on "only-simulator/no-boards" a proper reality?If I remember correctly with v4.16 I could select boards without any problem...Is there any clue about it?Thanks, Ziga
HiI use touch gfx wildcard to show characters and variables in the text area but the characters are shown like the attached photo... I configured the MPU as follows but still does not work.I would appreciate any help. I will upload the LCD photo and MPU codes.PS:I use stm32f767igSDRAMQspifonts and texts are in IROM.void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Disables the MPU */ HAL_MPU_Disable(); /** Initializes and configures the Region and the memory to be protected */ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER0; MPU_InitStruct.BaseAddress = 0x60000000; MPU_InitStruct.Size = MPU_REGION_SIZE_64MB; MPU_InitStruct.SubRegionDisable = 0x0; MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE; MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE; MPU_InitStruct.IsCacheable = MPU_ACCESS_
I want to drive an RGB 222 screen using LTDC, however the only stm32 chip I found that support LTDC RGB222 mode is stm32l4p/stm32l4q series. I can not find the RGB 222 option in other chips(only RGB 888, RGB 565, ETC). Is stm32l4 the only series that support LTDC RGB 222 mode? Can I use the RGB888 mode to drive a RGB 222 screen? Is there any method to convert?
Does TouchGFX also have similar functions that can replace StemWin's functions such as GUI_DrawBitmap, GUI_FillRect, and GUI_DrawLine? And is there any example of how to use it if there are? ( very difficult to find example code snippet like STemWin's.)Best Regards,Tiel
I'm using the STM32F469I-DISCO board with TouchGFX. In portrait mode, I set the swipe threshold to 400 because I want the user to swipe almost all the way across the screen to switch pages. When I swipe slowly, it seems to work. However, a fast swipe changes pages with a swipe distance of only 1/2" or so. Is there a way to not make this speed-dependent?
void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Disables the MPU */ HAL_MPU_Disable(); /** Initializes and configures the Region and the memory to be protected */ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER0; MPU_InitStruct.BaseAddress = 0x60000000; MPU_InitStruct.Size = MPU_REGION_SIZE_64MB; MPU_InitStruct.SubRegionDisable = 0x0; MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE; MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE; MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE; MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE; /** Initializes and configures the Region and the memory to be protected */ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER1; MPU_InitStruct.BaseAddress = 0x90000000; MPU_InitStruct.Size = MPU_R
I am trying to display a temperature value and would like to include the degree symbol °. I have included this symbol in the typographies as a wildcard character. TouchGFX displays the string, but it inserts the fallback character and then the wildcard character. (72 ?°) Why is the fallback character being inserted?
..
I am looking to call a function from TouchGFX engine. This function resides in external code. Ideally, the function should be called from TouchGFX before handleTickEvent() from each screen is called. I would like to know both the ways i.e. call the function before and after handleTickEvent(). Please let me know.
I have a scree with a modal window. Modal window is set to not visible by default. I want the screen to appear first and after some delay the modal window should appear. I created two interactions like this.Interaction1:Trigger = Screen Transition beginsAction = Wait forDuration = 1000msCan trigger another interaction = trueInteraction 2:Trigger = Another interaction is doneChoose interaction = Interaction1Action = Show WidgetChoose widget to show = modalWindowNameFor some reason, modal window never appears. Please suggest what I am missing.
I'm testing TouchGFX on an STM32WB55 Nucleo Board. I configured the board using CubeMX, and designed a very simple screen in TouchFGX 4.18. I'm using an SPI LCD with ARGB222 format, and a partial buffer (just 1 block of 20 lines). Variable 'memory' is correctly allocated when debugging (MDK_ARM).Returning from allocateBlock(), the program goes into abort() function (called by _ZN8touchgfx3HAL27configurePartialFrameBufferEtttt). Am I missing something from the configuration?
Hi,Now I need to update the content that user inputs, but it seems that the TextArea widget can only set TypedText of generated.Maybe using text_with_wildcard and format the placeholder with char array. So is there any graceful way to do it ? /jjlin
Dear all,I have a problem with the new video widget in combination with the STM32F769NI-DISCO (MIPI DSI display 800x480 px, JPEG HW en-/decoder, 16 MB ext RAM, 64 MB ext QSPI Flash).If I create with the TGFX designer 4.18 a new video example project with this board, the video runs without problems. If I change the video to the 800x480 sample video and increase also the video frame buffer in CubeMx it's not possible to build the project because the RAM size is out of limit. It seems, that TGFX use just the internal RAM for the video framebuffer.So the question is: Is it possible to switch the video framebuffer also to the external RAM? And if yes, how can I do this?Thank you in advance.BR,John
I am currently doing a product that includes the STM32L4R5ZI chip and the Himax HM01B0 Camera.PS: This is a main.c file with only the camera part which we used to debug.CAMERA DSTo the problem, have the main.c on the side:Line 67-75 | The I2C commands for the camera get saved to be used later.Line 77-79 | Initialize the buffer which we then pass to the DMA later. Since we are using monocrome QVGA 8-bit We have 324 width * 244 height /4 bytes per word.Line 117 | Configured the timer3 channel 4 to output a 4 MHz master clock signal which is on the lower end that the camera will accept.Line 119-122 | The camera now gets sent the initialisation commands after the masterclock is running.Line 135 | Starting the DCMI transfer via DMA in Snapshot mode. Command 1 to the camera also said use OneShot mode.Line 137 | Sending the command to the camera to take one picture.All the data lines and HSync/ VSync are correctly connected. The camera is behaving as expected when looking at it through the os
When starting my DynamicGraph (wrap and override) in simulation, I get these weird progress bar artifacts.As you can see in the following gif, once the wrap-around is done, the artifact disappears.https://i.imgur.com/wWQHgpX.gifAny idea what could do this?Information- TouchGFX version: 4.16.0
I'm using the STM32F469I-DISCO board with TouchGFX. In portrait mode, I set the swipe threshold to 400 because I want the user to swipe almost all the way across the screen to switch pages. When I swipe slowly, it seems to work. However, a fast swipe changes pages with a swipe distance of only 1/2" or so. Is there a way to not make this speed-dependent? Right now, it is very easy to accidentally change pages. I want the page change to be very intentional.
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.