Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
hi,i am working on the STM32L and i have a problem with the lcd, no matter wich programm i am testing it's not working the programm hangs in the function LCD_Init() at : /*!< Wait Until the LCD Booster is ready */ while(LCD_GetFlagStatus(LCD_FLAG_RDY) == RESET)i tried to reboot the stm32l but still not workingis there something i can do to fix it ? or is it out of use ?
When I set up contrast to value less than 5 I get stuck on HAL_LCD_Init() on wait for booster, and initialization fails: /*!< Wait Until the LCD Booster is ready */ while(__HAL_LCD_GET_FLAG(hlcd, LCD_FLAG_RDY) == RESET) { if((HAL_GetTick() - tickstart ) > LCD_TIMEOUT_VALUE) { hlcd->ErrorCode = HAL_LCD_ERROR_RDY; return HAL_TIMEOUT; } }Do I have to initilize something else to get other values of contrast? 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;
TouchGFX 4.23.2 is now out.Please follow this link to download it.4.23.2 Release details:Release date: March 14th, 2024Bugfixes in TouchGFX Designer:Fixed a bug where TouchGFX Designer would not close properlyBugfixes in TouchGFX Core:Fixed issue were accessing cached bitmap data could result in unalignedmemory accesses.4.23.1 Release details:Release date: January 22nd, 2024Bugfixes in TouchGFX Designer:Fixed TextArea lineheight in canvas not matching with rendered lineheight.Fixed 'tgfx.exe generate' creating new 'touchgfx_backup' everytime it is executed.Fixed opening properties for 'Grid Lines' and 'Labels' on graph widgets enabling and disabling them.Fixed importing Custom Widgets with fonts causing issues.New TouchGFX Core Features:Added methods SwipeContainer::goNextPage() and SwipeContainer::goPreviousPage() to change page with an animation.Bugfixes in TouchGFX Core:Fixed issue where kerning data was sometimes missing for vector fonts.Fixed issue where CacheableContain
I'm playing around with the STM32U5A9J-DK dev kit and looking at the built in demo. Was the UI created using TouchGFX?
Hello,I'm starting a project with an STM32F429IIT6 MCU, but I have a doubt. The project will have a display (I haven't decided yet if it will be 4.3" or 7"), and I'll be controlling the display with the MCU's internal TFT controller using TouchGFX. So far, so good. The issue is that the device needs to be able to capture a screenshot of the screen and save it to an internal microSD. Is this possible, or should I use an external driver to achieve this?Best Regards,
Hi everyone.There is a my page. I defined a virtual function there. And I changed the image's location. But I can not call this function from C. I research many example but can not arrive the success. otherPageView.hpp #ifndef OTHERPAGEVIEW_HPP #define OTHERPAGEVIEW_HPP #include <gui_generated/otherpage_screen/otherPageViewBase.hpp> #include <gui/otherpage_screen/otherPagePresenter.hpp> class otherPageView : public otherPageViewBase { public: otherPageView(); virtual ~otherPageView() {} virtual void setupScreen(); virtual void tearDownScreen(); virtual void handleTickEvent(); virtual void function1(); protected: }; #endif // OTHERPAGEVIEW_HPP otherPageView.cpp #include <gui/otherpage_screen/otherPageView.hpp> #include <touchgfx/Color.hpp> #include <texts/TextKeysAndLanguages.hpp> #include <math.h> #include <touchgfx/hal/OSWrappers.hpp> extern "C" void call_C_f(otherPageView* u) // wrapper
Hello everyone,I have Custom board that has STM32H7 controller.I wanted to interface display module G070ACE-LH3 and i have RGB to LVDS DS90C385AMT/NOPB.As I am a beginner wanted using Stm32 LTDC interface to bring up the display.Can anyone help me with that?#LTDC to LVDS
Hi, I have TouchGFX Designer 4.22.0 version installed in my PC. For my project I am using STM32U5A9NJH6Q controller with Riverdi display part number SM-RVT50HQSNWC00-B. But, in the TouchGFX Designer application I am not able to create a project because in create->By Partners i am not able to find a template for this particular display. I can only find the templae for 1280*800 and 1024*600 resolution displays for Riverdi. But not for 800*480 resolution. Can any one please have a look in this and help me fix this issue. I have also attached in the screenshot of how my designer application create window looks.
Hi, I'm working on STM32F746G-DISCO. Kindly can someone tell me if it is normal that after making some project screens on TouchGFX and launching the SIMULATOR, everything is ok. I open the project with CubeIde and add some code from the IDE and transfer it to STM32F746G-DISCO it continues to work, if I try to simulate it with the TouchGFX SIMULATOR I can no longer make it work and it gives me errors right in the lines of code I have added. Thank you.
since i Updated to TouchGFX 4.21.0 (from 4.20.0) the LCD shows a visual artifactit happens when rendering images in the L8_565 format (plain RBG_565 works) or texti'm using a STM32 nucleo board with a STM32H7A3 processorwhen i generated the code with CubeMX 6.6.1 and TouchGFX 4.20.0 it worked without artifactsbut after i updated to CubeMX 6.7.0 and TouchGFX 4.21.0 it started showing these artifacts:example 1: this full screen image should have a solid yellow background, it is revealed using a wipe transition from black to the image. The wipe transition leaves black artifacts on the right edge (transition goes from left to right) Example 2: the text on the last menu tile is sometimes cut in half, it should say "Sprache" -Clemens
I am working on STM32H750B-DK and created a project using TouchGFX Designer (version 4.23.0), flash the code using Touchgfx Designer, and it's working well. but I will import the same project in STM32CubeIDE (version 1.14.1) , while executing Debugging mode the Display is hanging. the program breaks at the below function in the syscall. my project has multiple screens. the first screen is successfully teardown but the time of change screen to the next screen is the problem happens Please suggest any solutions void _exit (int status) { _kill(status, -1); while (1) {} /* Make sure we hang here */ }
Hello,We are in the process of integrating TouchGFX into our workflow and back-end build systems. We are using a STM32U599. Please see my question with respect to the tree belowWhat is the difference between TouchGFXNema and NemaGFX libraries?What does the wc16 suffix on the libraries mean? Middlewares/ST/touchgfx_components/ └── gpu2d ├── NemaGFX │ ├── include │ └── lib │ └── core │ └── cortex_m33 │ └── gcc │ ├── libnemagfx.a │ ├── libnemagfx-float-abi-hard.a │ ├── libnemagfx-float-abi-hard-wc16.a │ └── libnemagfx-wc16.a └── TouchGFXNema ├── include │ └── touchgfx_nema └── lib └── cortex_m33 └── gcc ├── libtouchgfxnema.a └── libtouchgfxnema-float-abi-hard.a
Hello, I am attempting to follow the tutorial listed here in order to generate a simple screen with some widgets for a Riverdi RVT70HSSFWCA0 display board. The board is correctly powered and i can access it with an external ST-LINK.However, when attempting to generate code with TouchGFX Designer (4.23.0) i am getting the following error in class DoubleBufferedVideoController during project compilation: C:/TouchGFXProjects/riverdi7-0001/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:36:70: error: cannot declare variable '{anonymous}::videoController' to be of abstract type 'DoubleBufferedVideoController<1, 800, 480, 2400, touchgfx::Bitmap::RGB888>' 36 | DoubleBufferedVideoController<1, 800, 480, 800 * 3U, Bitmap::RGB888> videoController; | ^~~~~~~~~~~~~~~ In file included from C:/TouchGFXProjects/riverdi7-0001/CM7/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp:27: ../../../CM7/TouchGFX/target/generated/DoubleBufferedVideoController.hpp:49:7:
Hi,When I close GFX Designer its window disappears, however, the TouchGFXDesigner-4.23.1.exe stays running in the backround - for every opened/closed *.touchgfx project. Does anyone experiences this GFX misbehaviour ?Best regardsFerro
Hi all,we have successully used an external SPI memory to store images.We have defined an external Flash section in our linker file ExtFlashSection :{*(ExtFlashSection ExtFlashSection.*)*(.gnu.linkonce.r.*). = ALIGN(0x4);} >SPI_FLASH and then extract the images from elf file with this command:arm-none-eabi-objcopy.exe --dump-section ExtFlashSection=images.bin Test.elfAll works perfectly.Now we want to store the fonts into the external memory. From the TouchGfx guide we see that we have to add the font section into linker file and thats ok.ExtFlashSection :{*(ExtFlashSection ExtFlashSection.*)*(.gnu.linkonce.r.*). = ALIGN(0x4);} >SPI_FLASHFontFlashSection :{*(FontFlashSection FontFlashSection.*)*(.gnu.linkonce.r.*). = ALIGN(0x4);} >SPI_FLASHNow:should we extract two separate bin files (one for the images and one for the fonts)? And in that case should we merge the bin togheter?arm-none-eabi-objcopy.exe --dump-section ExtFlashSection=images.bin Test.elfarm-none-eabi-ob
Hi there, I'm coming across some issues with respect to Touch GFX and my project. I'm trying to build a UI on the Touch GFX Designer software such that it can display certain temperature readings onto the Riverdi STM32H7 embedded display. I'm trying to use SPI2 communication line from the on-display board MCU to the temperature sensor module and hardware seems to be fine. For the CS Pin I'm using the GPIOA Pin 5 which is used for DAC1 (I've commented out it's initialisation and used it as a Output pin).I was able to successfully build the Touch GFX project and was able to access the 'gui' folder generated by the designer as you can see below: Files Next, I added the files pertaining to the MAX31856 temperature sensor that I'm using and please note that these files are in C and not C++. I also made sure that they were included in the project correctly however I'm not certain. Below are the include paths, the sensor files and the sensor file position in the project explorer:A)
I tried to integrate a working project for version 4.23.0 to 4.23.2 and get the current error as seen in screenshot.I tried to troubleshoot by generating a default project via TGFX to my stm32h7b3I -EVAL board (with a 480x480 screen and GT911 touch driver), and the exact same code gives no errors..... the only real difference lies in STM32TouchController.cpp where I have used the GT911 driver instead of the ft5336 touch controller and I have changed the coordinates to be uint16_t instead of uint32_t.
I have a working project that was running in STM32CubeIDE v1.7.0, with STM32CubeMX v6.3.0 and TouchGFX v4.18. After updating to STM32CubeIDE v1.10.1, STM32CubeMX v6.6.1, and TouchGFX v4.20, the program is getting stuck in HAL_Delay when HAL::initialize() is initializing the touchscreen.I watch uwTick variable up until the HAL::initialize() call, and it is updating. It is no longer updating in the Hal_GetTick function during touchscreen initialization.I have not changed any settings in the project or in CubeMX. I am not doing any overrides of the system tick initialization. Any ideas why this is happening?
Hi, I've been trying for a while to put together a simple program that uses both a GUI and an ADC. Previous programs I've made have been built using a text editor and make, but now trying to get toughGFX working in a project, it seems like I need an IDE to make it work. Is that the case?So far, I've tried 2 different ways to get the project built.First, I started with a TouchGFX project, got the GUI setup how I want, and generating the code from the TouchGFX Designer app. Then, I would open the CubeMX file and add/configure the ADC and timers and change the toolchain to make in CubeMX and clicking generate code again. I tried for a while to get this to compile, but couldn't figure out how to get all of the dependencies figured out.Next, I started with CubeMX first, got everything configured as necessary for the ADC, then added the TouchGFX software pack to the project, and selected make as the toolchain again. Then, I went to edit the TouchGFX application file, built my app as I wanted
I'm using TouchGFX with an RTOS.How can I shutdown TouchGFX, so that my RTOS is still running? This would require to exit from HAL::taskEntry().
Hi all, it seems that simply copying related files to path doesn't work and the reason is likely to be that the widget hasn't been registered in the new project yet. Wondering how to do the grafting work correctly.
Hello,the last release of TouchGFX has a problem when closed..The problem is that when I close it, the task doesn't close and instead remain open.See the attached image.It appears to be open in multiple instances.
Hi,i have a simple question about the configuration in the subject:to drive the TFT can i use the "parallel RGB (FMC)"?If i must select the "Custom" interface can i use the X-CUBE-DISPLAY library for ILI9341?How this library must be interface with TouchGFX function? The display doesn't work.Best regards,Ivan
Hello everyone,I've been pondering the most effective method to disable touch functionality while running my application. It's crucial for me to do so because I'm developing an RF product that could potentially cause interference with touch inputs.Should I incorporate some logic within the function below, or is there a better approach to achieve this?Thank you for your insights! bool STM32TouchController::sampleTouch(int32_t& x, int32_t& y) { /** * By default sampleTouch returns false, * return true if a touch has been detected, otherwise false. * * Coordinates are passed to the caller by reference by x and y. * * This function is called by the TouchGFX framework. * By default sampleTouch is called every tick, this can be adjusted by HAL::setTouchSampleRate(int8_t); * */ uint8_t rx_buf[16] = {0}; if (TouchINT_irq) // if (! HAL_GPIO_ReadPin( CTP_INT_GPIO_Port, CTP_INT_Pin ) ) { TouchINT_irq = 0; if (HAL_OK != HAL_I2C_Master_Receive(&hi2c1, (0x41 &
Hi,after looking into the library code, this forum, and playing for a while with library itself, I'm afraid I know the answer, - yet I'm still required to ask:does TouchGFX (or may be some current or future-planned variants of it) comply with any safety/quality standards and possesses any relevant certification? Like SIL 1/2/3/4, IEC 62304 etc.? Thanks
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.