Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I have a screen where I want to repeat a sequence of widget moves once a button is pressed, and then stop it when another button is pressed. I have an Interaction triggered by the 1st button press that moves the widget down (MoveWidgetDown) and another Interaction that resets the widget to the original position (ResetWidget) that is triggered by the completion of MoveWidgetDown. But I don't see a way to retrigger MoveWidgetDown to repeat the process. Is there a way to accomplish this within the Designer? If not, does anyone have any suggestions for how to do this using external code?
When building a freshly generated project using touchGfx on a stm32WB55 mcu, compiler complains about../Drivers/CMSIS/Device/ST/STM32WBxx/Include/stm32wb55xx.h:1084:29: error: expected identifier before '(' token 1084 | #define LCD ((LCD_TypeDef *) LCD_BASE) | ^ ../TouchGFX/target/generated/TouchGFXGeneratedHAL.hpp:44:66: note: in expansion of macro 'LCD' 44 | TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& display, touchgfx::TouchController& tc, uint16_t width, uint16_t height) : | ^~~This seems to be caused by #define LCD ((LCD_TypeDef *) LCD_BASE)in stm32wb55xx.h that doesn't really fit with the function declaration TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& display, touchgfx::TouchController& tc, uint16_t width, uint16_t height) : touchgfx::HAL(dma, display, tc, width, height) { }Solution is to comment out the #define in stm32wb55xx.h ... any other idea to fix this ?
Hello,I seek help (It could be my code or electronic setup) to achieve capacitance measuring application using STM32G4. The application is outlined in the note "AN4232" --> Section 3.5 "Humidity measurement". There is a project example of this application but sadly only for the STM32F3 firmware package --> Comparator project examples --> COMP_HYGROMETER. I am not interested in measuring humidity, but this application relies on measuring the capacitance (My goal) from which the humidity is determined. I think (but ignorant of the exact details) I am right in saying that this application relies on the charging/discharging of a foreign/external capacitor and the combination of a single comparator + single DAC as a voltage reference for the comparator + two TIM modules, one can determine the time-constant of the external capacitor from which you can determine the capacitance itself. I configured a STM32G431KB-Nucleo board project and followed the steps outlined in the application
I am trying to use the CustomKeyboard provided in TouchGfx for a STM32F769 discovery board (https://www.st.com/en/evaluation-tools/32f769idiscovery.html).How can i resize the keyboard? Is this possible without resizing each key individually?The keyboard seems to have a predefined size of 320x240 which is to small for my board.I tried using the provided methods (setPosition(), setWidth(), setHeight() with invalidate()) for setting the width and height, but it seems not to work as expected.Do i need to resize any single key? How would i do that?
usb_device.h is not found
If I have multiple parent views with a single child view, is there any good way to return to the caller parent view from a child view?My current implementation is to store the current parent view in the model.cpp class before transitioning to child view. When a button (i.e. done) is clicked from the child view, it would then check the last parent view through the model.cpp getLastParentView() and the child view will transition to parent view. Lastly, the parent view would go through the necessary initialization and behave like any ordinary screen switching. I wonder if there is a better way to do this, thanks in advance everyone!
I have two questions regarding TouchGFX graphs:1) I have a scroll graph: touchgfx::GraphWrapAndOverwrite<100> graph;The API documentation for GraphWrapAndOverwrite includes a section titled "Protected Functions inherited from AbstractDataGraph", which lists the function invalidateGraphArea(). However, in STM32CubeIDE, autocomplete offers only invalidate() and invalidateRect().If I type in invalidateGraphArea(), I get an error when compiling: AbstractDataGraph.hpp:650:10: note: declared protected hereSince all subclasses from AbstractDataGraph down to GraphScroll declare public inheritance: class DataGraphScroll : public AbstractDataGraphWithY ... etc.why am I unable to access invalidateGraphArea()? And, if invalidateRect() is to be the only method available to me, how to I get the coordinates of the graph area?2) The number of data points in the graph is set to 100, and "Use custom visible data point range" is not checked in the Designer, and X-Axis Labels / Major Labels is check
Hello,I am trying to use touchgfx with a SPI screen. The screen is black and white so i use a single buffer by allocation (it fits in y RAM). The interface is custom because of the spi bus.I am configuring the project with the liked project.ioc file and the software generation of touchgfx is incomplete for a reason that I cannot understand:/** ****************************************************************************** * File Name : TouchGFXGeneratedHAL.cpp ****************************************************************************** * This file is generated by TouchGFX Generator 4.18.0. Please, do not edit! ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance
I solved the previous problem with the TouchGFX compile error.Now I have another problem when I run target.Please see the below link that I made it.https://youtu.be/dDcpmdoovik----------------------------------------------------------------------------------------------------------- Flash make -f ../gcc/Makefile flash Reading TouchGFX/application.config Linking TouchGFX/build/bin/target.elf Producing additional output formats... target.hex - Combined internal+external hex intflash.elf - Internal flash, elf debug intflash.hex - Internal flash, hex /usr/bin/sh: line 0: cd: /c/Program Files (x86)/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin: No such file or directory c:/TouchGFXProjects/test001/gcc/include/flash_sections_int_ext.mk:2: rec
This should be a pretty simple thing...I created a TouchGFX 4.17.0 project for my STM32H735G-DK dev kit using the Keyboard Example. I import the project into STM32CubeIDE 1.7.0. I generate code in TouchGFX, refresh in the IDE, build and download in the IDE.But I eventually intend to customize the project and then move into a separate multi-screen project that is my ultimate target. So, I wish to rename the screen "Main" in the example project to the more meaningful name "Keyboard". I use the rename function in TouchGFX to do so. This creates a new set of .cpp/.hpp files "KeyboardView, KeyboardPresenter, etc." but does not move the contents of the old files, which I must do manually (the old Main* files are not removed by the rename.I then quit the IDE, and in Windows Explorer, locate all .cpp/.hpp files with the name MainView* and delete them from the project directories. I restart TouchGFX and generate code. I restart the IDE, refresh and build.I get the error: "make: *** No rule to m
i am using touchGFX designer V4.18.0. In software run target option is disabled.how can i recover that so please tell me the process to get run target option.
Is it possible to use STM32H743's LTDC with no frambuffer and fill its FIFO "on the fly"?
Hi,I'm using an STM32L496G board, currently flashing it through CubeMX/Touchgfx Designer.In the future, i'd like to be able to flashthe board by running a bash/python/other script from a linux machine. The board will be connected to the linux machine via uart.I'm not sure how to do that, and I wasn't able to find helpful instructions online.I'd appreciate your help.Thank you!
I'm developping a small textEdition window to let the user move a cursor and select the text in order to edit it more easily. Therefore, in order to position the cursor correctly, I need to know the x and y position of each char in the textBuffer. I thought it was easy and that I could calculate the x coordinate of each char adding the width of the previous char with the help of that function :_textArea.getTypedText().getFont()->getCharWidth()And it works fine… until it meets certain dots or commas (and I guess the problem must appear too with other chars). See for yourself :The dot is positionned below the r char. That is, the total width of the "r." string does not equal the width of the r char + the width of the dot. However, if a m precedes the dot (for instance), the problem doesn't occur :My question is therefore the following : in the specific case that the dot "merges" with the character it is place next to, how can I calculate the width that the dot actually takes in relati
I am using STM32H753 for driving 800x480 TFT LCD. Currently I am using External SDRAM for my FRAME BUFFER. I am using DMA2D and TFT LCD module of MCU.#define LCD_LAYER0_FRAME_BUFFER ((int)0xC0000000)#define LCD_LAYER1_FRAME_BUFFER ((int)0xC0300000)My code is working fine with above configuration.Currently I need only one layer for LCD.1) Can I use internal MEMORY of MCU instead of external SDRAM ?2) How to calculate frame buffer size for 800x480 TFT-LCD for RGB565 format ?
4.18.0 was released 20th of October.Release notes (which can be found here: https://support.touchgfx.com/docs/miscellaneous/changelog) is as follows:New TouchGFX Designer Features:New Widget: Video.Added support for new .xml text database.Removed TextEntries database from .touchgfx file.Added support for XRGB.Added full path of applications in recent applications list.Added various animations to icons.Bugfixes in TouchGFX Designer:Fixed missing proxy dialog.Fixed Gauge widget code generation error when placed in Custom Container Definition.Fixed TouchGFX Designer reporting file changes on disk, when files were opened in other editors.Fixed Analog Clock being able to resize.Fixed typography selector in text manager not resizing correctly.Fixed drop down controls sometimes autoselecting.Improved performance of text manager.Improved performance of color pickers.Improved UX behaviour of alpha slider controls.Fixed numeric property up/down controls not working after using mouse wheel.Fixed
Hello :)I'm trying to include main.c into Screen1View.cpp but I do not have any idea how to do it.I need to use array of 64 elements from main file into Screen1View file (the array is called current_temp).Does anyone have any idea how to do it? If so, how the include path should look like?
ps:I need to know it step ny step because of my limited knowlege.
Hello, I used a 32MB SDRAM and a 1GB NAND flash, the size of LCD is 480 * 800, the images save as RGB888 and ARGB8888 format. The images data must copy from NAND to SDRAM when used. I read all images data one screen used in setupScreen function when the screen was been activated. Because the data needs time to read, resulting in display stuck. Is there any way to make the display smoother?
Hello,I am using STM32F429BI.I use CubeIDE 1.7.0 and CubeMX. I use touchGFX 4.16.1 as a graphic tool.The LCD specification used is attached as a file.LTDC is set up like the attached image My question is1. Are there any wrong LTDC settings?2. Do I need to initialize the LCD driver (ST7282) in the LCD after setting the LTDC?3. There are Sync mode and DE mode in the LCD data sheet. Is it possible to set Sync mode and DE mode in LTDC?If possible, what should I do?Thanks in advance.
I need a help or guide.I have a problem with TouchGFX.I updated Windows to Windows 11 recently.I can't compile it after it is updated.This is my error message.Run Simulator Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config Done Post Generate touchgfx update_project --project-file=simulator/msvs/Application.vcxproj Done Compile make -f simulator/gcc/Makefile -j8 Reading ./application.config Compiling gui/src/screen2_screen/Screen2View.cpp Compiling gui/src/screen2_screen/Screen2Presenter.cpp Compiling gui/src/screen1_screen/Screen1Presenter.cpp 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32
Hi, I wish to use scroll wheel to set clocks and calendars.i.e. 0 to 23 for hours 0 to 59 for minutes and seconds 1 to 12 for months 1 to 28, 29, 30, 31 for datesFor calendars the month and dates need to start from 1 not zero.How can I set this when I initialize the scroll wheel.I see there is a setOffset, but it is s protected function and cannot be used.
With limited pins, which would be best (fastest)? 2x Quad SPI (ram and flash), or multiplexed Octospi? I'm in the planning stage of a project using the STM32H735. What are the limitations of ChromART and TGFX relative to memory architecture? Any other pitfalls?ThanksBob
Can someone please test this?TouchGFX 4.18.0STM32CubeIDE 1.8.0STM32F469I-DISCOCreate a simple screen on TouchGFX and try to compile the project on CubeIDE.You would expect this to work "straight out the box". I am getting compile errors. This is surely a code/library configuration bug. There is no problem with STM32F746G-DISCO.
So I have a custom container that has a wildcard for updating time and date from an RTC.My question is how do I update the wildcard from the model without going through each screens presenter and viewer since I have 40 screens.
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.