Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,i am looking about affordable LC Displays with intergrated STM32 controller to evaluate the cabapilities of TouchGFXCurrently i only knew the displays from Reverdi. But i would like to compare them with others.Basic Requirements are:- Screen Size beteen 4 - 7 " - Should have native support by TouchGFX with templates - Mut be available for private personsDo you know other manufactureers providing such type of combuned/intelligent displaysThanks in advanceGreatingsMArc
cubeide 2.0.0 start touchGFX project, cross compiler prefix: ? cross compiler path: ? MX be removed, how to setup MCU component? first start from MX?
In the setupscreen function:Screen1ViewBase::setupScreen(); digitalHours = digitalClock1.getCurrentHour(); digitalMinutes = digitalClock1.getCurrentMinute(); digitalSeconds = digitalClock1.getCurrentSecond();and in the handletickeventScreen1View::tickCounter++; if (tickCounter % 60 == 0) { if (++digitalSeconds >= 60) { digitalSeconds = 0; if (++digitalMinutes >= 60) { digitalMinutes = 0; if (++digitalHours >= 24) { digitalHours = 0; } } } // Update the clocks digitalClock1.setTime24Hour(digitalHours, digitalMinutes, digitalSeconds);But as shown below the time is the initial value (current time was 22:47) how can we fix it.
one box in the screen, then create a button on box, meant to change the color of box, when button pressed; simulator -> OK; but download to board, running denormal , when button pressed, finger off, button not release, still pressed state, why? (use STM32F429I_DISCO BOARD CUBEIDE)
I was following the tutorial in the link: https://www.youtube.com/watch?v=vy1c1LbypuM&list=PLfIJKC1ud8giOsk-C4BCOwSHtbXqTNb1W&index=3 I couldn't gett the upclick to count greater than 9 and below 0. the screenView.hpp and cpp as follows: hpp: #ifndef SCREEN1VIEW_HPP #define SCREEN1VIEW_HPP #include <gui_generated/screen1_screen/Screen1ViewBase.hpp> #include <gui/screen1_screen/Screen1Presenter.hpp> class Screen1View : public Screen1ViewBase { public: Screen1View(); virtual ~Screen1View() {} virtual void setupScreen(); virtual void tearDownScreen(); virtual void downclicked(); virtual void upclicked(); protected: uint16_t counter = 0; }; #endif // SCREEN1VIEW_HPP cpp: #include <gui/screen1_screen/Screen1View.hpp> Screen1View::Screen1View() { } void Screen1View::setupScreen() { Screen1ViewBase::setupScreen(); } void Screen1View::tearDownScr
I have an animated image, and I want to make it rotate around a circle. I assume I need to use a container and somehow integrate the TextureMapper into it, but I’m not sure how to do that.
I'm having a hard time understanding when to use Unicode::snprintf vs Unicode::strncpy, also because I'm seeing different behavior when it comes to wildecards.I have a font where I've set various wildcard characters (see below)Now, I have a text area with a buffer of 10.If I use Unicode::snprintf(myTextBuffer, MYTEXTTEXT_SIZE, "%s", "myText");I'm seeing the text on the touchscreen as ???, so it basically falls back to the fallback characters.Instead, if I use Unicode::strncpy(myTextBuffer, "myText", MYTEXTTEXT_SIZE); I correctly see myText as the textWhy is that?
I’m working on an STM32F746-based project. I know how to port ThreadX to this board, and I want to use the ThreadX source available on GitHub. My question is about integrating ThreadX with TouchGFX. Specifically, I want to understand: What steps are needed to make TouchGFX run on top of ThreadX? Do I need to modify the TouchGFX-generated code or middleware when using ThreadX from GitHub? How should I create and manage the TouchGFX task inside ThreadX? What is the recommended project structure for combining STM32F7 + ThreadX (GitHub version) + TouchGFX? Are there any example projects or references for this integration? Any documentation, sample projects, or practical guidance would be very helpful.
Hello, I am a beginner with STM32 and LTDC and I would like some guidance. I have a STM32F429I-DISC1 board and an external 7" TFT LCD panel, model TD070WGCB2 (854 x 480, 24-bit RGB, HSYNC/VSYNC/DE/NCLK).According to the panel datasheet, it uses a parallel RGB interface with: R0–R5, G0–G5, B0–B5 HS (HSYNC), VS (VSYNC) DE (Data Enable) NCLK (pixel clock) VDD = 3.3 V The backlight is CCFL and I am planning to drive the backlight from the original board / inverter, not from the STM32.With the STM32F429, I only want to generate the video signals (RGB, HSYNC, VSYNC, DE, CLK) and show graphics created with TouchGFX. My questions: Is the STM32F429I-DISC1 LTDC peripheral suitable to directly drive this panel (RGB 24-bit, 854x480)? Do you have any recommended LTDC timing settings (pixel clock, HSYNC/VSYNC, back/front porch) for this panel? The datasheet suggests a pixel clock around ~33 MHz and provides timing values, but I’m not sure how to correctly map them into CubeMX LTDC fi
Hi,I have a Riverdi STM32U5A9 that I'm trying to get converted to ThreadX to be able to use the onboard SD Card. The application was fully working with FreeRTOS, but after porting over to ThreadX, I get a Hard Fault on the first tick of the first transition to the first screen. From what I can tell, everything has been initialized. The TouchGFX project files are re-exported after the RTOS being set to ThreadX. I've increased the memory allocation, and adjusted the TX_TIMER_TICKS_PER_SECOND to 1000 as documented in the TouchGFX documentation. Everything is being done through STM32CubeIDE and TouchGFX. I've tried it on STM32CubeIDE version 1.15, 1.16, and 1.19. I'm using 4.24.0 for TouchGFX. Any help or clues is greatly appreciated. Thank you!
Hello.I have developed a firmware for Riverdi_121STM32H7.The firmware has Italian and English texts,but we planned to develop a version for Chinese customers, Myanmar, and other non european customers. My doubt is: Unicode::atoi and Unicode::sprintf("%d" produce number in other language, don't ? Thakyou for the answers ...
I would like to read some data from the EEPROM on initialization to use in the TouchGFX application.I currently have an API that can request read/write operations from TouchGFX to the backend.At the moment, I've implemented it in the Model.hpp void bind(ModelListener* listener) { modelListener = listener; if (!storageInitialized) { initializeFromStorage(); storageInitialized = true; } }withvoid Model::initializeFromStorage() { #ifndef SIMULATOR StorageResponse_t wr = Storage_Request(STORAGE_CMD_READ, EEPROM_ADDR_STRUCT_2, &struct2, sizeof(struct2)); wr = Storage_Request(STORAGE_CMD_READ, EEPROM_ADDR_STRUCT_1, &struct1, sizeof(struct1)); #endif }but I'm not sure if it's the correct location.I just want to send the read EEPROM command on the first load of TouchGFX and never again
When sliding the screen in TouchGFX, some widgets may experience rendering issues causing flickering. What could be the root cause, and are there any solutions?The images are all in the external QSPI Flash. Could this be the reason?
I have a custom board with a STM32H735 and I have several issues with it building with clang and TouchGFX 4.26 for vscode. It works fine with 4.25 and GCC. I'm putting this migration on hold for now as many of these tools are still experimental.What I now want is to first get a demo project working on the STM32H735G-DK board in vscode with cmake and clang.I tried it this way:in TouchGFX Designer 4.26 I select my board and select Dynamic Graph example. This builds and runs in Designer. I open the IOC file in STM32CubeMX V6.15.0 and change toolchain to CMake+ClangI build in VScode using STM32Cube plugin (pre-release)I get build errors [main] Building folder: C:/TouchGFXProjects/MyApplication_24/build/Debug [build] Starting build[driver] NOTE: You are building with preset Debug, but there are some overrides being applied from your VS Code settings.[proc] Executing command: chcp[proc] Executing command: cube-cmake --build C:/TouchGFXProjects/MyApplication_24/build/Debug
I have been developing code between TouchGFX 4.25.0 Designer and STM32Cube IDE 1.12.1, with the STM32H750DB-DK development kit.I initially generated the code firstly using TouchGFX, created from the Blank UI using the STM32H750B-DK board setup. I have been successfully been able to create an interface with TouchGFX and then develop the functions within STM32Cube IDE. I have been debugging successfully within the STM32Cube IDE and have created a nice GUI so far. However, using the generated IOC, that was created using TouchGFX. If I generate the code from the IOC, with minimal changes such as adding TIMER7, it causes the LCD to go to a white screen. After I generate the code from the IOC, I regenerate the code on the TouchGFX.I require to edit the IOC as I need to add a Timer to control the backlight brightness, but I can't seem to get that far due to generating the IOC causing the white LCD screen problem. I have had to revert my code back at every attempt, to prevent the pro
Hi,I am working on some screen transitions. I need to make my "page" transitions move and fade in/out together in the process.Below are the issues I found=========================For screen tranisition=========================I can start the screen fade animation on its own.But if I start the screen transition together, this fade animation is not working for some reason.==========================For container mix-in animation==========================I can start both fade/move animation together with the container.But this way all my "pages" would need to be inside a "custom container" and I will only have 1 "screen"All my hw key event will be jammed inside my MainScreenView, and introduce a mess in code structure. Both of the methods require me to start fade animation MANUALLY for each object in the "page" which is very inconvenient.But I can't find a way to do it with a for loop using the forEachChild() function.Since the function gets a "Drawable" object, instead of "
Hello,I have an STM32F777 with FreeRTOS and TouchGFX. An ST7789V2 display is controlled via SPI with a partial framebuffer. After a certain time the TouchGFX task gets stuck in the function “getBlockForTransfer(Rect& rect)” in the line “assert(state[sendingBlock] == DRAWN);”(File: FrameBufferAllocator.hpp).Has anyone ever had something like this? How can I isolate the error why this happens?The screenshot shows the point where the task hangs.
Hi, I am creating a DynamicBitmapCreateExternal() for RGB565, but the image shows up faded. Is there any fix for this? I made sure to set cache for it. I also tried for L8 and it didn't show.
Hi,I am trying to copy the screen from one Touch GFX designer project to another, but i am unable to do so.Is it really possible to do it, because creating the same screen which is already available in another project is tiresome work.Can you please suggest?ThanksNagaraj
This is one of those problems where I spent more hours than I care to explain.I've got a text box configured with a wildcard:In Designer, I've got a typography set to Voltage, 20px:Here's the typographies:Screen1ViewBase.cpp entry looks like this: textCellVoltage.setPosition(191, 0, 67, 24); textCellVoltage.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); textCellVoltage.setLinespacing(0); Unicode::snprintf(textCellVoltageBuffer, TEXTCELLVOLTAGE_SIZE, "%s", touchgfx::TypedText(T___SINGLEUSE_B9IA).getText()); textCellVoltage.setWildcard(textCellVoltageBuffer); textCellVoltage.setTypedText(touchgfx::TypedText(T___SINGLEUSE_F28R)); textCellVoltage.setVisible(false); ImplantData.add(textCellVoltage); Screen1View.cpp looks like this:void Screen1View::enableScreenElementsAfterInterrogation() { tab2.setAlpha(255); tab2.invalidate(); textCellVoltage.invalidate(); Unicode::snprintf(textCellVoltageBuffer, 20, "%s", "123"); textCellVoltage.setWildcard(textC
I'm using NemaGFX on the STM32U5G9J-DK2 kit without RTOS and without TouchGFX, which works very well.I've created lightning-fast graphical widgets on that kit.Now I have an STM32H7S78-DK and I'm having trouble getting *all* NemaGFX functions to work properly.Many functions work properly, but the functions that draws filled circles and shapes with rounded corners still have problems. Maybe I'll get it working later.So I thought TouchGFX might be useful for initializing NemaGFX on this kit, and then using its functions to create my own graphical widgets.So I created a project with 4.26.0 that only displays a button on the screen to confirm it's running on the target.Then I looked at the generated code and, to my surprise, no NemaGFX functions were revealed.Does it actually use GPU2D and NemaGFX? Why isn't it showing up? I'm a bit worried that I can't use the NemaGFX library with TouchGFX.If that's the case, TouchGFX is useless to me.How do I use the NemaGFX library within a TouchGFX proj
Hello All,We need to interface to a 2-lane MIPI DSI display with resolution of 1280 x 720 and looking for all possible solutions !Does anyone know if any of the STM32 series is capable of supporting and driving such a display and, if so, which ones please ?
Hi, I'm using TouchGFX 4.26 on CM7 core, and I'm unable to generate a working project. When I open touchgfx file the IDE is opening correctly, but when it's the time to generate code (F4) TouchGFX IDE search for .cproject file to update with new data and correct include paths, but it search for cproject in the same path of the .ioc file and not in the CM7 folder, in dual core projects the file system structure is different, so it's impossible to generate a corret project, because .cproject is not updated. Is there a way to solve this issue? All project and code is generated with STM32CubeIDE 1.19
Hi everyone,I've been using TouchGFX v25 for almost a month and successfully flashing it to my STM32F7 board. I create projects in Designer, then open CubeIDE to edit the code, build, and flash. Everything was working fine.Recently, I tried installing the STM32Cube extension for VSCode. I was able to build the project, but couldn't get it to run. After that, when I tried running it again using CubeIDE, the screen became corrupted. I can still flash old projects and create new ones, but the top part of the screen consistently shows the same issue.As a first step, I deleted VSCode and erased the flash using STM32 Programmer.Then I uninstalled and reinstalled all components: STM32CubeMX, STM32 Programmer, CubeIDE, and TouchGFX. I also updated TouchGFX to v26.After that, I deleted the IDE workspace and removed the folders:C:\Users\myuser\.stm32cubemx and C:\Users\myuser\.stm32cubeideThen I’ve compared ioc files before and after using my backup on GitHub. They show differences in term
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hello, I am using the STM32H735G-DK board, and I am trying to send data via the USB COM port (USB FS (CN14) to display it in TextFields on the TouchGFX screen. However, after flashing the program, the display went black.In the stack trace, I see the following issues, but I cannot figure out what is causing them. Can anyone please help me? main.c /* USER CODE BEGIN OCTOSPI1_Init 2 */ HAL_OSPI_DeInit(&hospi1); ospi_nor_int.InterfaceMode = BSP_OSPI_NOR_OPI_MODE; ospi_nor_int.TransferRate = BSP_OSPI_NOR_DTR_TRANSFER; BSP_OSPI_NOR_DeInit(0); if(BSP_OSPI_NOR_Init(0, &ospi_nor_int) != BSP_ERROR_NONE) // -> green highlighted { Error_Handler(); } if(BSP_OSPI_NOR_EnableMemoryMappedMode(0) != BSP_ERROR_NONE) { Error_Handler(); } /* USER CODE END OCTOSPI1_Init 2 */ &
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.