Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi Guys,So with TouchGFX we can end up with lots of graphics data that resides in external flash.ST-LINK_gdbserver I think uses the ST Programmer to flash the elf which flashes the normal flash and the external flash.If there is a lot of data then this external flashing takes a long time and most of the time this data is not changing.Is there a way of setting things up so that ST-LINK_gdbserver will only flash certain sections to avoid this repeated flashing of exactly the same data, its pretty annoying to change one line of code and then have to wait minutes for it to program the external flash.
Hello,Is it possible to get callback on my view from custom container which is in another container? And how to do that?I've tried to do like this. Create a callback for button:Here goes when callback gets call. And I create an object of other class to call function:And goes to this function:The problem with this method is that does not perform commands like "setXY" and etc. but only touchgfx_printf works. What I do wrong?
Hello Everyone,I'm using the STM32F429I-DISC1 Development Board, I'm new to TouchGFX and I'm trying to control the TFT LCD on the Board directly with code. I have created a basic screen with black background and printed "Hello, World!!" in the center of the screen. Now I want to write data directly to the screen buffer created by TouchGFX and control individual pixels using code. Is this possible to do? I'd appreciate any help.Thanks in Advance.
Hi,I'm using STM32F429I-DISCO board and I'm newbie in TouchGFX Designer. I created an app that contains graph and when the graph is clicked, i want to send data through usb virtual com port. I followed these steps:1- Started TouchGFX Designer, created the design and added click interaction to the graph with virtual function action.2- Generated the code and included the project to STM32CubeIDE by double clicking ".project" file in the STM32CubeIDE directory3- Dragged and dropped the relevant ".ioc" file to the workspace by linking them relative to project location.4- Renamed the ".ioc" file with the workspace name since STM32CubeIDE expects the same name with the workspace folder. I renamed it from STM32CubeIDE by right-clicking on it, not directly from the filesystem. Original name of the ".ioc" file was "STM32F429I_DISCO_REV_E01.ioc", I renamed it to "STM32F429I-DISCO.ioc"5- I opened the ".ioc" file and enabled freertos reentrant then generated the code and uploaded.So far so good, I
I am having trouble figuring out this seemingly simple thing. Assuming I have the coordinates of a touch point in a touch screen, how do I draw pixel to that location?
Hi all,I am facing an issue with TouchGFX Gui. It seems that the view area of a Flex Button is not the same as its touch area. Maybe anyone have an idea what is going wrong or could give a hint for further evaluation.I am using TouchGFX 4.18.0 Gui on an STM32F745 platform or I run the Simulator on Windows. But the issue apppears on both platforms.I have a screen with a full size Button in the background (green marked). In the Front (top level) I have a container with 4 Flexbuttons (blue with black border) and a little space between them (yellow)In Generell it works. Please watch the mouse pointer in the follwoing pictures, for the Click/Touchpoint. When I push the backgound Button, the button turns red, as expected.When I push one of the front buttons the corresponding button turns red, as expected. But there are areas inside the front button, were the background button is pressed instead of the front buttons. Watch the touch point in the next image. I pushed the Front button, but
I have a simple repeat button that increments a value as you hold it in. However, I would like to change the repeat button on release so that the next time it is held in, it decrements the value.I'm new to object orientated programming as well so a complete answer will be highly appreciated. Thanks
I use fmc to drive LCD, and the LCD initialization can be used normally. The program is stuck here. What should I do?
I noticed that the "video_SampleVideo2_216x216_bin_start" variable is not declared in the TouchGFX Designer-generated video playback example. Instead, it is being used in the "VideoDatabase.hpp" file as 'extern const uint8_t video_SampleVideo2_216x216_bin_start[];'. I'm curious where this variable is defined.If possible, could you please provide a detailed explanation of where and how this variable is defined?
Hello,I am using the STM32H7B3I-EVAL evaluation board to develop an understanding on using a custom board that has an LCD display. I am dissecting the code and there is something inconsistent that I am trying to understand.My steps were as followed:1) Use CubeMX to bring up the code from scratch, adding the TouchGFX 4.20.0 software package. 2) Open the ApplicationTemplate.touchgfx.part file to generate the code for the UI.3) Made a basic display UI (one screen with a red background, just to test). The code works without issue, but I am looking through the TouchGFX folder to understand the code and there is a file created:TouchGFXGPIO.cpp ( I have attached it).It's claiming it's using 4 signals (VSYNC_FREQ, RENDER_TIME, FRAME_RATE, MCU_ACTIVE), which toggles the following pins:// VSYNC_FREQ - Pin PA4// RENDER_TIME - Pin PG13// FRAME_RATE - Pin PB15// MCU_ACTIVE - Pin PG12On the evaluation board, those pins are used for different features entirely.PA4 -
Hi, I am a Korean developer.So, I use Korean to mark the text.But there's a little problem.First, after organize the UI on the canvas,When I run the simulation, the position of the Korean characters(Text Area) does not exactly match the position I set, or the font looks a little different.Even if I use other Korean fonts, this phenomenon occurs.How can I solve this problem?Used Fonts: Noto Sans KR
Hello,I am in the process of making my own circuit board and using an f767 with 144 pins. I have integrated a QSPI and a 40-pin FPC for an 800x480px display. The LTDC is in RGB565. Unfortunately, I don't have any pins left for the SDRAM. So the question is, do I need the SDRAM? Can the QSPI replace it?
Hello everyone,I'm using Nucleo-STM32L476RE board to print some datas on a ILI9341 LCD 2.8" screen.By using STM32CubeMX, I added the software pack X-CUBE-DISPLAY. But after generating the code on the STM32CubeIDE, I am not able to program correctly the board since I cannot find some sample of usage of the BSP functions.Can someone help me find a sample project showing how to use this library (especially for ILI9341).Thanks in advance.
..
I'm trying to run the JPEG_EncodingFromFLASH_DMA example and the HAL_JPEG_GetDataCallback & HAL_JPEG_DataReadyCallback never executed.If I try the polling method, the process is successful.I've disabled the D-Cache & I-Cache.
Hello,I'm trying to share buffer between files but sometimes I get value sometimes not. And this is how I do this.First of all I have button and inside button is text when I click the button it shows modal window and there is keypad. By keypad I write some numbers and click save. When I click "0°C" shows keypad and KeypadSelection set to one:I save text like this, it copies to KeypadBuffer:void Keypad::savedText() { char* buffer_new; buffer_new = getText(); Unicode::strncpy(KeypadBuffer[KeypadSelection], buffer_new, Unicode::strlen(buffer_new) + 1); viewPtr->CloseButtonAction(); }And by extern I pass buffer between files. And here change correction value if(Unicode::strlen(KeypadBuffer[1]) > 0) { memset(&correctionvalueBuffer, 0, CORRECTIONVALUE_SIZE); Unicode::strncpy(correctionvalueBuffer, KeypadBuffer[1], CORRECTIONVALUE_SIZE - 1); correctionvalueBuffer[CORRECTIONVALUE_SIZE-1] = '\0'; correctionvalue.resizeToCurrentTextWithAlignment(); memset(&KeypadBuff
Hi,As the TextArea::setBaselineY() is not mirrored with a getter TextArea::getBaselineY() I wonder whether it is a design decision or simply overlook.Thanks
Hi I am trying to implement a single increment counter driven by a button press. I am using the STM32F429I-DISC1 evaluation board. I have created a GUI in touch GFX and that is displaying the counter number and increments when I press the blue button on the evaluation board. The problem that i'm having is that if you push and hold the pushbutton down then this keeps incrementing the counter until i release it. What i want to achieve is that a single press of the push button (regardless of duration) only increments the counter only 1 until it is released. Then it will increment again when it is pushed again. I have written a simple case and switch statement to detect the pin high but I am struggling to restrict the counter to one increment per push. Here is the switch and case statement (feel free to suggest another method is this is not the correct way to implement this. button_val = HAL_GPIO_ReadPin(GPIOA, B1_Pin); // Button val is the state of the pushbutton switch (button
Hi,Is there a possibility for TextArea to ignore translating its text upon language change ?I thought I could achieve that by using a wild card and setting raw string (ie TextArea::setWildcard1 (UnicodeChar* value)) but it did not work as I hoped.As I understand it, after calling Texts::setLanguage (), GFX translates all texts/strings assigned to TextArea(s) to font assigned to new language.I miss something like TextArea::setIgnoreLanguageChange ( bool ignore ).Thanks
Hi,TextArea allows to align text in horizontal direction. How to achieve the same alignment in vertical direction ?Thanks
Hello,I am facing a glitch issue when the frame buffer is switching with a custom widget. Both frame buffer seems to be initialized when screen enter. A few part of the area is redraw on one framebuffer. Then I have a few update on the second framebuffer, but is does not fully overlap the update done on the first framebuffer. The consequence is that part of the area is not redrawn correctly and the image appears to move a little bit. I put some log showing the rect updates in the draw function within the framebuffer. Here is the output.The format is rect([A,B],[C,D] - E) where A is rect.x, B is rect.right(), C is rect.y, D rect.bottom() and E is address of framebuffer locked.Hope it is enough to try to understand the issue. My code is based on the QrCode example.Regards.[13.952] rect([0,128],[0,128] - 0x24000000) FB1[14.002] rect([0,128],[0,128] - 0x24025800) FB2[
I am facing performance issue due probably to my way for invalidation on data update. I have widget inside container that are not visible. When I have a data change, I update the content of the widget and invalidate the textarea for example. But this text area is not display on the screen as inside an invisible container. However, the region is still redrawn.Was is the best way to avoid that ? Is there a way for the widget to know if somehow it is really displayed or not ? I often use container to avoir set visible to false a lot of widget that are working together. so the widget visible property is set to true. it's "parent is not" or the parent of the parent is not.Hope you can help me about that.regards
Is it possible to show existing web page on lcd? On custom board I have RAM, QSPI memory, WIFI module.
Hello, I am facing problems with DMA and DCMI . Since DMA has ability to generate multiple block transfers with single configuration, it means i can transfer image larger that 0xFFFF.So I writen code that would repat my DMA transfer for as much line as I have in my image, and transfer size would be one line pixel count.I configured sensor for 304x304 image, and with DMA i get transfered exactly 304*304 of u16 data ( I prealod array with 0xFFFF and see where tranfer is ended)What is strange, what data alignment is completely incorrect, while with FPGA, image is perfect and looks as expected ( i have one big light source in the middle)This is my DMA code in LLLL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPDMA1); LL_DMA_SetChannelPriorityLevel(GPDMA1,LL_DMA_CHANNEL_12,LL_DMA_HIGH_PRIORITY); DMA1_TR1 = LL_DMA_DEST_ALLOCATED_PORT0|LL_DMA_DEST_HALFWORD_PRESERVE|LL_DMA_DEST_BYTE_PRESERVE|LL_DMA_SRC_BYTE_PRESERVE|LL_DMA_DEST_INCREMENT|LL_DMA_DEST_DATAWIDTH_WORD|LL_DMA_SRC_ALLOCAT
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.