Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I implemented a "secret" screen, not for the customer. To do this I added a button with alpha 0 and added an interaction to call a virtual function.In this virtual function there is a counter to count the number of click, and change after overflow.So far so good.But I can't goto to an another screen. I read multiple posts in this forum but my problem is that there is only in FrontendApplicationBase.cpp the declaration for the main screen like this:void FrontendApplicationBase::gotoMainScreenNoTransition(){...}There is nothing about my second screen.How TGFXDesigner generates this?Thank you,Pierre
Hello, I'm using TouchGFX 4.13 on STM32H7I have problem while using images in L8 format and caching them (section and extra section) from external memory. When I want to store image in external memory in L8 format then I set both: 'Section' and 'Extra Section' to 'ExtFlashSection' in TouchGFX Designer. During 'Bitmap::cache()' call the overridden 'HAL::blockCopy' method properly copies image bytes (that is the first call to 'blockCopy'). But when second call to 'blockCopy' is made, the caller (which still is 'Bitmap::cache()') just tries to copy always only 4 bytes, thus the colors palette (I suppose it is the palette) is not copied, so image is not displayed properly. But when I change 'Extra Section' only to 'IntFlashSection' in TGFX Designer then the image is displayed properly. Is that a bug? Or it is intentional, if so, what is the reason for such implementation?
I'm working a smart thermostat using STM32 and TouchGFX. So far I managed to implement major parts of my UI on a STM32F429-DISCO board. Now I'm trying to migrate to my custom board, which works differently from the discovery board mainly in 2 areas:1) I want to internal flash for frame buffer2) I want to use FSMC as my LCD controllerSince I couldn't find any documentation on how to implement these on TouchGFX framework (especially the first one), I don't have any clue where to begin.So, can anyone please help me?Best regards,Hamid Ahangari
Hello, I would like to drive "SPI ILI9341 LCD 320x240" on my STM32F4-Discovery board with STemWin. I have searched the forum but I found nothing. Could anyone help me to find out How can I implement this example. There is an example for STM32F429 but it does not work with SPI.Best Regards
HI All,I'm having an issue regarding switching screen.in My GUI, i have Screen one and Screen two,1- in screen one i set an interaction for changing the current screen (to screen two) by hardware button and i generated the code correctly and i found the next API//Handles when a key is pressedvoid Screen1ViewBase::handleKeyEvent(uint8_t key){ if(0 == key) { application().gotoScreen2CoverTransitionEast(); }}2- i used this handleKeyEvent(0) (in certain event) , in the screen1 view, but i didn't succeed to switch the screen2.3- after debugging , i found that i actually go to the screen two setupScreen, the screen doesn't appear on the lcd.Q: i want how ask how to use handleKeyEvent() properly ? do i use it in the screen view or the presenter or the model?
Hi,I am designing device using 100 pin STM32F207 mcu and I was planning to connect camera to DCMI peripheral and SRAM to multiplexed FSMC using latches. But in process of drawing schematic I noticed that FSMC pin that controls latches (FSMC_NL or FSMC_NADV) is also DCMI_VSYNC and there is no alternative pin for that. Although in table 93 in datasheet it is shown that it is possible to use DCMI and muxed SRAM together.Is there any solution for this problem or I need to go for 144 pin controller?Thank you!
Is there any SSD1963 driver source compatible with STM32F030RCT6 micro-controller?
Hello @Martin KJELDSEN @Community member ,I have STM32F746G Disco Board.I have multiple screen in project and i would like to update the clock time on multiple screen.so, I have used the "digitalclock" widget at 3 different screen.I got the timing information from backend application but as of now, for testing purpose i have update timing from model class and update the information using "model->presenter->view". But i am not able to update the timing in main screen.======Model.cpp====#include <gui/model/Model.hpp>#include <gui/model/ModelListener.hpp>Model::Model() : modelListener(0),tickCounter(0){}void Model::tick(){ tickCounter++; if (tickCounter % 60 == 0) { if (++digitalSeconds >= 60) { digitalSeconds = 0;  
Hello,I'm working on a project an using STM32F746 and STMPE811 for touch controller. I did initializations and everything but no metter hjow much try I can't detect touch. Also I con't do debugging step by step because my code always goes into TIM6_DAC_IRQHandler() funtion. and come back to where it was. it do not go to next line(only if I try debug step by step). So can anyone help me with these issues?Thank you.bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y) { if (tsDriver) { //In here DetectTouch's value is always 0x80060c3 Idk why if (tsDriver->DetectTouch(TS_I2C_ADDRESS)) { /* Get each touch coordinates */ tsDriver->GetXY(TS_I2C_ADDRESS, (uint16_t*)&y, (uint16_t*)&x); return true; } } return false; }
HelloI have a View1, generated by the Designer and I can transision to this view.Now I want to create a View2, which View1 is it's base class and transistion to this View2.How can I do this?Thanks, Regards RS
Hello Sir,Since, Last 1.5 months i am working with TouchGFX. I am getting error like "Creation of TouchGFX Application failed" while click on "CREATE" button.Can you please guide me for same.i have check my internet connection is working fine.please do needful for me.Thanks in advance.
..
I'm using STM32CubeIDE 1.3.1 with TouchGFX Generator 4.13.0 to create a project using Partial Frame Buffers. I've found a few issues that appear to be related to the code generation template for TouchGFXGeneratedHAL.cpp:The variable blockAllocator is declared after it is used. This leads to a "not declared" error when compiling.The declaration for blockAllocator causes "error: 'ManyBlockAllocator' does not name a type" during compilation. ManyBlockAllocator is in the touchgfx namespace and this needs to be included in the declaration to resolve the error. (eg. touchgfx::ManyBlockAllocator)The declaration for blockAllocator allocates the memory for the partial frame buffers. However, the frameBuf variable used for the single and double buffer schemes is still declared in the code. This effectively allocates a single full-sized frame buffer in addition to the partial buffers. This unnecessarily consumes a lot of RAM and defeats the purpose of the partial frame buffer scheme.
Hi all.I used STM32CubeIDE 1.3.0 with TouchGFX 4.13.0 Designer on STM32F429I_DISC1.I am testing load bmp file from USB disk. project is made from cubeide.I followed below doc.touchgfx-engine-features/caching-bitmapsand i added touchgfx_generic_init into TouchGFXConfiguration.cpp.uint16_t* cacheStartAddr = (uint16_t*)0xD0030000; uint32_t cacheSize = 0x300000; //3 MB, as example void touchgfx_init() { Bitmap::registerBitmapDatabase(BitmapDatabase::getInstance(), BitmapDatabase::getInstanceSize()); TypedText::registerTexts(&texts); Texts::setLanguage(0); FontManager::setFontProvider(&fontProvider); FrontendHeap& heap = FrontendHeap::getInstance(); (void)heap; // we need to obtain the reference above to initialize the frontend heap. hal.initialize(); HAL& hal = touchgfx_generic_init<TouchGFXHAL>(dma, display, tc, 240, 320, cacheStartAddr, cacheSize, 1); }but it makes some errors and memory full, anyway i tried but could not.so
Hello,I am building a custom board based on the STM32F746's discovery. I have already used the STM32CubeIDE 1.1.0 with TouchGFX 4.12.3 om discovery and everything is working fine.Custom board has the same hardware with discovery but we are using different TFT screen (attached PDF).The TFT on my board displays:I am not sure about the LTDC parameters based on the new TFT. I have set the below:void MX_LCD_Init(void) { LTDC_LayerCfgTypeDef pLayerCfg; /* De-Initialize LTDC */ HAL_LTDC_DeInit(&hltdc); /* Configure LTDC */ 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 = 49; hltdc.Init.VerticalSync = 4; hltdc.Init.AccumulatedHBP = 89; hltdc.Init.AccumulatedVBP = 33; hltdc.Init.AccumulatedActiveW = 889; hltdc.Init.AccumulatedActiveH = 513; hltdc.Init.TotalWidth = 929; hltdc.Ini
HiI am using TouchGFX 4.12.3 with STM32F746G-DISCO Board. I have already installed STLink and STCubeProgrammer.I am able to GUI run on simulator but not on target . Please check below logs.--Thanks Gurpreet Singh
Hi,I am migrating my software from STM32F778AI to STM32H747XI due to performance issues.. I decided to handle basic operations and display on M4 core (include TouchGFX) and heavy calculations on M7 core.I use external SDRAM and enabled FMC and initialized and it is working.My MIPI-DSI commands working because I able to initialize my display (and tearing effect pin) but when I try to refresh the display the display don't change but I get HAL_DSI_EndOfRefreshCallback interrupt.This exactly code working on my STM32F778AI so I don't think it is initialization issue but I think it is LTDC/DSI not working on M4 core.Is there any special settings that I need to add to make DSI+LTDC with External RAM on M4 Core?DSI:static void MX_DSIHOST_DSI_Init(void) { /* USER CODE BEGIN DSIHOST_Init 0 */ /* USER CODE END DSIHOST_Init 0 */ DSI_PLLInitTypeDef PLLInit = {0}; DSI_HOST_TimeoutTypeDef HostTimeouts = {0}; DSI_PHY_TimerTypeDef PhyTimings = {0}; DSI_LPCmdTypeDef LPCmd = {0
Working on a STM32H7B3I-DK with a LCD16 (565) frame buffer. I would like to render a text field in an offscreen bitmap to be able to show it in a ScalableImage. For this I will use the drawToDynamicBitmap function. It works if the dynamic bitmap is created as Bitmap::RGB565but then the text is drawn on a solid background.If I want a transparent background I need to create the dynamic bitmap with ARGB8888. After some search and tries I found that I had to register a LCD32bpp class and set it as Auxiliary LCD in the hal. The first problem is that the 32bits pixels are not handled by the STM32DMA.cpp code provided (only RGB565 and RGB888 are supported). After some tweak in the SetupDataCopy(blitOp) function in this source file, I managed to have the DMA2D to write correctly in the dynamic bitmap with 32 bits pixels.... but this only works when I run the code in the debugger with a breakpoint in the SetupDataCopy. If I let it run full speed I only get the first 3 letters properly rendered
Hi,I am working on a project using STM32F767 to collect image data from a MT9p031 sensor. The camera runs in snapshot mode, image data is stored in external SDRAM (bank2, address from 0xd0000000). After image is collected I send the image data through USB VCP to PC.When I test the image data with sensor's internal test pattern, I see the collected image is in a strange misaligned way. the image seems scrolled over both horizontally and vertically.I am using stm32CubeMX to generate MCU config.The image size I am testing with is quite big so DMA is working in double buffer mode. in cubeMX the DCMI DMA fifo is enabled. below is DCMI init config: hdcmi.Instance = DCMI; hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE; hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_FALLING; hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW; hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW; hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME; hdcmi.Init.ExtendedDataMode = DCMI_EXTEND_DATA_12B; hdcmi.Init.JPEGMode = DCMI_JPEG_DI
Hi ST,How to reduce RAM for Screen.Ex: I defines 3 buttons into custom container and add this custom container into screens. I just want to show 1 button in once screen. How to reduce RAM for 2 buttons not use of custom container?Please help, thanks!
I get the STM32F769IDiscovery board, the B-LCD40-DSI1 is the display daughter board.The B-LCD40-DSI1 data sheet without working temperature and humidity range, I'm not sure is this display board suitable for industry application, where can I find those parameters?
Hi,I have a 32L4R9I-Discovery and i want to download Touchgfx demo to it, but when i program Touchgfx hex, ST-LINK Utility report error, i know i neet to download extern flash MX25LM51245G, but i can't find hex on the Internet,so i open MX25LM51245G project and want to program creat hex by Keil5,but when i program the KEIL 5 report much error.So how can i program MX25LM51245G project to creat hex, or can someone give me MX25LM51245G hex so that i can use Touchgfx demo, the 32L4R9I-Discovery is still not work.:sad_but_relieved_face: .Thank you very much for all your help!
Hi there. I'm working to create a menu interface, it must works like a tree, and for that, i'm trying to use a scrolllist container. I'm already able to click on each item and already have a callback handler for this. The problem i'm trying to solve is, when I click in an item on the list, I need it to update it's items and also change the number of items on screen. scrollListExample.removeAll(); scrollListExample.invalidate();It successfully removes all the items on the list on screen.How could I initialize the same scrollListExample again on screen with different items?
I'm struggling to create a simple touchgfx based project with cubemx for my F769I Disco board.I thought this is a simple job since there is nothing special. But I got and get stuck at several places.I created a new project using Board Selector and selecting "32F769IDISCOVERY", adding additional software "touch gfx"Now "LTDC Blending Factors: PAxCA not required for RGB565/RGB888" is redGenerating code created warning : "These IPs still have some not configured or wrong parameter values: [...TouchGFX..4.13...]"Application Structure seems to be set to "Advanced" otherwise files are missing in IAR 8 project.IAR 7 project is not compilable since intrinsics h is included in wrong order. (with IAR 7.70)Default save directory is inside user folder, this is not working since touchgfx does not support spaces in the pathSeems I have to open the created Touchgfx project in TouchGFX Designer and press "Generate Code"But after fiddling around all these issues, the project does not fit into the RAM,
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.