Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Sometimes an image tells more than a thousand words:As you can imagine, the dots shouldn't be shifted to the right as on my display (there is an offset on the x-axis)This is my very example template (lots of buttons to test my touch).I use the STM32F469 controller and my display is a ILI9881.When I use the same display with the STM32 Disco Techstar Board everything works fine.I have no reference where to look for my misrepresentation.I appreciate your helpCheers Jimmy
I am trying to load the m29w256gh nor flash on the stm32f429zi mcu. I'm trying to create an external loader file, please advise. I checked the m29w128g sample, but the MCU and 256g model are not compatible. help me =(
To use a GUI from one project on another board, I tried to "Import GUI" through TouchGFX from a project developed on STM32G071 into another STM32F429I board and it works,The Import process on TouchGFX: Edit => Import GUI => BROWSE => exist project => Import The problems : - Graphic problem: The project remains in the dimensions of the initial board, there is no adaptation of the size of the Screens-Code issue : Error: FLASH region overflowed by *** bytes => we have to reduce the size of the imported code, I tried to use compiler optimizations but it doesn't work. How can we fix it ? Thanks Regards
STMicroelectronics ST-LINK GDB server. Version 5.9.1Copyright (c) 2021, STMicroelectronics. All rights reserved.Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled InitWhile : EnabledWaiting for debugger connection...Debugger connected ------------------------------------------------------------------- STM32CubeProgrammer v2.8.0 
STM32CubeF4/Middlewares/ST/STemWin at master · STMicroelectronics/STM32CubeF4 · GitHubClick the link: https://www.st.com/en/licensed-software/stemwin-mw.html?softwareProduct=STemWIN-MW&softwareVersion=5.44.40It pop "SORRY, PAGE NOT FOUND".How can I get the lib then?
I have built a simple gui using TouchGFX 4.18.0 for my H747I-DISCO. I also need to use I2C to read some sensors, so I have used CubeMX 6.4.0 to enable I2C4 (and also the NVIC interrupts), and generated the code.When I try to compile this in CubeIDE 1.8.0 (or TouchGFX), I get the following error:C:/TouchGFXProjects/testApplication/CM7/Core/Src/main.c:86:13: error: conflicting types for 'MX_I2C4_Init' 86 | static void MX_I2C4_Init(void); | ^~~~~~~~~~~~ In file included from ../../../CM7/Core/Inc/main.h:37, from C:/TouchGFXProjects/testApplication/CM7/Core/Src/main.c:21: ../../../Drivers/BSP/STM32H747I-Discovery/stm32h747i_discovery_bus.h:115:19: note: previous declaration of 'MX_I2C4_Init' was here 115 | HAL_StatusTypeDef MX_I2C4_Init(I2C_HandleTypeDef *phi2c, uint32_t timing); | ^~~~~~~~~~~~ make: *** [Application/User/Core/subdir.mk:39: Application/User/Core/main.o] Error 1Is there any way I can avoid this, aside from manually renaming one of the automatically generated functions?
Hello,I've recently bought X-NUCLEO-GFX01M2 expansion for STM32G431 evalboard. And while I was trying to create my first project I've noticed it does not offer any Project for this type of board. On the ST page there is a discription, that mentiones STM32G431, so it should be compatible with. How do I create a project for my evalboard?Thank you!
Hello, when I check the rotation feature on touchgfx library, I could find texture mapper feature to rotate images. and I think I can test it uisng texture mapping example from touchgfx-designer. But this example is just rotating each image. What I want to ask is following. Q1.Is it possible to rotate the image group or images where multiple images are overlaid? For Example, I have to draw map image on the background and map image should be able to be rotated sometimes. And multiple smaller image group, such as dynamic layered warning images and texts will be drawn on the rotating map layer and this dynamic image group should be able to move or blink.I have one more question.Q2.Is touchgfx-library compatible with SDL2-library? The reason I ask is that I have already ui-source codes running on SDL2 in the linux. so I wonder if I can apply current our ui-source codes based on SDL2 lib to stm32 using touchgfx library without big job.I hope someone can advice me.Thanks in advance for yo
Hi,When debugging with Cube IDE programs without any TouchGFX graphics load quickly using the debugger typically 20 to 30 seconds. When TouchGFX is used such that the NOR Quad SPI Flash has to load the loading time can easily exceed 3 minutes. With only a singles simple screen it takes ~60 seconds.I assumed that if nothing is changes in the graphics from one debug session to another then there would be no changes required in the external graphics flash and so the loading of this memory is unnecessary after it has been loaded once.I therefore turned off the external loaded in the debugger setup:However when I tried this I got the following error:Error in final launch sequence: Failed to execute MI command: load G:\\ShorttG2\\ShorttG2\\STM32CubeIDE\\Debug\\STM32H7B3I_DISCO.elf Error message from debugger back end: Load failed Failed to execute MI command: load G:\\ShorttG2\\ShorttG2\\STM32CubeIDE\\Debug\\STM32H7B3I_DISCO.elf Error message from debugger back end: Lo
Hello,Is it possible to use the GUI developed with TouchGFX of a project for another project but with another STM32 board? Please help me with the steps to follow in order to use the graphical interface developed with STM32G071 in another board.Thanks,
How can I enter unicode non-ASCII characters (ex.: Ballot Box (U+2610) and Ballot Box Checked (U+2611)) in typography wildcards, and/or in single-use strings?
Dear all, I have successfully implemented the example STM32CubeH7-master\Projects\STM32H747I-DISCO\Examples\JPEG\JPEG_DecodingFromFLASH_DMA with the image file given as C source there.Now I wanted to change the image data, which however was not successful, so I tried the following:took the image_320_240_jpg.h file and on PC wrote it to disk (example.jpg) , then converted it to a c file again and used that: Success, no changeopened example.jpg, saved it with Gimp as example2.jpg with quality 75 to decrease file size: Fails during HAL_JPEG_Decodeopened example.jpg in MS Windows 10 Paint and saved it as example3.jpg (no parameters available, file beacme bigger): Successcreated some weird image in MS Paint (example4.jpg:( Successopened and saved in Gimp again (example5.jpg:( Fail during HAL_JPEG_DecodeAm I missing any jpeg features I need to avoid? Are there any other programs known to be working outside of MS Paint, preferably some where you can adjust the image quality vs. file size?Thes
..
If user wants to make object invisible, which method is the most efficient, e.g. in terms of performance or memory usage?Generally, in which cases should use setVisible true/false vs. add/remove?Is it so that the only difference is that remove/add modifies drawing order, but otherwise they are equal? (I.e. performance to draw removed or invisible objects are both neglible)In that case add/remove should only be called in init (or if drawing order must be changed), and setVisible afterwards...
I would like to navigate some HTML page from the LCD of the board.These HTML pages contain text and images.Do you know if something already exists and I can put it on my projects? Thanks.
I have been able to get the slider position using a callback function but need to set the slider position when the page is shown from a stored value. I don't need continuous updates only when page is activated.Thanks
Hello all members,I am interfacing LCD module in 8bit mode to STM32F446RE Nucleo board the connections are as below:The pin connections(if unclear in diagram):Control pins:RS-->PB0RW-->PB1E-->PB38bit data pins LCD:D0-D7-->PC0-PC7Program Lcd.c: #include "lcd.h" #include <stdint.h> #include "delay.h" GPIO_Handle_t GPIOConfig; void lcd_init() { /* * * Step1: Make Control pins and LCD 8pins as o/p * Step2: Initialising sequence as per datasheet */ //Each of this function enable's clock and configures the pin to o/p mode LCDControlpins_init(GPIO_PIN_NO_0); LCDControlpins_init(GPIO_PIN_NO_1); LCDControlpins_init(GPIO_PIN_NO_3); //Each of this function enable's clock and configures the pin to o/p mode for PC0-PC7 pins for(int x=0;x<=7;x++) LCDDatapins_init(x); /* * Init s
Hi,For one of our upcoming products, we're planning to use stm32u5 & therefore evaluating the uC for that purpose. It needs to have a 3.5" TFT display and we're wondering if there could be any suggestion from ST's side on that:Since there is no LTDC in STM32U5, it's connected via FMC, what could be a favorable choice for us. Lesser effort in finding/porting the driver for the chosen LCDEvaluation board with STM32U575AI MCU already comes with a display - Is there already an example code for that and could there be a 3.5" LCD in the family that could satisfy the requirements for our prototypeLooking forward to your response,Thanks a lot!
I'm currently working on my second ever TouchGFX project and keep stumbling upon the same issues as in my first one.I have a battery indicator that I would like to show on (almost) every screen. For this reason I created a container that I can easily drop on every screen and implemented a few relevant methods on this container. This battery indicator is obviously driven by hardware (a FreeRTOS message is sent from the HW task to the TGFX task, if that makes any difference). Now the Model receives these messages and notifies the ModelListener via a virtual method like `virtual void notifyBatteryVoltage(uint8_t);` or similar.Here is where it gets interesting to me:The base ModelListener cannot implement anything UI-related as it doesn't know anything about the View it will be attached to.It probably should not call anything on the base Presenter as this will couple the two aspects (ModelListener, Presenter) too tightly.Even if I implemented the previous point, the base Presenter doesn't
Hi again,I'm currently working on a TouchGFX project that requires me to have some one-time setup with some screens that are only shown to the user if the device is not yet set up, Let's call the first of these screens "WelcomeScreen" as opposed to the "MainScreen" for the sake of brevity.So, if the device is set up, I want to show the MainScreen to the user, and if the setup procedure is not yet done, I want to show the WelcomeScreen to the user. What I have tried now is add a method `bool isSetupComplete()` to the Model class.add invisible buttons that have dummy "Change Screen" interactions attached, andbasically copy the code generated when adding a transition on a button in a view, i.e.FrontendApplication& Model::application() { return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance()); }and then add the following lines to the Model's c'tor:if(setupIsComplete()) { application().gotoMainScreenNoTransition(); } else { application().gotoWelcomeScree
Hi Community,When I use the Touch GFX from software packs in STM32CubeIDE and generate the project, I am getting the following errors. So, anyone is having idea how to solve this?1) region `RAM' overflowed by 1168976 bytes.2) touchgfx_ide_new.elf section `Video_RGB_Buffer' will not fit in region `RAM'. Thank you.Vins.
Using threadx rtos, spi is written to st7796 rbg565 480*320, the interface display is normal during initialization, but it is abnormal when the widget is refreshed in handletickevent
Hi,I have three projects, running on an STM32H7B3I-DK Discovery board. They Are: Complex - Using TouchGFX, a lot of I/O, timers, ADC's I2C, SPI and the other project is simple using only the ADC's. Throws SWV errorSimple - No TouchGFX using ADC 1 and ADC 2 Only No SWV ErrorSimple - Using Touch GFX and no other I/O No SWV ErrorWhen I debug the complex project I get an error: "Failed To Enable SWI - SWV will be disabled for this debug session" When I debug the simple project the error does not occur.Obviously it is something in the build of the complex project that is causing this. The debug settings are identical for each project and are shown in the screen shots attached.The console output for the debug build is:STMicroelectronics ST-LINK GDB server. Version 6.1.0Copyright (c) 2022, STMicroelectronics. All rights reserved.Starting server with the following options: Persistent Mode &
I'm trying to use STOP mode on my STM32F469I-DISCO evaluation board in a TouchGFX application. I call a function from the defaultTask that checks if the blue button is pressed, and if so, it enters STOP mode. I set up an event on the LCD_INT line from the touchscreen so that I can wake up when someone interacts with the screen. This all seems to work, but when I come out of Stop mode, the screen is no longer responding to touch. My STOP mode entry and exit code is shown below:void checkStopMode() { if (GPIO_PIN_SET == HAL_GPIO_ReadPin (BLUE_BTN_GPIO_Port, BLUE_BTN_Pin)) { //Turn off display and backlight. HAL_DSI_ShortWrite(&hdsi, 0, DSI_DCS_SHORT_PKT_WRITE_P1, OTM8009A_CMD_DISPOFF, 0x00); HAL_DSI_ShortWrite(&hdsi, 0, DSI_DCS_SHORT_PKT_WRITE_P1, OTM8009A_CMD_WRCTRLD, 0x00); vTaskSuspend( TouchGFXTaskHandle ); // Suspend the TouchGFX task HAL_PWREx_EnableFlashPowerDown(); __disable_irq(); //disable so that we don't end up in an ISR until we rec
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.