Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I started the project configuration from scratch, using STM32CubeIDE 4.20.0,STM32CubeMX 6.6.1TouchGFX 4.20.0 Timer 7 is used for Systick.int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM1_Init(); MX_FMC_Init(); MX_LTDC_Init(); MX_TIM4_Init(); MX_QUADSPI_Init(); MX_DMA2D_Init(); MX_CRC_Init(); MX_TouchGFX_Init(); /* Call PreOsInit function */ MX_TouchGFX_PreOSInit(); /* USER CODE BEGIN 2 */ HAL_LTDC_SetAddress(&hltdc, (uint32_t)framebuffer, LTDC_LAYER_1); HAL_GPIO_WritePin(LCD_EN_GPIO_Port, LC
I am trying to export a project from Storyboard to Cube IDE. I have seen a few tutorials through IAR IDE but have not seen aby regarding Cube IDE. I have exported the header file from storyboard, but am at a lost at what to do next.
..
Hi all, Gfx can generate L8_RGB565 & L8_ARGB8888 format bitmap, but each pixel retains one byte of data, Bmp RLE8 format can further compress pixels of the same color. Why doesn't GFX store in this way ? I want to generate a 256-color BMP image with alpha information like L8_ARGB8888 without Gfx, what tools should I use ?
I have a setting which can be manually or automatically adjusted/changed. A toggle button selection choses manual or automatic adjustment. Manual adjustment is done using a slider widget. When the toggle button is selected to automatic position, slider position will be adjusted programmatically based on auto adjusted value. In this case, I want slider to be disabled for manual adjustment i.e. slider head shouldn't move if attempted to slide manually. How can I achieve that?I tried by making a grey image appear on top of slider when automatic selection is made hoping that slider will not move because this grey image is on top layer now compared to slider. Moreover, the grey image gives slider disable appearance as well. But it did not work. Please let me know.
Now, we can get current consumption on the LCD display. However, when we connect the board with PC via 5 different Micro USB cables with STM32CubeMonPwr software (in two different PC with windows 10 system). Both 2 PC cannot SELECT BOARD in STM32CubeMonPwr software. So we cannot show the power data on PC. All the board hardware connections are follow the ‘GETTING STARTED’ from menu. (connect a target board suing basic connectors)Since we changed 2 PC with 5 different cables, the results are still cannot SELECT BOARD. Can we said the fault is not relate to PC & cable? And could you get me any advice for connecting ST board with PC?
Hello,I am trying work with the demo of touchgfx designer with my stm32g071rb and the x-nucleo-gfx01m2.The example project works fine if I flash it via TouchGFX designer.When I import it in stm32cubeide, after setting up the external loader found in the touchgfx directory, i get the following error:Erasing memory corresponding to segment 0: Erasing internal memory sectors [0 34] Erasing memory corresponding to segment 1: Erasing external memory sector 0 Download in Progress: File download complete Time elapsed during download operation: 00:00:02.135 Verifying ... Error: Data mismatch found at address 0x90000000 (byte = 0x00 instead of 0xD2) Error: Download verification failed Shutting down... Exit.I've also tried to use the stm32programmer but i get the same error.How can i fix this? this is the example project i think it should work without all of these issues
I'm in the process of evaluating options for a 5" display. We're looking at using the FT81x controller with lvgl or TouchGFX. I want to find out if TouchGFX can be used to drive the FT81x chip.I do know lvgl can do something along those lines, but we have knowledge of TouchGFX in-house (used in personal hobby projects). If we can use the FT81x with a L4 series microcontroller and TouchGFX it would be ideal.Do libraries exist to marry TouchGFX with the FT81x chips? Is it possible to write code to do that in a relatively short time if not?
Hi!In my project I added a text area with one wildcard. I checked option "Use wildcard buffer", but left "Initial value" blank. Then in setupScreen() function I wrote some text to the wildcard buffer using Unicode::strncpy(). After starting my project in simulator to my surprise the text showed up with spaces displayed as fallback characters (?). I added some characters to the wildcard characters space was there too. I tried everything and in the end I set the initial value of the text area for some text with space in it. Then the wildcard text was rendered correctly with spaces. Am I doing something wrong or is it some sort of bug? Regards,Piotr
I use stm32f767 and implement one button in screenthe reaction of the button such as change screen color or run functions not workswhy?
We have the STM32L4R-Eval kit revision 01 as well as revision 02We want to use STM32L4R9AI in our prototype, which was used in the above Eval.The difference between these two versions looks like in revision01 U5 SRAM is populated but not working correctly; in revision02 it wasn't populated. Please Confirm.We want to use STM32L4R9AI in our prototype, which was used in the above Eval and our prototype is not ready yet, So, we want to start our development using eval-kit and our product requires 800x480 resolution TFT LCD on RGB interface.This is the list of challenges we are facing as per below:1) As per our display resolution required frame buffer size for double buffering is around 2MB that can not be fit into internal RAM(640KB). So want to use external SRAM.Now, we have two options:2) Option1: Use external SRAM connected to OCTO SPI2 SRAM(U5 IC) but it was not originally populated because of some limitations as per its datasheet.-> Is this limitation specific to the Eval kit only
Hi Community,I have followed the following link https://www.youtube.com/watch?v=suMytEyQTP4&t=774s and got the output (SPI display interfacing with Touch GFX). Now I wanted to use the single framebuffer strategy to get the same but no output. So, anyone knows what to do with the single framebuffer strategy?/Vins
TouchGFX Designer is there a setting to set the default zoom value?I would like the value to be set to value other than 100% when opening a project
Hello,I really appreciate the ability to export/import custom container from/to project. However, is it possible to export container using command line? I have a look at tgfx.exe, but it seems there is not command for that.
On a screen, I use the function handleGestureEvent. Inside this function, I have an if-else to differentiate between horizontal and vertical swipes:void handleGestureEvent(const GestureEvent& event) { if (event.getType() == GestureEvent::SWIPE_HORIZONTAL) { /* ... */ } else if (event.getType() == GestureEvent::SWIPE_VERTICAL) { /* ... */ } }(Could be else instead of else if, but for clarity...)The problem is that from many swipes I get two gesture events: one horizontal and one vertical, both with the same x- and y-coordinates. I.e. handleGestureEvent is called, the if-branch is activated, then the function is called again and the else-branch is activated. event.getX() and event.getY() yield the same value in both calls.I have neither found a possibility to set the thresholds for detecting a gesture as vertical or horizontal nor have I found the implementation oft registerDragEvent.I use TouchGFX Designer 4.20.0.
For a job commissioned by a client, do I need to add a widget on a page to Run-time.If I don't find a solution, I'm forced to abandon TouchGFX (which I find very versatile), and migrate to another platformIs there an example?Is there any documentation on this?Best regardsDomenico
LTDC_InitTypeDef LTDC_InitStruct; LTDC_Layer_InitTypeDef LTDC_Layer_InitStruct; Delay_us(2000000); LTDC_LayerCmd(LTDC_Layer2, ENABLE); LTDC_ReloadConfig(LTDC_IMReload); for(int i=0;i<=184;i++){ Delay_us(1000000); LTDC_Layer_InitStruct.LTDC_CFBLineNumber = i; Delay_us(1000000); }
The project in youtube https://www.youtube.com/watch?v=suMytEyQTP4&t=616sis not working in cube IDE. I tried it using cubeIDE v1.10.1, GFX v4.20.0, cubeMX v6.6.1. The code compiles no errors. But the TFT shield is blank ! Can you help resolve this useful application. My implementation project zip file attached.
I was double checking SPI speeds and functionality and noticed SPI pins switching state when they shouldn't be. I narrowed it down and discovered this only happens when the memory swap for the FMC LCD is enabled. There are some other posts from me about getting the LCD to work. If I don't do the memory swap, this doesn't happen, so I'm pretty sure it has to do with writing to the FMC memory location.In the image below I circled the spots where some of the SPI pins toggle during LCD writes. Zooming in on the circled spots the pins (PB5 and PA5) will change state about 3 times while writes to the LCD are happing. In the image D0-D7 are connected to the LCD data lines, channels 0-4 are connected to the SPI data lines. Why does this happen and how do I prevent it from happening? Thanks
I have setting a button with it's interactionWhen I touch the button is detected (the picture of it changes) but the interaction of the button (calling function) not worksI tested in keil and stm32cubeide but the problem doesn't solvedcan everybody help me?I write in virtual function in screenViewBase.hpp file
Hi,I am trying to implement simple GUI with TouchGFX 4.20 on STM32F303 MCU. I have limited amount of memory for GUI. Even few kBytes important. When I look memory consumption of TouchGFX I see weird functions that I don't call or not to use some widgets that may cause implicitly call them. I marked two of these functions on the screenshot below. Is there a way to prevent holding these functions on flash. It would also great to know how to reduce flash consumption of touchGFX.(I disabled textureMapper and I use partial frame buffer) .
This happens at randomly. Spent more than a month trying to figure out the issue and never suspected DWT. When I commented out DWT everything works fine now. Can someone educate me on why this is happening and how to avoid it? Thank you for your time.
Hi,I have integrated with lwIP and freeRTOS a VNC server on a STM32H757-EVAL.A VNC client works fine and I can see on it the first frame buffer drawn by the application; according to the VNC standard, the server should send a "new tile" (a square of pixel) to re-draw the frame buffer changed (if something happens and change it - i.e. slider, button clicked, etc..).Is there any function or method to understand which pixel (or pixelS) has changed (in term of X and Y coordinates) from the previous frame buffer?In this way, I can recreate a new tile and send it to the VNC client without re-send every time the whole frame buffer using less bandwidth.Thanks for your help.Regards.
I am trying to use the STM32H723 as a video output (tying the LTDC pins to an ADV7115 to convert them to HDMI). The idea is to read the bus traffic of an old 8-bit computer and generate the display from that traffic (as part of other duties). My concern is that the visible-area display period on the source computer might not match the display period on this new display, so I'd like to sync them up. I don't want to triple-buffer because that would be an unacceptable delay between the 'native' and this new video output.There's a note in the reference manual:When the LTDC is enabled, the timings generated start with X/Y = 0/0 position as the first horizontal synchronization pixel in the vertical synchronization area and following the back porch, active data display area and the front porch.When the LTDC is disabled, the timing generator block is reset to X = total width - 1,Y = total height - 1 and held the last pixel before the vertical synchronization phase and the FIFO are flushed. The
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.