Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
So let say I have a group of radio button like this:touchgfx::RadioButtonGroup<5> radioButtonGroup1;And whenever use select every radio button inside the group, I want to trigger the same callback handler.How can I achieve this? '
Hi, I'm currently programming an STM32 H7B3I-EVAL. There are two things I'd like to do: find and extract a FrameBuffer, and send that data to my computer via a debug port. I would just like to make sure that I'm developing this correctly, because I feel like I may be confusing myself by working too low-level or jumping into too many rabbit holes...Regarding the first part - extracting a FrameBuffer - I've used CubeMX to set the FrameBuffer dimensions to 800x480 (the size of the LCD on the evaluation kit), single buffer, RGB565, and the memory address to 0xC0000000.All I need to do to access this in C++ is to set a pointer to that address for an array of 800x480 uint16s (since it's 16bpp), correct?Regarding the second part - sending the data to the computer - I've used CubeMX to set pins PB10 and PB11 to USART3_TX and RX, respectively. I did this because USART3 is designated as the virtual COM port connected to CN21, a microUSB port.However, the actual communication confuses me a bit...
HiI have STM32F446RE and X-Nucleo-GFX01M1.When flash my nucleo I get:File download completeTime elapsed during download operation: 00:00:03.366Verifying ...Download verified successfully Debugger connection lost.Shutting down...But I cannot see anything on my screen.Probably because when I generate the code, the SW does not modify the SPI configuration and not initialize it.reading the following document https://www.st.com/resource/en/user_manual/dm00720406-.pdf for me, it is not clear how should I do it. Ex: mode: full/half duplex? CPL/CPA ? CRC calculation? LED? FMARK? etc.ThanksFausto
Hello community,i want to know what’s the difference between the adv7533 that sits in the F7 Cube and the H7 Cube? Why there are extra files for the H7 Cube? (reg.h and reg.c)thank you
EDIT: In case someone in the futurehas the same problem, I solved it by welding each pin.Hello, I'm trying to learn about microcontrollers and some of their characteristics, so bare with me as I'm pretty new to all of these stuff. Right now I'm trying to send some data to an LCD, just some basic program.I've got a nucleo board f303ze which works fine on all the projects that I've done so far.I recently I bought this LCD display: https://www.amazon.es/AZDelivery-HD44780-visualizaci%C3%B3n-16-caracteres-Arduino/dp/B07CQG6CMT/And I'm trying to make it work with the nucleo board.I've been following this tutorial: https://www.youtube.com/watch?v=e-KgHsQPkwgWhich uses the following libraries: https://github.com/MYaqoobEmbedded/STM32-Tutorials/tree/master/Tutorial%2042%20-%20LCD16x2%20I2COf which I had to edit lcd16x2_i2c.c, as it seemed to have soem duplicate lines. (I upload the new file .c, but I think it's fine now).So, there are several problems after I connect the LCD+adpater to the boa
Hello,We are developing an application with TouchGFX using partial buffer method. Here is our configuration. our application has custom LCD support. The application reads data for LCD from external SPI flash and tries to send it to LCD.Now the app calls "touchgfxDisplayDriverTransmitBlock" function where we have implemented calling LCD_Drawpicture routine. This function gets called and LCD_Drawpicture also works fine, however, we observed that this function always gets variable "h = 3" . Since h is always 3, we are only getting 3 rows on the screen as can be seen in the picture.(Please ignore RED color, that is what we set in the LCD initialization to check LCD is working, using LCD library, before initializing touchGFX) this is what we expect our application to show. Please let me know if any other data is needed in order to get proper help from the community.Please suggest what we are missing.Any help will be greatly appreciated. Thank You in advance.
Has anyone port touchgfx to work with UCOSIII?
Hi,I created a project for STM32F769I EVAL in TouchGFX, opened the project in STM32CubeIDE, but the IDE can't open the .ioc file:Plug-in com.st.stm32cube.common.mx was unable to load class com.st.stm32cube.common.mx.editor.CubeMxEditor.org.eclipse.core.runtime.CoreException: Plug-in com.st.stm32cube.common.mx was unable to load class com.st.stm32cube.common.mx.editor.CubeMxEditor....Caused by: java.lang.ClassNotFoundException: com.st.stm32cube.common.mx.editor.CubeMxEditor cannot be found by com.st.stm32cube.common.mx_6.1.0.202011121557...Note that the file opens successfully in CubeMX. So I tried opening it in CubeMX and re-generating the code for STM32CubeIDE, but I'm still having the same problem.STM32CubeIDE Version 1.5.0..ioc file attached.Any help is appreciated.
Hi guysI was using STM32F4 Cube package 1.25.0 with SEGGER_SYSVIEW_FreeRTOS.c and other segger files and a few days ago, I replaced it with a new package 1.26.0 and met the error below."C:/Users/ckim/workspace/STM32Cube_FW_F4_V1.26.0/Middlewares/Third_Party/FreeRTOS/Source/queue.c: In function 'prvNotifyQueueSetContainer':../../../Src/Core/Logs/SEGGER_SYSVIEW_FreeRTOS.h:223:195: error: 'xCopyPosition' undeclared (first use in this function)#define traceQUEUE_SEND( pxQueue ) SEGGER_SYSVIEW_RecordU32x4(apiID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), 0u, 0u, xCopyPosition)"It looks FreeRTOS V1.3.0 (included at 1.26.0 package) doesn't use xCopyPosition anymore.Do you have any idea how to resolve this issue?
STM32F769 discovery board and Raspberry Pi 7 inch LCD are connected using B-LCDAD-RPI1.The part I want to help is to decorate the interface with TOUCH GFX using CUBE MX. Thank you for telling me how to set it up or the code.
Hi @Martin KJELDSEN Is it possible to add a preprocessor definition to the TouchGFX Designer? In Visual Studio it is very easy, but when I try to run the application in the designer it fails. How can I add a Preprocessor definition to the Designer (like SIMULATOR). Marco
Hi!I've created an application using STM32H7B0 with external flash memory connected through OCTOSPI. Everything was fine until I started to create some kind of log console for printing logs from the program out to the LCD.The log console consists of a Box for background, 18 TextArea objects for logs and a CustomContainer(4 TextArea with Wildcards and Box for background) as header. After downloading the app to the uC the LCD displays some kind of random pixels and it stops there. When I tried to pause the debugger it stays at some line in InterruptHandler for TIM1 and I cannot step through the code. It looks like the connection between the uC and debugger gets lost. Then I stepped through the code to see which line is causing the error. I got to the second TextArea in my CustomContainer and method .setTypedText(). After I stepped one more time the same thing happened as I described in the previous paragraph. I decided to remove the CustomContainer from the screen and after that my app b
Dear all.The phenomenon does not occur in "Generate Code", it appears in "Run Simulation".The source is a file shared through "git", so some folders were not created.The error that occurred in STM32cubeIDE because the folder was not created has been resolved.Errors occurring in TouchGFX are difficult for me.We share the error code below.Thank you in advance.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 Post Generate Target touchgfx update_project --project-file=../reblesspro-lcd.ioc --platform=m7 Done Compile make -f simulator/gcc/Makefile -j8
..
Text Widget does update on multiple invalidate call in WM_PAINT BlockI am trying to update text widget in a WM_Paint block but it does not show any changes on screen.Please find my attached file for initialization. I am also trying to draw a rectangle at line 202 but it also doesn't show up.
Reposting here what i wrote in "Known Issues": https://touchgfx.zendesk.com/hc/en-us/articles/207507415TextArea and ChromART (DMA2D)Rendering of TextAreas with ChromART (when TextArea is the top most element / last to be drawn) causes a premature unlocking of the framebuffer and subsequently a premature completion/transfer of the current frame to the display. Once endFrame() is called by TouchGFX all drawing operations, including DMA operations, should already be completed. Due to a breach of contract by TextArea in how to appropriately protect the framebuffer, DMA operations are allowed to continue even after returning from endFrame().The contract for a widget is to either:Lock the framebuffer (returns a pointer to framebuffer).Draw something in the framebuffer. Unlock the framebuffer.Or to use DMA operations, in which case syncronization of the framebuffer is handled automatically.TextArea, in 4.10.0, mixes the two procedures which can cause glitches if it is the top most elemen
STM32H750 with external flash and SDRAMTouchGFX version: 4.13.0CubeIDE version: 1.3.0display size: 480x272(landscape), but I config the display orientation in portrait in TouchGFXcolor depth: 24bitshttps://drive.google.com/file/d/1zCucWuLi5BSJUm0VCHaRtqnaUQRpIIhy/view?usp=sharingPlease see the video showing the tearing effect. It happens randomly after reboot. If I reboot 100 times, I can see it around 1~3 times. It will keep exist until next reboot.I also found setVisibile (left top icon) will cause tearing, but setAlpha (middle icon) will not. Could anyone provide some advice for debugging?
I have stm32f769 discovery board and i want to use it's LCD. at first i choose stm32f769i discovery kit in touchgfx: application template. i design my user interface and generate code. when i press Run Target, the lcd of my board is programmed and works well. now i want to add some peripheral to my project. like uart, interrupt and ... .because of this i need to open the project in keil. i open the keil project that touchgfx has made. but i can't build it.when i want to build project i get some errors like in the picture. what should i do? thans for your help
Hi everyone,I have a button (flexbutton), that should triggers a different action depending on his previous state. For instance, my button should light on or light off a light, depending on his previous state. If the button was previously activated, it switchs the light off, and vice-versa.In WPF I used a proprety called "tag", which was changing depending on the user actions, but is such thing or similar available in TouchGFX ? I don't want to use toggle buttons, multiple buttons or create a variable in code. Thanks!
Hello; I try to undestand touch gfx watch application. I could not understand how the pressure arrow is rotating without any interaction algorithm. Is the rotation of texture map related with orego? What makes the 2 step forward and 1 step backward, how can achieve this in a new created texture map?
Hi.Using TouchGFX 4.15.0, I've run into three issues related to Template packing/generation.First Issue is that, following the information available at the Creating Application Templates, I was not able to successfully execute the process at all.To test the procedure, I started with a TouchGFX-Designer generated project based of a Discovery board Application and simple UI TempletaAfter running tgfx.exe to generate the initial .zip file and .json manifest, the .zip file is created, but then tgfx.exe fails as follows:Unhandled Exception: System.ArgumentNullException: Value cannot be null. Parameter name: input at System.Version.Parse(String input) at System.Version..ctor(String version) at TouchGFXPackages.Implementation.CreateTouchGFXPackage.GetTgfxVersion() at TouchGFXPackages.Implementation.CreateTouchGFXPackage.GetPackageUrl() at TouchGFXPackages.Implementation.CreateTouchGFXPackage.CreateMetaData() at TouchGFXPackages.Implementation.CreateTouchGFXPackage.CreateTgfxJsonPackage(
I am having issue to display a keypad container inside ListLayout. Problem: After displaying the keypad container by setting the container height, and invalidating the container & ListLayout, the other child inside ListLayout is not moved shifted/rearranged accordingly. Note: The entire ListLayout is placed inside a scrollable container, so when the keypad is shown, I should be able to scroll down and access the hidden keys.Before pressing the flex button After pressing the flex button Code container_keypad.setHeight(269); container_keypad.invalidate(); listLayout1.invalidate(); Screen Hierarchy : Screen Container -> Scroll Container -> List Container Update1:I solved the problem by using the following lines when the flex button is clickedlistLayout1.insert(&container2,container_keypad); listLayout1.invalidate();Problem2:Now I have to close this keypad, I would like to make the button inside the keypad be able to call a function like listLayout1.remove
ILI9806E 5-inch LCD is connected to stm32f469 development board.LCD is connected to MIPI interface.And I used TouchGFX to mark the picture.It created and ran a test program that displayed multiple pictures every one second.A few minutes later, the picture came out and was no longer marked.I saw the internal action with debugging, but it was doing the internal action. It just didn't seem to show on the LCD screen.I changed it because it seems to be an LCD clock problem, but it's the same result.In this case, can you tell me which part to look at first?and Can you show me how to calculate the settings below if you have any data?PhyTimings.ClockLaneHS2LPTime = 33;PhyTimings.ClockLaneLP2HSTime = 30;PhyTimings.DataLaneHS2LPTime = 11;PhyTimings.DataLaneLP2HSTime = 21;PhyTimings.DataLaneMaxReadTime = 0;PhyTimings.StopWaitTime = 7;Thank you for reading my writing.
The lcd configuration uses LTDC(for data) and SPI5 for sending commands. The display driver used is ili9341. system clock configuration is as below./** * @brief System Clock Configuration * The system Clock is configured as follow : * System Clock source = PLL (HSE) * SYSCLK(Hz) = 168000000 * HCLK(Hz) = 168000000 * AHB Prescaler = 1 * APB1 Prescaler = 4 * APB2 Prescaler = 2 *&nb
I built a simple project that turns on a LED light. I would like to have the event trigger on the press of the button and not when I press and release the button. Is there a spot in the code where a simple change can make this happen?
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.