Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I have developed a device able to measure acceleration, so I essentialy have a GUI with a "start", "stop" buttons and also a text buffer showing the result of the last measurement.When I press the start button, a measurment starts and it keeps going untill I press the stop button.However, I would now like to make repeated measurements as follows, without having to touch the screen myself:Press Start button for (i = 1, i < 31, i++) // Repeat 30 times{if ( collected_samples >= some_value )Press Stop buttonelse Keep collecting samples}I tried calling the EndCallback functions from main.c and altough I was succesful in stopping the measurement, the GUI Freezes (No HardFault or anyting like that). The GUI simply becomes irresponsive.Therefore, I was wondering if there is another way of interacting with the GUI without actually touching the display. For example, maybe each button is linked to a boolean value or some other variable that I can alter from the code (in
I am using swipe container with two pages. Problem 1: We are unable to swipe the pages pointing on top of the graph. I mean, swipe container is working only in the region where graph is not there? I understand that this is because of click event and drag event functions of graph widget, I only need swipe container. How to override this graph drag event function to still continue to use the Swipe container with left and right swipe option.Problem 2: The graph works well as long as we are in same screen, when we transit to screen2 and come back to screen1 (where graph and swipe container are present) the graph creating hard fault after swiping on graph ? how to resolve this issue ?
I read some demo code, the result is YES. am I right?
After updating my project, from 4.15.0 to 4.18.1 the colors displayed on the display are not the same that those on the simulator.The simulator works fine colors are correct.Moreover I observed something strange:If I set the color depth at 16 bpp : Colors are wrong on display and correct on simulator and I can have a normal use of the opacity (Alpha).But if I set the color depth to 24bpp : Colors are correct on both Display and Simulator, however the opacity modification isn't working. The Alpha factor has only effect on "Line", and haven't effects on Box, FlexButton, etc....I am working on a custom Board based with an STM32F50N8H6 MCU.Version of the STM32F7xx_HAL_Driver is 1.2.10After reading others post on this forum, I saw some solutions dealing with the modification of the "STM32F7DMA.hpp" file. But I see no effect. Thanks in advance for incomming support.KR
Hello TouchGFX team,I migrated my project from 4.18.1 to 4.20.0., added some dynamic graphics handling and now I get a linker error when building the project:xProML_TFT\xProML_TFT.axf: Error: L6218E: Undefined symbol touchgfx::paint::rgb888::lineFromColor(unsigned char*, unsigned, unsigned, unsigned char) (referred from painterrgb888.o).xProML_TFT\xProML_TFT.axf: Error: L6218E: Undefined symbol touchgfx::paint::rgb888::tearDown() (referred from painterrgb888.o).Not enough information to list image symbols.Not enough information to list load addresses in the image map.Finished: 2 information, 0 warning and 2 error messages."xProML_TFT\xProML_TFT.axf" - 2 Error(s), 0 Warning(s).I tracked the file painterrgb888.cpp and see a big difference between the version from 4.18.1 and 4.20.0. As this is a part of the framework (widget / canvas), I don't dare to copy the file from the old version to version 4.20.0.How can I fix this??? What is wrong ? Any help is very much appreciated. My customer (
..
My STM32F469I-DISCO does not fully initialize when I enable DAC1 and DAC2 on a new TouchGFX 4.20.0 project.If I don't use TouchGFX, but just the latest version of STMCubeIDE (1.1) then everything works fine. What am I missing here? I've been able to use the DACs and TouchGFX on this development board in the past.
MCU : STM32H743ZISTM32CubeIDE 1.10.1TouchGFX 4.18.1I created a stm32h743 project with cubeMX and created a simple red screen as in this video https://www.youtube.com/watch?v=SRQD8JMeg_k&t=3034sI added the fix in this topic https://community.st.com/s/question/0D53W00000j6zuDSAQ/exact-steps-to-configure-touchgfxI also added in stm32h7xx_it.c :extern LTDC_HandleTypeDef hltdc; void LTDC_IRQHandler(void) { HAL_LTDC_IRQHandler(&hltdc); }But my project isn't working, what can I do to debug it ? Should I add MPU code ?
TouchGFX projects has a cube_programmer.mk in each project folder.I have installed my CubeProgrammer in a different location to the default location in the cube_programmer.mk. I was wondering if the cube_programmer.mk is created on each project creation as part of the code within in the TouchGFX IDE or is it a file template which is copied from another location each time? I would like to change the master file so I do not have to change the project file each time.
I am new to TouchGFX. I am working on STM32 controller based project. In that TFT LCD screen is one of the peripherals. I want to create screens using TouchGFX so that i can set value on screen and run timer according to the value entered on screen, during this complete duration my led will be ON
Hi Community,I have got the video output , using video widget in Touch GFX (v4.19.1). But video is playing frame by frame as attached in video. Anyone is having idea about the solution for the same?IDE : STM32CubeIDE (v1.10.0).Designer :Touch GFX Designer (v4.19.1)./Vins
After upgrading from TouchGFX 4.19.1 to 4.20.0 the TouchController (and maybe also GPIO) does not work anymore.The reason is, that now (after device configuration tool code generation or TouchGFX update) our user code in all files in the directory "target" disappeared. During migration it could be selected do keep the user code - the user code in main.c was kept.Before:/* USER CODE BEGIN STM32TouchController */#include <STM32TouchController.hpp>#include "touch.h"extern I2C_HandleTypeDef hi2c3;extern TS_Driver_t ts_driver;TS_State_t state;void STM32TouchController::init(){ /** * Initialize touch controller and driver * */ ts_driver.Init(); ts_driver.GetFWVersion(&hi2c3,state.fw_version); ts_driver.GetModelName(&hi2c3,state.model_name);}----------------------------Now:/* USER CODE BEGIN STM32TouchController */#include <STM32TouchController.hpp>void STM32TouchController::init(){ /** &nb
Hi Community, Instead of BSP FT6x06 Touch Sensor (Which is connected to I2C4) how to connect to other Touch sensor to Touch GFX and control the display?/Vins
What is the clock rate to be set for LCD-TFT(MHz) and what does the value 1834 indicate? How do we calculate them?
HelloI want to know how to use "Wildcard" in "Text Area" of container.Container is created as shown in the figure below.We are going to use Text Area and WildCard for Container.I'm trying to change the WildCard data by calling the Container created above in "Screens", but I don't know how.The tutorial in the link below is only briefly shown.-> https://support.touchgfx.com/4.20/docs/development/ui-development/ui-components/containers/containerI want to edit Wildcard in TextArea of Container in Screens with "snprintf" as shown below.Unicode::snprintf(customContainer_Name.textArea_Name.textArea_kBuffer, customContainer_Name.textArea_hiddCook.TEXTAREA__SIZE, "%02d", (int)( data ));Are there any resources to refer to?thank.
I am able to display the P_soc properly but when I tries to print (P_temp_h)*0.1 if it is 4 digit( i.e 2 digit before decimal and 1 digit after decimal and decimal point) then I could display the data properly. But If it is 5 digit then the function resizeToCurrentText() is not resizing the textarea. What is wrong here? Note: P_temp_h is an integer value and multiplying it by 0.1, I am just putting a decimal value after leftmost one digit, i.e., I am conveting it to float.void DataScreenView::handleTickEvent() { /* Board A parameter */ b1SOC_bp.setValue(P_soc); // only integer value in % b1SOC_tp.setValue(P_soc); // only integer value in % Unicode::snprintfFloat(b1TMPval_taBuffer, B1TMPVAL_TA_SIZE, "%.1f", (P_temp_h)*0.1); //float value with precision 1 b1TMPval_ta.resizeToCurrentText(); b1TMPval_ta.invalidate(); }
Hello software team of STM32CubeMX,I have a huge project on an STM32H7 which uses DMA on 2 USART ports and SPI, has USB interrupt activated and a Timer. The project also uses TouchGFX with FreeRTOS. When generating code of the unchanged - but migrated - .ioc file, the HAL calls for some interrupts are missing when generated with the latest version 6.6.1.As I always compare previous version and newly generated versions in order to see the difference and maybe to include some changes which I have to include manually, I discovered the missing calls. Interrupts are activated in the Cube correctly, but the needed calls for handlers are not included (e.g. HAL_DMA_IRQHandler(&hdma_usart3_rx);)Please see attached the .ioc. I also added the stm32h7xx_it.c module, where I have put the missing calls in the "User code" sections, so they will not be missing next time I generate code.BR GS.
The screen of my H750B-DK board is weirdly flickering every 12 seconds when the system clock is set to 350MHz. Previously I was at 400MHz when the issue first appeared and the flicker happened about every 10 seconds. At 480Mhz (max) the issue seems to be gone.The issue is presented on the video below (for 350MHz):https://youtu.be/M4nj6cP3B6UThe issue appeared randomly after implementing a new feature (a new class containing all MQTT publish message functionality). I have hooked up one class to have access to tick events but there is only one if statement within it with very little code and also it is not run every 12 seconds but rather when a hardware event happens (MQTT disconnection) so this is not it.I am also using tick events in my main screen but there is only an empty placeholder if statement and another if statement for checking a FreeRTOS queue for data (for sending error codes from hardware to TouchGFX for display).I am using no custom interrupt or timer routines yet. This is
When I tested TouchGFX and CubeMX with the STM32H735 discovery kit, it took me 1 hour to develop my UI and validate it (great!)I designed a custom board with a STM32H743ZI and I have been trying to generate a proper project with CubeMX and TouchGFXFirst, I tried to generate the project with TouchGFX but it doesn't seems to be possible because you have to chose a DKSo I generated the project with CubeMX (configured everything) and selected TouchGFX 4.18.1 and FreeRTOS. And then generated a sinple TouchGFX UI to test the board.I needed to add the touch GFX task manually and added MX_TouchGFX_Process(); in itBut the method TouchGFXHAL::taskEntry wasn't generated so I copied it from my DK projectNow I get a memory corruption when in HAL::tick() but I don't have access to source code to debug it.What did I do wrong ? Does the generation tools only works with DK ?I added my project, please help me or show me resources I can use to generate a project that's working
Adding DCMI to CM7 in MX (within cubeIDE) to a TouchGFX generated project against a 747_DISCO board causes stm32h7xx_hal_conf.h etc to be suitably updated, but stm32h7xx_hal_dcmi.c isn't added to build list. Is there a manual way to add this to the project (or can ST fix this asap?)
In an aplication using STM32L0 I need to enter the STOP mode when I realize the AC mains disappears and the uC must be powered by a battery.So before entering the STOP I obvioulsy deinit all the peripherals used till then and put the pins in analog mode as suggested. Doing so I have about 4.8uA.Too much for my applications. So I investigated further and discovered with my great surprise that if I skip:__HAL_RCC_LCD_CLK_DISABLE();in HAL_LCD_MspDeInit() things go better I can falls to 2.6uA.I don't understand why disabling the clock of LCD should take much current!!!This is what I do;....HAL_LCD_Clear(&hlcd);HAL_LCD_UpdateDisplayRequest(&hlcd);HAL_TIM_Base_Stop_IT(&htim6);HAL_I2C_MspDeInit(&hi2c1);HAL_ADC_DeInit(&hadc);HAL_TIM_Base_DeInit(&htim6);HAL_TIM_Base_DeInit(&htim7);HAL_LCD_DeInit(&hlcd);GPIO_DeInit (); // Set all the GPIO pins as Analog HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);HAL_SuspendTick();__disable_irq();HAL_PWREx_EnableUltraLowPow
I have LCD connected to Nucleo with STM32L073. I have configured the clocks and low power mode so with EVERYTHING turned off I get 1uA of current.Now using cube ide I have added configuration for LCD: hlcd.Instance = LCD; hlcd.Init.Prescaler = LCD_PRESCALER_1; hlcd.Init.Divider = LCD_DIVIDER_31; hlcd.Init.Duty = LCD_DUTY_1_4; hlcd.Init.Bias = LCD_BIAS_1_3; hlcd.Init.VoltageSource = LCD_VOLTAGESOURCE_INTERNAL; hlcd.Init.Contrast = LCD_CONTRASTLEVEL_5; hlcd.Init.DeadTime = LCD_DEADTIME_0; hlcd.Init.PulseOnDuration = LCD_PULSEONDURATION_4; hlcd.Init.HighDrive = LCD_HIGHDRIVE_0; hlcd.Init.BlinkMode = LCD_BLINKMODE_OFF; hlcd.Init.BlinkFrequency = LCD_BLINKFREQUENCY_DIV8; hlcd.Init.MuxSegment = LCD_MUXSEGMENT_DISABLE;And after that I get 15 uA of current. Datasheet on page 86 says that I should have 2.6uA of additional current for LCD driver. How to initialize LCD display to achive what is in documentation?
So I have a gui runing on touchgfx part, i want to sample adc using interrupt mode but when ever i run adc in continuous mode the screen blanks out.Similar thing while enabling timer interrupt But for the timer if the interrupt in like greater then 700u second the gui working fine other again the lcd blanks out...Any ideas why?
HelloI am looking for a solution to use the STM32H7A3 with PAL video format for input and output. The main idea is to add overlay to a PAL input video and to output the video in PAL format.As an alternative I am looking to chip digital video converters in order to convert the video to the right format for the STM32. I have found the FLI2301 (Single-chip digital video format converter) (https://www.stmicroelectronics.com.cn/resource/en/data_brief/fli2301.pdf), but this part is obsolete. Is there any alternative to this part?
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.