Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello,I am working with stm32 h757 riverdi kit. I get this error in stm32cubeidearm-none-eabi-g++ -o "Riverdi_70STM32H7_CM7.elf" @"objects.list" -l:libtouchgfx-float-abi-hard.a -mcpu=cortex-m7 -T"C:\TouchGFXProjects\AKUSTEK_V3\STM32CubeIDE\CM7\STM32H747XIHX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Riverdi_70STM32H7_CM7.map" -Wl,--gc-sections -static -L../../../CM7/Middlewares/ST/touchgfx/lib/core/cortex_m7/gcc --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: Riverdi_70STM32H7_CM7.elf section `.text' will not fit in region `FLASH' C:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eab
#include "cmsis_os.h" #include <stdio.h> #include <stdlib.h> #include "main.h" #include <stdbool.h> extern I2C_HandleTypeDef hi2c4; uint8_t DATA, DEVICE_STATUS = 0x00, XH, XL, YH, YL; uint16_t X_AXIS, Y_AXIS; #define DEVICE_ADDRESS (0x38 << 1) // Shifted for STM32 HAL uint16_t x_axis = 0, y_axis = 0; uint8_t STATUS = 0; void STM32TouchController::init() { // Initialization if needed (e.g., configure GPIO, I2C, etc.) } bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y) { static uint16_t prev_x = 0xFFFF, prev_y = 0xFFFF; STATUS = HAL_GPIO_ReadPin(GPIOG, GPIO_PIN_2); // Touch INT pin low = active if (STATUS == GPIO_PIN_RESET) { // Read X high & low HAL_I2C_Mem_Read(&hi2c4, DEVICE_ADDRESS, 0x03, I2C_MEMADD_SIZE_8BIT, &XH, 1, 100); HAL_I2C_Mem_Read(&hi2c4, DEVICE_ADDRESS, 0x04, I2C_MEMADD_SIZE_8BIT, &XL, 1, 100); // Read Y high & low HAL_I2C_Mem_Read(&hi2c4, DEVICE_ADDRESS, 0x05, I2C_MEMADD_SIZE_8BIT,
So I have a scroll list with several elements and snapping set to true. The scroll list can show up to 3 elements on screen with no scrolling.I can move the scrolling list both by scrolling and clicking two buttons (up and down) that basically use the animateToItem to move the scroll list to the first or last element.Now, because I have to update an image according to the element shown on the scroll list, I need to know if the first element or the last element of the scroll list is visible.Is there a way to do that or do I need to implement it myself?
Hello all, I am really new to TouchGFX and can't find a solution to my problem. I want to increase or decrease a displayed value on my screen by clicking on a button. I think I have to read the value each time by using getWildcard(). But now I have a data type conflict as I can't just handle it as an int and increase it. In the following you can see a picture of my screen. Thank you in advance :)
Hi all,TouchGFX version: 4.16.1I have a slider that allows user to change the timer values. I have registered two callbacks (1) setNewValueCallback and (2) setStopValueCallback.When using simulator, when I simply click(no release yet) on some value on a slider that is different than the current value, I get a new value callback once. When I release the mouse button, I get another new value callback(which is expected based on the code I see in Slider.cpp), followed by stop value callback - total of three callbacks happen. This works without any issues in the simulator.On target, it works for the most part but every now and then I run into issues where when I click on a slider value, the slider jumps to zero position. I have also seen it jump to max position. I added some events in the both of those callback handlers to debug this further. When this issue is not happening, I see three debug events as expected as explained earlier in simulator case(two new value callback events and one St
Hello everyone,I have recently updated my project's TouchGFX version from 4.23.2 to 4.24.0. After the migration, I am no longer able to generate code from the TouchGFX Designer.The process fails during the "Generate Assets" step every time I click "Generate Code". I receive the following error message in the log:The error points to the rgb_compression setting. I have checked my application.config file, and the configuration is set to "no", as shown below:What I have tried so far:Manually changing the rgb_compression value in application.config to something else and then back to "no".Deleting the generated folder and trying to regenerate everything.Running "make clean" from the simulator directory.I reinstalled it in version 4.24.2.None of these steps have resolved the issue. It seems like the asset generator in version 4.24.0 is either misinterpreting this valid setting or there's a new required configuration that I'm missing after the update.Could someone please advise on what might b
Hi everyone!I'm trying for the first time to create a project using TouchGFX without using the Designer. My short term is objective is as simple as to see in the screen numbers generated by a function created in main.c or model.cpp.1) Is there a template of files and folders to implement touchgfx from scratch?2) What are the configurations in the .ioc in order to use the screen and touchgfx?I've already installed and activated TouchGFX in the Mx/middleware but I had several build errors due to non-existing or incomplete files.I'm using CubeIDE and the stm32h750B_dk board.Thank you in advance for all your support.Kind Regards,TJAttachements: .ioc configurations, file tree and compilation errors
I recently acquired the STM32F469NI-Discovery board as it purported to support most of the functions that I wanted - GUI, USB OTG, SD card, etc. However, on bringing it up, it did not load and remained blank. (Customer support has not been supportive in getting the demo software loaded.) I have been able to run simple TouchGFXDesigner projects with ST332Cube. But, when I try to add simple functionality, I find that what's in he .ioc file does not agree with what's on the board (in the schematic). The best I have been able to do is determine that the promised sample code is not available.Can someone recommend a newer board that has better support? The larger the display, the better. I can work with almost any daughter board configuration (Arduino, etc.) as long as it is well documented. A primary requirement is that the source code for the examples be easily accessed.For those interested, this is to be used as a front-end controller for custom lab test equipment. The GUI is primarily to
Hi,I want to know how I can implement a generic SPI Display with a ST7789V driver with TouchGFX. I saw several tutorials but no of these was clear for me. I know that I must setup TouchGFX with generic display, get a Display Driver and then add some code to TouchGFX. But what does this mean in detail?Can someone please explain to me step by step how to do the implementation?BRMatthias
Please help me.
Hi I'm just starting to use TouchGFX designer, with a background in other UI design programs, and one thing I'm frustrated about is the lack of the ability to align and distribute assets on a screen. I do appreciate the snapping that happens but if I need to distribute a number of objects evenly or just batch align them all with one click, it becomes bit of a pain to manually type x and y locations for each one. I guess it's not that big of a deal, but just a feature that I feel is missing from a UI design software that others have and feels like TouchGFX is behind in this aspect. Also there is a bug in 4.25.0 where if you have multiple objects selected and then move them, when you deselect them by clicking elsewhere, the mouse automatically latches to the "box select" mode.
I have created a ui to that i am able to upload on the custom board(STM32H750VBT6) which i can successfully Debugging using IDE but display is empty.I dont know where I am wrong.I attached the library that I am using below.I have taken library from this GitHub with this pinout int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MPU Configuration--------------------------------------------------------*/ MPU_Config(); /* 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_DMA_Init(); MX_SPI1_Init(); MX_TIM3_Init(); MX_CRC_Init(); MX_TouchGFX_Init(); /* USER CODE BEGIN 2 */ // SCB_DisableIC
Hi,is it possible to select just the CPU and connect any display (e.g. via MIPI DSI)?Best regards,Achim
I've installed TouchGFX . When I try to create a project, TouchGFX crashes at 88% and simply closes. When I checked the TouchGFXDesigner.log file the error is System.IO.FileLoadException: Failed to load native freetype library!same issue? Any idea how I can fix this?
Hello,is it possible to create a dotted line using Canvas Widget line?Thanks
Hi Team,I’m currently working on a project involving the TouchGFX interface with an internal clock configured at 480 MHz. I’ve created a custom TouchGFX project using STM32CubeMX and successfully brought up both QSPI and SDRAM, verifying their functionality independently.Following the guidelines from TouchGFX Seminar -3, I proceeded to enable TouchGFX through CubeMX. I've attached screenshots showing my LTDC, DMA2D, Clock, and TouchGFX configurations for your reference.Project Details:MCU: STM32H750IBT6Display: 12.1-inch panel supporting RGB888LVDS Driver: DS90C385AMTX_NOPBInitially, with a simple background and the default designer gauge, everything worked fine.However, when I customized the gauge's background and needle graphics, I started encountering errors, including:TouchGFX rendering errors (specific message attached in screenshot)Occasional Hard Fault exceptionsI would appreciate your insights on what might be causing this issue—especially whether it could be related to memory
Hello all,I created an application with a 800x480 FSMC 16 Bits TFT screen (SSD1963 driver) STM32F429 CPU, I would like to create my screens with TouchGFX instead of creating lines of code on CubeIde, is it possible? If so, what should I take into account in my Cube Ide project?, I did project tests with TouchGFX (blank screen) and during compilation, there are errors that I cannot correct, (my project works without TouchGFX files) can someone help me ?Best regardsSeb
Hi Guys.I want to set textarea. I created the new texts. And program is here;Model.cppvoid Model::tick() { static uint32_t counter = 0; const uint32_t updateInterval = 5; touchgfx::TypedTextId Bat4TextId; counter++; if (counter >= updateInterval) { switch (BAT4_CAN_Rx.fields.BAT4_State) { case CHARGE_MODE: Bat4TextId = T_CHARGE; break; case RELAXING_MODE: Bat4TextId = T_RELAXING; break; case DISCHARGE_MODE: Bat4TextId = T_DISCHARGE; break; case READY: Bat4TextId = T_READY; break; case COMPLETE: Bat4TextId = T_COMPLETE; break; default: Bat4TextId = T_UNKNOWN; break; } counter = 0; } if (modelListener) { modelListener->updateStatusData(Bat4TextId); } }ModelListener.hppclass ModelListener { public: ModelListener() : model(0) {} virtual ~ModelListener() {} void bind(Model* m) { model = m; } virtual void updateStatusData(touchgfx::TypedTextId bat4TextId){} protected: Model* model; };screenPresenter
Hi,I've installed TouchGFX following the instruction at https://support.touchgfx.com/docs/introduction/installation on a completely new installation of windows 10. When I try to create a project, TouchGFX crashes at 88% and simply closes. When I checked the TouchGFXDesigner.log file the error is System.IO.FileLoadException: Failed to load native freetype library!Any idea how I can fix this?Please see attached log file.Thank for your help. Looking forward to get the designer working.Richard
Hello!Our project is supposed to use C++17 features.When linking C++17 compiled objects against TouchGFX Designer's distributed binaries (eg: touchgfx_core.a), linkage fails, because the touchgfx binaries appear to be compiled against the c++14 standard, not c++17.Compiling with IAR 9.30.1, having the C++17 compiler flag ("libc++" in IAR parlance) set, the following error is thrown during linkage. Error[Li009]: runtime model conflict: Module ListLayout.o(touchgfx_core.a) specifies that '__CPP_Library' must be 'DLib', but module [hidden-name].o has the value 'libc++' We are using TouchGFX 4.23.2 which according to the date of this post by ST Employee @LouisB, we should have no issue linking its objects against C++17 objects compiled by IAR. However, when inspecting the distributed binary from ST (TouchGFX\4.23.2\touchgfx\lib\core\cortex_m7\IAR9.x\touchgfx_core.a), we can clearly see that it was compiled with C++14, and not C++17: __CPP_Exceptions.
Hi,Any idea how I can build my touchgfx project on a CI/CD. The goal is only to verify if the simulator is still building (or it's working) Thank you
Hello.I am new to TouchGFX and have been learning it over the last few weeks. I am able to generate an application with multiple screens, and swap screen utilizing the TouchGFX designer actions & interactions. I have a screen, called Screen4, that is a testing screen to test out different iconographies:Within that Screen4 I have two actions:And two interactions:The goal of these two actions & interactions is to control the screen from application code, with the goToScreen function being utilized to notify the graphics engine to display Screen4 and the setLevel function to notify the graphics engine to update the color of all the shapes to a passed in value (0-255 on RED only). The goToScreen function works perfectly, and I am able to call it directly from my application code - - and have the screen be displayed. The setLevel command is giving me some trouble though, and here is where I think I am missing a core piece of my understanding of the grap
I have a TouchGFX Designer project that I setup in a Windows environment. In my .gitignore, I excluded the TouchGFX/generated folder so that all files can be generated fresh when the project is built on a new system.I would like to be able to build the project in a Linux environment. However, since TouchGFX designer is not supported on Linux, I was hoping that I could run a make command to generate them without the Designer application. The only thing I could find was a command to invoke the tgfx.exe file provided with the designer.Is it possible to build the generated code from TouchGFX designer in a Linux environment?**EDIT**I have created a Docker container that is running Linux, I have installed WineHQ in it to run the tgfx.exe file. Unfortunately, the container is having issue with running the GUI, is there a way to execute the tgfx.exe functions without invoking a GUI/window?
Hi,which widget should I use to create a curved line?If there is no widget,what is the procedure to create a curved line?Thank you
I am looking for some advices for my product using STM32U5G9 MCU with external QSPI Flash.I want to create a bootloader for my product but I stuck at the approach how-to:1. Can the boot loader support the external loader meaning also update the external flash data if there is any updates for my GUI information?2. If the boot loader can't support the loading for the external flash, do I need to implement the external loader on the application layer?Is there any application note for case#1 if it is possible?Thank you so much for your advices.
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.