Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
..
I've done a quick search and could not see this mentioned hence...I have two displays connected to my development computer. When editing a custom container if I move the TouchGFX designer from one display to another this can cause the widgets to be shifted relative to the container. Sometimes this needs this only happens if the designer is maximised.The good news if that its just a display issue, flipping to canvas and back to containers fixes it, but it will give you a fright the first time.
Hi,STemWin Version 5.42 and 5.44 have no more Keil and IAR libs as in 5.40 and earlier. Is there a workaround for this?Thanks
i have making a project which i can simulate the project but i can't run the same on my target.
Has anyone got the Adafruit 1.8" Color TFT Shield to work with a Nucleo H743?I have tried the demonstration program from the STM32Cube_FW_H7_V1.3.0 package that supports this board, but nothing is displayed. I have verified that SPI data is being sent to the LCD.
We're in a project phase where were adding peripherals incrementally and using cube to configure them. We have a GUI as well built with STemWin, but not GUIBuilder. Our GUI isn't complex but we have code that needs to be outside of the MainTask function. Every time we generate code from Cube the GUI_App.c file is written over. I know we can just run the code from another file, but it seems silly to have GUI_App.c out there only to call it. Is there a way to prevent Cube from nuking that file? If not, what is the purpose of the GUI_App.c since you cant put anything outside of the MainTask function?
Hi,all!I'm Using STM32f767 developing touchGFX applications .Using MDK5.By the following the guidence in "https://touchgfx.zendesk.com/hc/en-us/articles/205886201-Placing-Assets-in-Flash-Memory" placing the fronts in extern Flash. sct file config as the following codes:; *************************************************************; *** Scatter-Loading Description File generated by uVision ***; *************************************************************LR_IROM1 0x08000000 0x00100000 { ; load region size_region ER_IROM1 0x08000000 0x00100000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x20000000 0x00080000 { ; RW data .ANY (+RW +ZI) }}LR_EROM1 0x90000000 0x01000000 { ; load region size_region extflash.bin 0x90000000 0x01000000 { ; load address = execution address *.o (ExtFlashSection)  
While trying to diagnose designer code generation errors I found that if I deleted by custom container it causes the designer to crash even though it is not used on any screen.have repeated three times if you want me to zip up the project and detail the mouse clicks needed to replicate.
Hello,I am using a custom container which is used in most of the screens as TopBar showing various details.The details are varied by using depending on the backend values of the system.Normally, we use Model-Presenter-View for communicating with backend.But how to control the widgets of custom container as there are no presenter/view for it.Thanks,Ameya
I have a few images moving and zooming across the screen, however every once in a while the animation ends before it reaches its destination and throws off my indexing. Initially I thought it was a GPIO interrupt that was causing this, so I make sure to disable the GPIO interrupts before starting an animation and then re-enable it after the AnimationEnded Callback. However I notice that sometime the callback code doesn't get executed when the animation ends prematurely.Is there a way to handle cases where the animation ends prematurely?void HomeScreenView::animationEndedCallbackHandler(const touchgfx::ZoomAnimationImage& src) { // if (&src == &MenuImg) // { callbck(); // } } void HomeScreenView::callbck() { highlightCircle.setAlpha(255); highlightCircle.invalidate(); currentScreen = nextScreen; HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); }void HomeScreenView::handleKeyEvent(uint8_t key) { HAL_NVIC_DisableIRQ(EXTI15_10_IRQn); // debounceCounter++; // if(debounceCou
Hi,I'm debugging this problem for the major part of my weekend now, and could use a hint pointing me in the right direction, in order to not also spend the remaining part of the weekend on debugging.After quite some struggle getting TouchGFX to work with CubeMX and TrueStudio, I get the software compiled. I configured all TouchGFX-parameters and enabled both LTDC and DMA2D interrupts in CubeMX. I already tested the LCD with manually copying a TouchGFX-generated image from the flash to the frame buffer using DMA2D, after the initialization-functions from the CubeMX-generated code, which works and displays as expected. My conclusion is, that LTDC and DMA2D are configured correctly.When touchgfx::HAL::getInstance()->taskEntry() is called, TouchGFX enables the interrupts by calling STM32F7HAL::enableInterrupts(), and then disables them using void STM32F7HAL::disableInterrupts() shortly after, without any changes to the framebuffer. Inbetween LTDC_ER_IRQHandler() fires three times, even
I created a custom container in which I placed a scrollwheel.I added in the item template and selected item template both of which use text with wildcard placements.The problem arises when I select these text widgets to use a wildcard buffer at which point multiple identically named buffers are defined in the controls base class which cause the compiler to fail.I have replicated in a small project whch I can zip and email if you say who can deal with this.
When I added interactions to my container the compiler failed stating it did not know what an AbstractButton was.When I manually added a #include for "touchgfx/widgets/buttons.hpp" using Visual Studio the fault was fixed.It is a small project so I can zip it up and email if you tell me who to.
Hello,I just had a look at the lcd module of the bsp for the stm32f746g disco board. It seems to support ARGB8888 and RGB565 pixel formats for framebuffer. Color code for draw actions is always rgb8888. When drawing a line and framebuffer has rgb565 format, the argb8888 color code is converted to rgb565 by dma2d during transfer. But when the cpu draws pixels, the color code isn't converted. There is just a cast from the 32bits of argb8888 to 16bits of rgb565. Seems there is missing a manual conversion???/** * @brief Draws a pixel on LCD. * @param Xpos: X position * @param Ypos: Y position * @param RGB_Code: Pixel color in ARGB mode (8-8-8-8) * @retval None */void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code){ /* Write data value to all SDRAM memory */ if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565) { /* RGB565 format */ *(__IO uint16_t*) (hLtdcHandler.LayerCfg
Helloto go to a view i call a function DISPLAY_MYVIEW that do the following :application().gotoMyView(); (application is defined as FrontendApplication& application())I want to display the MyView screen with a call from the model (on an external event; whatever is the screen currently shown)For that i don't want to call a virtual function from modelListenner: it would mean that have to define in each view and presenter the function DISPLAY_MYVIEW.Is it possiblethanks for any supportbest regards
Does any one have a list or link to documentation that out lines the Chip Resource usage of the Touch GFX library?Obviously it uses the LTDC and DMA, I am looking for the complete list.Thank You
think i figured it out...
My presence at EW2019 will limit my activity on the TouchGFX forum, but i'll be active once in a while from the hotel when possible.Anyone going? I'll be somewhere around the STM32 area and will be giving three presentations per day Basic TouchGFX Development/workflowWhat's new in TouchGFX 4.11.0 ?CubeMX/Interface between Hardware and UIHope to see you there!Best regards,Martin
Hi,I'm trying to convert a project generated with GFX for F7, to H7, and also integrate it to one cubeMX generated project for atollic.I'm at the point in which, app run (i think correctly,no hard fault), but I can't see any transfer to display frame buffer.But I'm very poor of knowledge about this mcu and its periph,but also about touchgfx, so my first question are:my board, as external memory, has only 64M qspi, but no SRAM/SDRAM, so I want use part of D1 RAM for frame buffer(it is 240x320 display RGB565, so I need only 150kB of th 512k available). Is it possible?Does TouchGFX need RAM area reserved for build image before transfer to frame buffer?if yes, how I can configure it?Why I never see trigger setupdatacopy or setupdatafill function? I need to add code, apart taskentry, to view default screen?Thanks
Hello, i had no response to that questionHow to go to a view from Model without using modelListennerto go to a view i call a virtual function from modelListenner DISPLAY_MYVIEW that do a call to presenters, and then to views (that then do application().gotoMyView(); )I want to display the MyView screen with a call from the model (on an external event; whatever is the screen currently shown)For that i don't want to call a virtual function from modelListenner: it would mean that have to define in each view and presenter the function DISPLAY_MYVIEW.Is it possible ?thanks for any supportbest regards
Hello all, I tried to integrate touchGFX to STM32CubeMX and I'm using keil to complie all the files. The complication is successful yet mountains of errors occurs during linking ! All errors are of the same type like this: Error: L6654E: Rejected Local Symbol .x refered to from non group member x.o (.iar.stackusage) Please help! I think I'm almost there!
I am trying to make the LTDC controller work on my STM32F429 Discovery Board. Right now, after I run the code, I can tell the screen settings take their effects (SPI commands), but I cannot draw on the screen. The screen is getting noisy gradually.Here are my settings: Layer 1 color format is L8. And I configured / enabled the CLUT. I didn't create my framebuffer on SDRAM, but save it directly in controller RAM.Not using DMA.Here is some of my code:You can find all of them on my Github: https://github.com/boningdong/STM32-ILI9341-DEMO/tree/RGBLTDC Configstatic void MX_LTDC_Init(void) { LTDC_LayerCfgTypeDef pLayerCfg = {0}; hltdc.Instance = LTDC; hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL; hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL; hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL; hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC; hltdc.Init.HorizontalSync = 9; hltdc.Init.VerticalSync = 1; hltdc.Init.AccumulatedHBP = 29; hltdc.Init.AccumulatedVBP = 3; hltdc.Init.Accumulate
I'm working with the STM32F769I-Disco board which uses DSI to drive its LCD display.I'm seeing LCD-TFT global Error interrupts being raised but both the LTCD->ISR and LTCD->IER are both zero.I've scanned through the app notes for DSI and I can't see any mention that the DSI can trigger a LCD-TFT interrupt even though the LCD own registers are not set to do so.Within the ISR I see that DSI->ISR1:GPRDE is set which would indicate some form of transfer issue.It only happens during the initial startup of the app, not once its established and running but I don't like to have unknowns lurking which may be problems for later on.Do you think this may be a possible explanation and is having a null ISR sufficient to handle it since there is no LTCD->ISR value to clear in the LTCD->ICR register?
What's the difference between putting code in:MyScreenViewBase::MyScreenViewBase(){}vsvoid MyScreenViewBase::setupScreen(){}
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.