Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi All,I have a question about dynamic graph widget in TouchGFX.How can I set different scale for Y-Axis labels?For example, I have data values that goes from 0 to 20000 so I set the Value Range from 0 to 20000. But I want to display Y-Axis labels from 0 to 20. Is it possible?Thanks,Niko
I have an STM32469I-DISCO kit. I followed tutorial 2 in TouchGFX and tested it with the simulator and it worked fine. Then I tried to run it on the target board. The program downloaded but the screen remained blank yet TouchGFX said it was successfully downloaded and verified. I tried using STMCubeIDE and the same thing happened. Then I tried STMCubeprogrammer with same result. I know the board works since I tried one of the Demo programs (double buffer demo) using STMCubeIDE and it ran successfully. I have attached the tutorial 2 project.
This feature is in embedded wizard GUI. Maybe it will be created in touchgfx?
Hello,Based on the example LTDC_Paint for the STM32H750 Discoboard I try to adapt the software to run with 2x W9825G6KH SDRAM instead of the IS42S32400F-6BL.The program is loaded from an external flash (QSPI).I thought that I just have to adjust the function BSP_SDRAM_Init() in the "BSP_LCD_Init(0, LCD_ORIENTATION_LANDSCAPE)" function.Unfortunately the display still shows nothing. I can measure the SDRAM clock (100 MHz) as well as the pixel clock.But here I have to say, that the program crashes (resp. doesn't come into the while loop), if the functions UTIL_LCD_FillCircle... in the function Draw_menu();. are not commented out.Troubleshooting is difficult, respectively I try with LED at the moment..I suspect that the memory/addresses are set/read completely wrong....Does somebody have some hints that I should still check? Should I also adjust something in the build/debug configuration or in the linker file?Thanks
The Problem (Initially)A TextArea with one wildcard is used to display a value centered in its field. When a larger value is overwritten with a smaller value, the new value is centered in the TextArea, but a “residue�? of the previous, larger value, remains visible on both sides.TGFX Forum ResponseThe forum response referred to a section of the TGFX 4.20 online documentation (section not present in 4.17 document) regarding invalidation:InvalidationWhen you change the size of a Widget you must invalidate the parts of the screen that needs to be redrawn. If you are making a widget bigger, you can just invalidate the new size. If you are making a Widget smaller, you should invalidate it before changing the size:// Expand the Box, invalidate after to get the new size redrawn myBox.expand(10); myBox.invalidate(); ... // Reduce the Box to small size, invalidate before, to get background redrawn myBox.invalidate(); myBox.myBox.setPosition(10, 10, 200, 100); Remember that when you invalidate
..
The ProblemA TextArea with one wildcard is used to display a floating point number centered in its field. When a larger number is overwritten with a smaller number, the new number is centered in the TextArea, but a “residue�? of the previous, larger number, remains visible on both sides.The issue is seen in the GUI of a client project for an industrial meter and process monitor, and is reproduced here in it's own TouchGFX Designer project which runs in the Simulator.Simple ScreenThe project includes a single screen with a white background, and three additional objects:A blue Flex Button (setBtn), labeled “Set 1.0�?A single-wildcard TextArea (numberText( with initial setting “345.67�?A red Box background (numberBgd) to the TextArea.Screen AppearanceTextAreaThe TextArea (numberText) is of fixed width, non-autosize, includes a buffer with a 16 character size. and has an initial setting og 345.67: Text ResourceThe text resource (numberDisp) specifies the default font, centered display
I see that you can place multiple radio buttons on a screen and they work as expected. (all the buttons)Can you have multiple radio button groups on the same screen? see image below can I have group 1 work independently to group 2How can I achieve this with independent groupings or can you suggest another widget?Current requirement is to be able to select either a switch type of N/C or N/O.PS. I might have more than 2 in the group sometimes.
Hello,My architecture is based on STM32H750 with an external memory mapped SDRAM used to store the framebuffer and -willingly- used to store at runtime assest such as texts fonts and images.I’ve modified my linker file to:MEMORY { FWINFO (rx) : ORIGIN = 0x24000000, LENGTH = 16 FWVER (rx) : ORIGIN = 0x24000100, LENGTH = 256 RAM_EXEC (xrw) : ORIGIN = 0x24000200, LENGTH = 523776 DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K SDRAM (xrw) : ORIGIN = 0xC0400000, LENGTH = 4096K SDRAMASSETS(xrw) : ORIGIN = 0xC0000000, LENGTH = 4096K } […] FontSearchFlashSection : { *(FontSearchFlashSection FontSearchFlashSection.*) . = ALIGN(4); } >SDRAMASSETS TextFlashSection : { *(TextFlashSection TextFlashSection.*) . = ALIGN(4); } >SDRAMASSETS FontFlashSection : { *(FontFlashSection FontFlash
In TouchGFX (4.20), started a project from scratch using STM32H747i-EVAL. The actual target hardware is the STM32H757i-EVAL.Able to display an image on the target with no problem.Added a Video widget to the canvas.Selected the sample "Sample Video 1 Large 800x480" for widget.For the Simulator, am able to build and run the video.When trying to run the video on the hardware (Run Target) the build is unsuccessful. I get the following error: CM7/TouchGFX/generated/gui_generated/src/screen1_screen/Screen1ViewBase.cpp:6:10: fatal error: videos/VideoDatabase.hpp: No such file or directory #include <videos/VideoDatabase.hpp> ^~~~~~~~~~~~~~~~~~~~~~~~~~ Using the .ioc file, I have rebuilt the project with the CubeMX, but still get the same issue.
Hello,I am trying to use TouchGFX with STM32F767ZI with a TFT SPI ILI9341 display. I have tried compiling the code using both STM32 Cube IDE and KEIL u5. With Cube IDE, the code does compile but I do not have any output on the screen (I am using the libraries provided for this display that have the functions to draw bit map and set window), whereas with KEIL I get many L6869W warnings and the project doesn't build. I have also tried switching to STM32F411, but I am experiencing the same problem. It would be greatly appreciated if you could assist me with that.
Hi...I am using STM32f746g board , normally if I use text area widget to display string it is working fine. But I m not getting how to do when a data receiver through Usart has to be displayed on Display.For example : from USART we got a value 40 , how it has to be display ?If anyone have an idea how to do it , please help me out.
Recently I wanted to try using the touchgfx package. I downloaded a zip archive file from the site (en.X-CUBE-TOUCHGFX_4-20-0.zip) but I can't unzip it. All programs used recognize this archive as corrupted. Am I doing something wrong?
Hello,I'm working with Riverdi_101STM32H7 and TouchGFX4.20.----------------IMAGES---------------------I'm experiencing some flickering of the images when I'm changing screen (on the real screen) (some images stay at the same place in several screens so they do not appear during the transition).----------------TEXTS---------------------I'm also experiencing 2 different behaviors for the text (staying in the same screen here)I have a screen with 2 texts zones, one small and one big and the biggest zone flickers when I update it with invalidate. The smallest one has no problem. They do not superpose. Here's my tick function handling the text zones:void Model::tick() { if (Request_Update_SerialFrame == 1) { modelListener->Request_Update(); } } In the presenter of my screen:void LogsPresenter::Request_Update() { view.dataDisplay(); }In my screen:void LogsView::dataDisplay() { memset(&textArea_Last_received_frameBuffer , 0 , TEXTAREA_LAST_RECEIVED_FRAME_SIZE); Unicode::st
Hello,I've followed the example given in the link below in order to call the screen from the container. It works perfectly when I implement it in one of my custom containers.https://community.st.com/s/question/0D50X0000AFpwBxSQJ/can-you-call-a-method-on-view-from-a-custom-container?t=1665565737450The problem I'm facing now is that I'm trying to do the same with the keyboard example given by touchgfx (custom widget now and no more custom container) (when I attain the end of my buffer, I want to show a button in my screen (and hide it if the use hits backspace)). Added a few functions of my own too.I have this error: gui/src/containers/CustomKeyboard.cpp: In member function 'void CustomKeyboard::keyboard_complete(bool)': gui/src/containers/CustomKeyboard.cpp:185:9: error: invalid use of incomplete type 'class ConnectChargerView' viewPtr->ECCD_keyboard_complete(visible); ^~ In file included from gui/src/containers/CustomKeyboard.cpp:1:0: gui/include/gui/containers/CustomKeyboard.h
I asked Rocktech about the connectors and their answer is:"RK043FN48H-CT672B is a custom display only for STM based on their discovery board and the FPC was designed in soldering type, no need connector."I'm designing custom board based on this development board, and inspecting the side view of the board, I notice the flexible connector underneath the display. My question is how it is connected to the main board? Please see the attached photo.
I am writing firmware that was automatically generated by the TouchGFX 4.20.0 and then opened the .ioc file to enable an ADC, Timer, Binary Semaphore and add a Task. When I generated that code, it compiled without any issue. My purpose for enabling these features is to measure the value on an ADC and display it on the LCD screen. Part of my work was to develop a custom .c and .h file that initialized the ADC, the timer and do a callback to send the ADC value to the screen via a Binary Semaphore. I added two files:"PollingRoutines.c""PollingRoutines.h"PollingRoutines.c is below:#include "main.h" #include "PollingRoutines.h" #include "cmsis_os.h" extern ADC_HandleTypeDef hadc1; extern TIM_HandleTypeDef htim1; extern osSemaphoreId_t binarySemAnalogHandle; uint16_t uhADCxConvertedValue[10] = {0}; void PollingInit(){ HAL_ADC_Start_DMA(&hadc1,&uhADCxConvertedValue,10); HAL_TIM_Base_Start_IT(&htim1); } void PollingRoutine(){ } void HAL_A
I am currently developing a GUI on a STM32F429-DISCO with a custom display (also 320x240) and have run into an issue with the positioning of displayed text. The text is shown on the display several lines below the location it was set to. This offset changes direction with text rotation. I am currently using the roboto font from google fonts. Depending on the font this offset seems to change direction.So why are fonts not shown correctly on the actual screen or why is there a clear offset of the shown content?
Hi,I am using word wrap with Text Area component:textArea.setWideTextAction(WIDE_TEXT_WORDWRAP);My texts are usually so long that they need to be wrapped to 3 lines. I have seen no issue with the first wrap (between line 1 and 2), but the second warp (between lines 2 and 3) does not work correctly. The end word is usually broken in the middle (the library tries to put there as many characters as possible). It appears as if "character wrap" is enabled between 2nd and 3rd line. Tested on Touch GFX 4.20, but the behaviour was observed at least since 4.17 version. Am I missing some settings? Or is it simply a bug?Thanks,Petr
I am using 7 inch TFT running STM32H7BI MCU with GT911 driver with TouchGFX. I am communicating with GT911 via I2C. But the screen sometimes freezes and I cannot click the buttons. Resetting it fixes it but then it freezes again. What do you think could be the reason?
Hello,I am working on with a project generated by the TouchGFX 4.20.0 application. It creates a project whose folder directory looks as it does below. The header files (.h) are in the "Includes" portion, which makes sense to me. However, when I try to add a new header file for a new function I am creating, I do not see a clean method to do so. All files in the Application folder are .c, .cpp or .s files. There are no .h files.In previous version of code that has been compiled, I recall there being a ../Core/Src and ../Core/Inc to reach the source and header files respectively. In the generated code, those exist in a folder that is above the project folder recognized by the STM32CubeIDE. However, I cannot access them via the Project Explorer anymore. The last two photos show how my file explorer folder format is.My objective is to add a new source and header file in ADC_Display/Core/Src and ADC_Display/Core/Inc respectively via the project explorer in the STM32CubeIDE. How can I do this
On data scheet of device (PCF8574T mounted on LCM1602) the addres is 0100 1110=4E but the program still doesn't show me any letter on LCD. Where is wrong? I cheked many times the pin and them are right. Same thing on Cube IDE.
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.