Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello everyone,I added two buttons (the button type is shown in the attached picture) to my UI, each controlling two relays with the STM32F7 Disco. When I maintain a click on one of the buttons, both buttons turn off and become unresponsive. I need to reset the board to make them functional again.Can anyone explain why the UI behaves this way and suggest a solution?Thanks,BR,Nourhene.
I am working in touch GFX 4.21.1I do not know if it is the product of the version I am working in but I need to use wildcard characters. By all the posts and examples I have seen I am told they are generated in the #name#ViewBase.hpp file. Sadly I have not been able to replicate this behavior. I want to use Unicode::snprintf. All example I see use the generated variables. I think I could just make the variables myself in the view.h file. If I don't have to, so they can update depending on how the view updates, that would be preferred. If there is any advice on this subject please let me know.I will also preference that the touchgfx::TextAreaWithOneWildcard does generate appropriately. Only the buffer and size are missing to my best knowledge.Thank you for your time.
HI, could you come up with an example of how to access a textfield from a custom container in the Main screen?Thanks in advance.
If I try to encode blocks of colour using the hardware JPEG encode in an F7 from a BMP image (screen memory in this case) they fail if the colour is pure (e.g. all red, all blue) and they come out different shades of green.By experiment, I have found that extra bits have to be set for the encode to succeed.Colour Pure code Code that encodes correctly red 0xff0000 0xff0202 green 0x00ff00 0x02ff02 blue 0x0000ff 0x0202ffAttached is a jpeg captured by the hardware encoder where the first 3 blocks are 'pure' colours and the other 3 are with the extra bits set.Is this a limitaion of the encoder or should I be using something other than#define JPEG_CHROMA_SAMPLING JPEG_420_SUBSAMPLING #define JPEG_COLOR_SPACE JPEG_YCBCR_COLORSPACE #define JPEG_IMAGE_QUALITY 75in the encoder config.Thanks
Hello everyone, I am using TouchGFX 4.23.1 and I wonder how can I get the click force on display .I know there is the method "getForce" in ClickEvent class but there is no documentation that tells me how can I pass the Z-value (force) from my touchcontroller to TouchGFX library. Is there a method as "bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y)" which I use to pass coordinate x and y to TouchGFX's driver? Thanks in advance
Hi,just activated the compression for my bitmaps (Tgfx V4.24, CubeIDE 1.15.1)Touchgfx Designer generates all files fine.Simulation on Windows with VS works fine.Moving to target results in linker error (3 times):.text._ZN8touchgfx8LCD16bpp19DecompressorRGB_QOI16blitCopyARGB8888EPKhRKNS_4RectES6_h+0x31c): undefined reference to `touchgfx::paint::flushLine(unsigned long*, int)'(and, of course, we did an refresh / clean / recompile) By disabling the RGB decompression modul, linking is fine, but compressed bitmaps do no more work (of course):FrontendApplicationBase.cpp:comment this out in FrontendApplicationBase::FrontendApplicationBase constructor:reinterpret_cast<touchgfx::LCD16bpp&>(touchgfx::HAL::lcd()).enableDecompressorRGB(); stm stuff: any hits?Thanks!
Hi,I would like to make a GUI for my original board which uses a STM32F427.However, I have not been able to find any reference which create GUIs without Discovery boards. Does anyone know how to create a GUI for original board by the touch GFX?Thanks for your help.
Error message:*****************************c:\st\stm32cubeide_1.8.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./TouchGFX/generated/fonts/src/CachedFont.o: in function `touchgfx::ConstFont::~ConstFont()':C:/Users/mande/Documents/STM32/STM2New2/STMF207New2/Debug/../Middlewares/ST/touchgfx/framework/include/touchgfx/ConstFont.hpp:35: undefined reference to `vtable for touchgfx::ConstFont'*****************************Project BackgroundI have STM32F207, XPT2046 touch detect controller, ILI9488 LCD and using FSMC/DMA for LCD.I am trying to integrate touchgfx with above setup through STM32CubeIDE. There is no reference project related to F2 family of STM32 with TouchGFX. So what I am doing is creating TouchGFX initial files with STM32F4 MCU and modifying the contents in "ApplicationTemplate.touchgfx" file as per STM32F2 needs.Some of the resources that has helped me reach here are (
hello i have a screen where if i press a button a modal window apears with text and 2 buttons (OK) and (CANCEL) .When i call modalWindow.show() the modal window apears but for 1-2 secconds it flickers . can you help me with this ? Thank you
So I'm using an ST7789VI display connected to a STM32L4R9I-DISCO board. I've made some test projects in CubeIDE without using TouchGFX to ensure that the driver file and everything else was correct. However, when I try to integrate TouchGFX designs, I get misalignment and a bit of distortion. At first, I thought it was an issue with how I'm transmitting the data, but I did some debugging and I noticed that the Framebuf was being populated incorrectly i.e. the pixel "values" were incorrect in the areas I'm getting distortion- so not a transmission error. I'm still unsure what's causing the misalignment. Could someone help me out? I'll attach the flushframebuffer function, where i defined FrameBuf in TouchGFXGeneratedHAL and the dedicated memory spot in the linker files for the framebuffer. EDIT: I've also tested with solid colors using the flushframebuffer function and I do get the correct output. //How frameBuf is defined in TouchGFXGeneratedHAL.cppLOCATION_PRAGMA_NOLOAD(".To
Hello, Is it possible to use TouchGFX with a screen without TE or FMARK pin in FMC or SPI mode?Do you have an example? THANKS
Hi everyone,I'm working on a 320*240 SPI LCD and I need to optimize the memory consumption and the refresh speed on it.At the moment I'm using 4 partial frame buffer of 9.6kB each (with RGB565 16-bit, so 4800 pixels per buffer), but, when I draw an image with dimension 48*45 (2160 pixels) on a already initialized Screen, the touchGFX calls the write on LCD function 3 times:1 - 48*20 pixels2 - 48*20 pixels3 - 48*5 pixelsThere is any way or strategy to draw it in one single transaction?
I am working to create a GUI and am trying to generate code, however, each time I do, I get an error that "The system cannot find the file specified." as TouchGFX tries to generate assets. A colleague of mine has generated the code on his system and it was able to generate all the code. I have tried uninstalling and reinstalling TouchGFX, yet that did not solve the issue, and would love guidance on how to fix this problem.
I want to change the screens above into slides. I want to know how to slide between screens without swipe container. Please help me.
I have develop the UI for screen use RGB222, it's worked well on simulator. The external flash on device is QSPI and it's worked too. I have some dynamic text like language change, update textarea by special TypedText Id.The "System Information" is dynamic text and the text will be align to center after set new TypedText. It's probem to show on real device.
Align_VerticalView.cpp:24:12: error: unused variable 'fontBaseline' [-Werror=unused-variable] const int fontBaseline { mono.getFontBaseline () };
I have make a UI in which 4 screens are present , when changing screen , it got stuck after several clicks.There is no animation is selected in any screen.Also, project is made in touchgfx designer by simply clicking on new project.Please help me in this situation.
Hello everyone,I am using a STM32f746 DISCO eval board. I am still trying to learn about this board but I have already done some small programs to get a feel for it and make sure that I can flash STM32CubeIDE and TouchGFX programs on it. Which I done successfully. However, I can't seem to figure out how to connect the two. I've tried watching some videos but I would like more direct help. Goal: I have a CubeIDE program that sends a command through serial6/uart6 when the blue user button is pressed but the GUI remains pure white. I have a touchgfx program that has the button to press and can show up on the screen but does nothing with ports. I want the button on the screen to send my serial command instead of the user button on the board. How do I put everything together? Having trouble getting the generated code to the cubeide.
Hello,Let me describe the scenarioVersion: 4.23.2Succesfull Tests:- Environment: Local Machine: Windows 11, touchgfx installed the same as using the dockerfile the command works-Command Run:-> powershell -Command 'C:\TouchGFX\4.23.2\designer\tgfx.exe generate -p C:\builds\TouchGFX'Generates the files in the folder C:\builds\TouchGFX\generatedIssues:- Environment: windows container based on image mcr.microsoft.com/windows:ltsc2019- Installation method: Dockerfile, download the executable, place it on C:\install and running: RUN msiexec /i "C:\install\TouchGFX-4.23.2.msi" /quiet /norestart The Docker image builds ok and I have confirmed it has the .exe in the path C:\TouchGFX\4.23.2\designer- Container command: Launching the container with: docker run -it -v ${PWD}:"C:\builds" afl-touchgfx:2.0 powershell.exe- Command approaches: -> powershell -Command 'C:\TouchGFX\4.23.2\designer\tgfx.exe generate -p C:\builds\TouchGFX'-> powershell -C
Hi Guys,I am working on one of the project, where I have to update the Software from UART bootloader.Software is included with User Application + TouchGFX Application + TouchGFX Assets.In this User Application and TouchGFX application has to be store in Internal Flash and TouchGFX Assets in External Flash(QSPI) through UART bootloader.And also want to how to find the TouchGFX Assets in .hex file.Please help me if any one knows the solution.
We have developed an application with LCD display in which we use TouchGFX and external SPI flash memory, the microcontroller used is STM32G0B0CET6.I wrote an external loader for STM32G070RBT6 (tested and worked) and simply rewrote it for STM32G0B0CET6, but it doesn't work on the latter.It always gives me an error verifying at the same address.The suspicion is that there is a bug related to the STM32G0B0xx family (id 0x467).Has anyone had the same problem?
I have a simple project with multiple screens. Physical buttons are configured to scroll between screens. When the device boots, the first screen is displayed correctly, but when you try to switch to the second screen, the display turns gray and the device freezes. The project will be moved from STM32F407ZET6 to STM32H723ZGT6. Tell me what could be the problem?
Hello,I had a use case to add dynamic bitmaps in a project I joined, and I followed the documentation to make them work.https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/dynamic-bitmaps Surprisingly, I realized that the addresses of dynamic bitmaps are not as I would expect them. The code I added that called Bitmap::setCache seems to be ignored.I dug into project internals and found that there is a call to registerBitmapDatabase during initialization, with cache parameter supplied, but there is not a lot about that function in the docs. Does this explain why my `setCache` was ignored?
Hello,I'm working with a set of 7 images. Based on specific external input, I aim to toggle the visibility of these images - making certain images visible and others invisible.When I manipulate the visibility of each image individually using the following code, it operates as expected:Image_1.setVisible(true);Image_2.setVisible(false);// ... [and so on]Image_7.setVisible(false);Image_1.invalidate();Image_2.invalidate();// ... [and so on]Image_7.invalidate();However, when I attempt to streamline this process by storing the images in an array and then cycling through that array using a for loop, the expected behavior isn't observed:touchgfx::Image Images[7];Images[0] = Image_1;Images[1] = Image_2;// ... [and so on]Images[6] = Image_7;for (int i = 0; i < 7; i++) {if (i == numActiveImages) {Images[i].setVisible(true);Images[i].invalidate();} else {Images[i].setVisible(false);Images[i].invalidate();}} Could someone shed light on this behavior or provide a potential solution?Thank yo
log:Converting imagesCompiling gui/src/demo2_screen/demo2View.cppgui/src/demo2_screen/demo2View.cpp:6:17: fatal error: rtc.h: No such file or directory #include "rtc.h" ^compilation terminated.simulator/gcc/Makefile:220: recipe for target 'build/MINGW32_NT-6.2/gui/src/demo2_screen/demo2View.o' failedmake[2]: *** [build/MINGW32_NT-6.2/gui/src/demo2_screen/demo2View.o] Error 1simulator/gcc/Makefile:182: recipe for target 'generate_assets' failedmake[1]: *** [generate_assets] Error 2simulator/gcc/Makefile:40: recipe for target 'all' failedmake: *** [all] Error 2rtc.h is the header file for a hardware peripheral.
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.