Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hello everybody,where can I find the release notes of the TouchGFX Designer tool ? In particular I'd like to know the Release notes of ver 4.23.1 and the differences between 4.23.1 and 4.23.0.Thanks Max
Hello,i have an app that will only be controlled by hw buttons.I have several ToggleButtons on the configuration screen. When I use the -> and <- arrows (hw buttons), I step over the buttons on the screen one by one. I can find out which button I am on by switching it. That's awkward.So I created the interaction "Tigger on every N tick" and the linked function "blinkingButton". After selecting the button I flash it. It works fine, but I do it by putting a condition in the function that will flash depending on whether the button is enabled/disabled. Since I have several buttons on my desktop, "blinkingButton" runs unnecessarily for all of them, the condition is evaluated and only the active one flashes. It would be more appropriate to turn on the trigger only on the activated button and then turn it off again.Can you advise how to do it? Is it possible to disable this function after creating an interaction and enable it after selecting a button from the program? Or can the notific
I use TouchGFX to generate a project for STM32U5A9J-DK and it can generate a list of files in the Target folder such as Buttons.cpp, CortexMMCUInstrumentation.hpp, CortexMMCUInstrumentation.cpp, KeySampler.hpp, KeySampler.cpp, and other files.If I delete all the files under the Target folder and use the STM32CubeIDE to regenerate all the deleted files (I want to change the graphics-related settings in STM32CubeIDE and these changes should be in the generated source codes), the tool STM32CubeIDE cannot regenerate the following files: Buttons.cpp, CortexMMCUInstrumentation.hpp, CortexMMCUInstrumentation.cpp, KeySampler.hpp, KeySampler.cpp.Which setup options of STM32CubeIDE or TouchGFX can we use to tell the Generator to regenerate the missing file above?Thanks
if I make my own widget, can it be added to the palette among the supplied widgets?The second question is about the properties panel. I can somehow configure it for a custom widget and put my widget parameters on it.If it cannot be added to the widget panel, I would use a custom container.Can a properties panel be set for a custom container? thxJN
I'm currently switching from the emWin 5 graphics library to TouchGFX and have a question.I have an IMAGE widget that reacts to an event: 1) click (calls a function to play sound) and 2) release (calls a function to send data to change status: SET_STOP_WORK, SET_WORK).The IMAGE widget can display 3 pictures, depending on the state, bmSTOP_WORK.png, bmPAUSE_WORK.png, bmIS_WORKING.png. To display these pictures, the function is used:void IMAGE_SetBitmap(IMAGE_Handle hWin, const GUI_BITMAP * pBitmap);The pBitmap pointer receives the address of the corresponding picture, depending on the state. These images are precompiled into "C code" as a separate src file. Code Main_window:const GUI_BITMAP *pBitmap = &bmSTOP_WORK;// Init widgetcase WM_INIT_DIALOG:: hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_4); IMAGE_SetBitmap(hItem, pBitmap);// Paint widget - updatecase WM_PAINT: hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_4); IMAGE_SetBitmap(hItem, pBitmap)
Hello,I would like to enable the dragged of the circle only in the horizontal direction for a customized container on which I only have a circle. I would also need to limit the left and right "stop" when dragging. I set up draggable and I can move the circle freely. Can you advise? Can I find a exaample somewhere?Thank youJN
I have an H755 nucleo board and a riverdi 5'' rgb display.Aftersetting the ltdc ,the clock to 25mhzthe freertosnot using qspi and sdram just by using the 2 layer start address 0x20000000 and 0x20119400 for RGB888I have enabling the nvicI have crosscheck the riverdi example for the ltdc setup and the polarities and everything is the same.I have checked the +VLED and -VLED from the led driver it provides 12V and the rest of the system is on 3.3V.I have opened the touchgfx and set only one red box as background.I have set a blinking function to CM4 and to CM7 to be sure that all are working. Technically on CM7 where touchgfx runs before the MX_touchgfx_process() function i just open the red led for some second and close it. then the touchgfx_process runs.The screen does not open. If i am not using qspi and sdram do i need to write something on how to send the data to the display pins? do i need to control something?here is a link to the project (zipped):RiverdiH755 project&nbs
Hi,I'm looking at customising the circle progress.I was able to add this as the background image and added a single dot as the image to rotate.Any idea on how to rotate the dots and make it disappear?
I want to add custom wave forms like square, sine and etc, so how I could achieve this easily?
Hello everybody, This is my first time posting on that forum and also first time using CubeMX+CubeIDE+TouchGFX. I am a bit oldschool and come from older PIC and newer Microchip/Atmel SAMD MCUs.I started early last year playing with the STM32U5A9J-DK that I got from Embedded World. Then I designed a custom board using the 599 LQFP100, as I only need a few gpios for the TFT and I2C for some sensors.I decided to implement also the OctoSPI that cames with the kit onto my design.Long story short, I am not able to show anything on my screen, that uses the ST7701SN driver. Before posting, I spent around 10 days looking to this forum, and init code/libraries for this driver IC, however, no luck. I tried some SPI init codes I found here on this forum, but still the same, nothing. I tried SPI 9 bits and custom gpio init, no luck with both.As I am quiote new on this STM32 world, I am not 100% sure that I did the configuration correctly, but I think I did, enabling DMA2D, GPU2D, LTDC with pro
Hello ST Community,I'm currently working on a project involving an STM32H7B3I-DK microcontroller, ADC readings, and the TouchGFX graphical framework. I have successfully implemented ADC reading and data transfer through a queue, but I'm encountering challenges with correctly displaying the ADC values on the TouchGFX screen. I have attached a screenshot for reference.Issue Details:- Using TouchGFX for GUI development.- ADC values are confirmed through the data queue.- The displayed values on the TouchGFX screen appear to be erratic and not reflecting the expected values. (Text area buffer size is 5)The graph is just static not real values yet I would appreciate any insights or guidance on properly interpreting and displaying ADC values in a TouchGFX application. If you've encountered similar issues, your assistance would be highly valuable.
Hello everyone,I'm facing an issue with STM32H750 and an SPI memory connected to SPI2 peripheral, and I hope someone here can lend a hand or share similar experiences. Currently, I'm dealing with the following problem:Configuration:STM32H750CubeMX 6.8TouchGFX 4.16Firmware 1.11.1SST25VF016B flash memory (16Mbit R/W speed from CubeMX)The Problem: We are developing a complex application based on STM32H750 that utilizes nearly all available GPIOs. Our application needs to load data from a flash memory connected to the SPI2 peripheral. In our initial tests on an empty project, the BSP we developed could read and write data without any issues, with a polling read/write time for a 4KB segment being less than a millisecond, just as expected.However, once we added FreeRTOS and TouchGFX, we encountered the following problems:The polling read time for a 4KB segment increased to around 200 ms.The read data is not always correct.The SPI2 peripheral occasionally times out.We have tried to address th
Hello,I have to measure the pulse width and the period of Fiber-Optical Signal with STM32F469 Discovery board and view the values on the display using TouchGFX Design.I have no problem to blocking the display for a while (max. 2s) to read a pulse width that maybe between (1us - 1000us) and the period (10 - 100ms) but i should also ignore some pulses (for data transfer) which they comming within 10ms..I am using Input capture mode on the input pin and thought to call HAL_GetTick which returns microseconds value of InitTick to be able to ignoring some pulses and to make a global timer then i know where i am but i think all the interrupts will be suspended when the IC called even that for GetTick!Hier is the signal that i should handle.I have wrote my code in Model part of TouchGFX thats way i could after that pushing the values directly to View.It is very critical and i don't know if it will work by the way. I need to get some ideas also .Thanks
Hi,I have a Nucleo-U5A5ZJ-Q board which i replace the mcu with a STM32U5A9ZJT6.I'm trying to use LTDC to control a 800x480 LCD (WF50FTYAGDNN0#) via RGB888.Eventually running touchgfx, but I have fallen over at the first hurdle.I have read many tutorials and forum posts and no one seems to have the same issue as me. I started a blank project and followed thishttps://support.touchgfx.com/docs/development/board-bring-up/how-to/03-display-internalBut my display remains a black screen, I then probed PD3 (LTDC_CLK) where I expected the 25Mhz clock signal that was configured, but saw nothing. I also tried switching the pins "Max output speed" to Very High as I saw somewhere that this was required.I then switched PD3 to GPIO_Output and toggled it to make sure connections are correct. Is there something wrong with my clock setup? I tried a test of toggling a pin in the while loop with a 1ms delay and the scope says a full cycle took 4ms instead of the expected 2ms... but then I s
Hi all,Below is my hardware configuration,MCU: STM32H733VGTDisplay Controller: SSD1963Winstar Display: WF70QTIBGDBT0Display size: 7.0” TFTInterface mode: Parallel 808016-pin data and 4-pin control16BPP mode = 5R 6G 5BResolution: 800x480NOTE: not using I-Cache, D-Cache, DMA, DMA2D, LTDC and FMCI have taken the refrance from below,https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-fmchttps://community.st.com/t5/stm32-mcus-touch-gfx-and-gui/how-to-configurate-my-custom-project-with-touchgfx-engine-and/td-p/282889 Issue is i am not able to see the framebuffer on a screen. (i have atteched the screenshot)However i have tested the driver call before starting the touchGFX process, and seems SSD1963_Init(), LCD_Rect_Fill(), SSD1963_Set_Work_Area() and SSD1963_FillBlockFrameBuffer() works fine.Framebuffer placement:Buffer size = 800 * 480 * 2 (bytes = 16 bits = 5R+6G+5B) = 7,68,000 = 750kbLOCATION_PRAGMA_NOLOAD("TouchGFX_Fram
hi im using f746g-discovery board i want read image data from sd card and display it on screen. but i dont know how can read data from sd card and how display it on screen. Thank you for reading.
1) How can I make the TextArea widget clickable and handle the PRESSED and RELEASED events separately?2) How to create a keyboard? When the TextArea is clicked, the keyboard appears, numeric data is entered, and it closes. Is there an example of a project using a keyboard?
Used ecosystem :STM32CubeIDE version: 1.4.2 Build: 7643_20200813_1322 (UTC)TouchGFX vesion 4.5.0 , with STM32F746G-DISCO template version 3.0.2STM32Cube FW_F7_V1.16.0 DriversTo repeat the issue :1) Create a new project using TouchGFX Editor, using STM32F746G-DISCO as template.2) Add some widgets to the default initial screen (eg. some red text)3) Save and generate code from TouchGFX Editor.4) Open the ".project" file from the system's file exporer, letting STM32CubeIDE import it to the current workspace.5) Compile from STM32CubeIDE : success ! And it runs !6) Enable a new IP from the CubeMX .oic file (e.g, the USB_OTG_HS as Host Only )7) Save the .ioc file and let STM32CubeMX re-generate the code.8) Big HOT MESS in the project directory, the Debug output directory gets added as compilable, two main.c files appear in two separate Core folders, compilation won't succed anymore.:weary_face: :fearful_face: :loudly_crying_face:
I wish to drive (write output data streams) to a parallel-interfaced LCD display. There would be 8-32 bits of parallel data (tied to MCU GPIO output lines) and a strobe or clock line (also tied to MCU GPIO output line) to cause those bits to be transferred to the display. Whether there is a "ready" indication (from display to MCU) isnt known yet, somewhat dependent on whether there would be such a requirement, and how the MCU could go about honoring the requirement.I'm looking for guidance on whether I can do the data transfer via DMA, so that the MCU doesn't need to (under programmed operation) write individual bytes/words to GPIO and toggle the clock/strobe line for each (8-16-32 bit) word transferred. Ideally, I'd like to set a start address for the source data (which would be in ram or flash on the MCU) and have the data transfer cause an interrupt only when complete (rather than for each byte/word transferred.)My question at this point isn't specific to a given target device/part
Hello everyone,I spend hours trying to print the male and female ♂ ♀ symbol on the screen, without success.I tested this code and it works perfectly, when I change the hex to the desired symbol does it print "?" Screen1ViewBase::setupScreen(); Unicode::UnicodeChar buf[2] = {0x2082, 0}; Unicode::strncpy(textArea1Buffer, buf, 5); textArea1.invalidate();any tips pleaseRegards,Rego
Hello everyone, Good day. We would like to know how do we implement a Delay function in TouchGFX? Something similar to the Arduino IDE Delay function. Please provide kind support, Thank You Best Regards.
Hello, I have generated a simple UI from TouchGFX Designer and try to enable the Ethernet connectivity, with an external PHY lan8742A. The steps I did:1) Configuring MPU regions like this:2) After that I have enable the global interrupt for ETH peripheral like this: 3) Subsequently in Middleware section I have enabled the LwIP, set the platform and changed only MEM_SIZE and HEAP_POINTER like this:while I have disabled the DHCP and set my static IP Address.4) Going now to the ethernetif.c file I declared the RxPOOL section like this: extern u8_t __attribute__((section(".RxPool"))) memp_memory_RX_POOL_base[]; 5) Finally, I went to the linker script .FLASH and enabled the .lwip_sec working in RAM_D2 like this: .lwip_sec (NOLOAD) : { . = ABSOLUTE(0x30000000); *(.RxDecripSection) . = ABSOLUTE(0x30000200); *(.TxDecripSection) . = ABSOLUTE(0x30000400); *(.RxPool) } >RAM_D2 I am not doing something else, I only u
hi guys im having an issues with opacity of a picture in the touchGFX from some reason its giving me only tree option: solid (255) or invisiable (0),and the third option is between which is staying on the same opacity all around the scale between 1- 254so its dosent metter if im choosing 170 or 254 its will give me 50% opacity..how can i solve this issue?
hi,1- What's the best way to speed up the swipe container transition?2- How can I change the animation of swipe container? 3- SwipeContainer.cpp can not modify. how do I make changes permanently ? thanks for help
Hello all, Good day, Recently I have been messing around with Text Areas and Wildcards in TouchGFX. I have found that the wildcards value will not save when switching between multiple screens. by using keyboard, I am using the keyboard keys to enter into the text area but when we switch to another screen the entered text in the text area is deleted and it shows blank in the text area. How to solve this problem?
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.