Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,We are currently using the STM32L4P5 Discovery Kit, and we were wondering if it is still possible to use it with TouchGFX Designer.I tried creating a sample application, but our board was unavailable in the board selection menu. Does that mean it is not supported? Can we use another application to create the GUI if it's not?And final question, the board is meant to be used with a 240x240 screen since it has an interface for that, but could we still attach an 800x480 display to it instead?I apologize in advance for the lousy question. I have little experience using the STM32 boards or creating embedded GUIs.Thanks and Regards.
I've made some modifications to a standard widget by extending the widget class, for example to the Slider widget.I create a class MySlider that extends the Slider and override some of the methods. To use this new created class I then modify the ViewBase.hpp file to include the new header and modify the declaration from touchgfx::Slider slider; to whatever::MySlider slider;With this approach it works but the ViewBase.hpp it's not supposed to be modified, also it gets overwritten every time code is generated from the TouchGFX Designer.Is there any other method to use the new class without changing the BaseView.hpp and only modifying the user files?I've tried in the setupScreen() method to cast the slider to my new class:void ScreenView::setupScreen() { slider = (MySlider) slider; }But this doesn't work and the methods from the standard class are still used.
Hi...I m working on STM32f746g-Disco board, In cubemx I have added touchgfx software & since I want to configure the display on Bare metal I have disabled FREERTOS. When I have regenerate the code , OSWarraper file is getting generated. I want to know without OSwrappers , what needs to be written so that it works on bare metal.
Hello There,I'm new to DSI based Displays. We have got a DSI Display of 720(H) x 1280 (V) resolution which is based on ILI9881D and supports 2 Lanes.I want to know whether STM32F469VET6 could support it? As I couldn't find any guide for this.Any help is appreciated.Reagrds,Keshav Aggarwal
hello,I am trying to run the project created with TouchGFX in STM32H735D-GK.It seems that the operation period of void Model::tick() of Medel.cpp is longer than 10ms instead of 10ms.What exactly is the operation cycle of Medel.cpp's void Model::tick()? And is it possible to set the operation cycle? I would like to know.thank.
Hi, I am trying to import a touchgfx project into cudeIDE and I'm getting the following errorsBLIT_OP_COPY_L8 was not declared in this scope (in STM32F7DMA.cpp)andno declaration matches 'void touchgfx::OSWrappers::taskYield()' (in OSWrappers.cpp)I'm working on an Emerging Displays EVK070019AB boardIf anyone has any ideas what I might be doing wrong I would be very appreciativeKind regardsAlex
I could variable received in model by ModBus, to show on the actual screen.
This code works OK and is an example of an image that is not stored in sectionExtFlashSection.// Generated by imageconverter. Please, do not edit! #include <touchgfx/hal/Config.hpp> //LOCATION_PRAGMA("ExtFlashSection") //KEEP extern const unsigned char image_piklogo[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 800x480 RGB888 pixels. LOCATION_PRAGMA("LogoSection") KEEP extern const unsigned char image_piklogo[] LOCATION_ATTRIBUTE("LogoSection") = // 800x480 RGB888 pixels. { 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00,The problem is that this code is rewriten every time I generate code in TouchGFX designer.Is there a different way to achive what I want.
I've been trying to upgrade an existing working TouchGFX application that was in STM32CubeIDE 1.7.0 and TouchGFX Designer v4.18.0. I've spent an entire day trying various ways to upgrade the project, but I keep running into undefined reference errors. My application is for an STM32F469I-DISCO board, and I have my own custom code in addition to the Designer-generated code.I first updated CubeIDE to the latest version, 1.10.1. For the rest of this discussion, know that I first copy my entire original project folder to a separate location each time I attempt the update.I was able to open my project in the new IDE and build it without errors. My original project explorer window looks like this:You can see that there is a CMSIS folder, a STM32F4xx_HAL_Driver folder, and a Middlewares folder with FreeRTOS. Each of these folders contains linked files to the source.Next, I try to open the STM32F469I-DISCO.ioc file in CubeMX, and I am presented with the following dialog:When I select Migrate, t
Hi, I am working on stm32f746g -disco board. I tried it with TOUCHGFX it worked ,but it is on FREERTOS. I tried by disabling FREERTOS & again regenerating code through TOUCHGFX ,it is executing with OSwrappers file which is an adapter between OS and driver. I want to operate the graphical display in bare metal , so that I can understand the code & make the changes as per my requirement. If anyone have an idea on that please let me know.Thanks.
helloI want to download the hexadecimal file of Proejct generated by touchGFX to the Discovery Board with STM32CubeProgrammer.An operation has occurred.used STM32H735G-DK / CubeIDE 08:16:59 : STM32CubeProgrammer API v2.9.0 08:17:02 : ST-LINK SN : 004A001D3438510734313939 08:17:02 : ST-LINK FW : V3J9M3 08:17:02 : Board : STM32H735G-DK 08:17:02 : Voltage : 3.28V 08:17:02 : SWD freq : 24000 KHz 08:17:02 : Connect mode: Normal 08:17:02 : Reset mode : Software reset 08:17:02 : Device ID : 0x483 08:17:02 : Revision ID : Rev Z 08:17:02 : ST-LINK SN : 004A001D3438510734313939 08:17:02 : ST-LINK FW : V3J9M3 08:17:02 : Board : STM32H735G-DK 08:17:02 : Voltage : 3.28V 08:17:02 : SWD freq : 24000 KHz 08:17:02 : Connect mode: Normal 08:17:02 : Reset mode : Software reset 08:17:02 : Device ID : 0x483 08:17:02 : Revision ID : Rev Z 08:17:02 : Debug in Low Power mode is not supported for this device. 08:17:02 : UPLOADING OPTION BYTES DATA ... 08:17:02 : Bank : 0x00 08:17:02 :
helloAn error occurs about the screen deleted from TouchGFX.I deleted a specific screen from TouchGFX and re-generated the code.Also, CubeIDE also deleted the Cpp file corresponding to a specific sceen.Then it builds normally.However, the problem is that whenever Code Generation is performed in TouhGFX, the cpps deleted in CubeIDE are recreated and an error occurs.Description Resource Path Location Type fatal error: gui_generated/scrautoremain_i4_screen/ScrAutoReMain_i4ViewBase.hpp: No such file or directory STM32H735G-DK line 4 C/C++ Problem make: *** [Application/User/gui/subdir.mk:243: Application/User/gui/ScrAutoReMain_i4Presenter.o] Error 1 STM32H735G-DK C/C++ Problem make: *** [Application/User/gui/subdir.mk:245: Application/User/gui/ScrAutoReMain_i4View.o] Error 1 STM32H735G-DK C/C++ ProblemEvery time TouchGFX does code generation, CubeIDE is in the process of building while deleting the CPP files corresponding to the previously deleted screens one by one.I want t
To customize a TouchGFX application created with the TouchGFXDesigner, I am trying to create a screen with many circles that can be updated, for that I use an array to store the circles and the circles painters, but then when I try to access the methods of the widgets in the array doesn't seem to work.A simple example could be:in "screen1View.hpp" I declare an array to store the circles and the painters inside the view class:touchgfx::Circle circleArray[] = {circle1, circle2, ...}; touchgfx::PainterRGB565 painterArray[] = {circle1Painter, circle2Painter};Then in "screen1View.cpp" I try to access the widgets in the array to change the color:void Screen1View::action() { // ... painterArray[0].setColor(touchgfx::Color::getColorFromRGB(255, 0, 0)); circleArray[0].invalidate(); }But this doesn't work, the color is not updated.But instead if I directly use the widget instance like this:void Screen1View::action() { // ... circle1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 0,
I'm working on a project using an STM32H753XI MCU with a touch display. I am not currently using TouchGFX. I would like to preload images into the onboard QSPI during the project load. How do I go about doing this? I have used TouchGFX designer on other projects and know this is automated while loading the project onto the PCA.
Hello, I used the SMT32F429i-DISC1 and TouchGFX follow the user guidecoding, why the touch point and the displayed position are exactly opposite?For example, if my button is on the far left, I have to press the far right position of panel to respond?Thanks
Hi, MCD teams, I bought a new STM32F413H-Discovery board (MB1274-F413HT6-E03 A214500149) from Mouser and received it on last week.Now I tried to run the application under the folder of F4 Firmware Package\Demonstrations\STemWin\MDK-ARM\Project.uvproj, but the LCD always show the message as my question title highlighted (Touchscreen Calibration : ERROR). I had checked the user manual and it had mentioned that the touchscreen must be calibration at first time. But now TS device can not be found, what should I do for the next?PS: I have trace the source code, the Touchscreen calibration ERROR is because of the following function always return "0x00".uint16_t ft6x06_ReadID(uint16_t DeviceAddr){ /* Initialize I2C link if needed */ TS_IO_Init(); /* Return the device ID value */ return (TS_IO_Read(DeviceAddr, FT6206_CHIP_ID_REG));}
I am trying to get basic TouchGFX graphics working on STM32F407 over FSMC to an SSD1963 screen controller. I am getting the following errors on compile:#error "a user must call touchgfx::startnewtransfer(); once touchgfxDisplayDriverTransmitBlock(): has successfully sent a block."and#error "a user must implement C-Methods touchgfxDisplayDriverTransmitActive() and touchgfxDisplayDriverTransmitBlock() used by the partial Framebuffer Strategy."In the 'StartGFXTask' RTOS task i only have 'MX_TouchGFX_Process();' but should this not be enough to start the TGFX engine?
Hi there,I have made the touch project by touchgfx and initiated the I2C3 by cubemx. I am interfacing the SHT25 with STM32F4239I-DISC1 board BY I2C3. PA8 AND PC9. I am using the command HAL_I2C_Master_Transmit and HAL_I2C_Master_Receive. but I cannot get the values from the protocol. Any help is required.
..
After updating TouchGFX to 4.20, my auto-generated file for <screen>ViewBase.cpp is resulting in an undefined reference to setDrawableSize:This is for a scroll list I have on one of my screens. Has anyone else had this issue? I'm wondering if it's a bug. I was previously at 4.18.
I believe there is a bug in the slider widget in 4.18.0. I am using a slider to quickly adjust a parameter, but my incremental values are so small that I cannot easily position the slider on each unique value using the touchscreen, i.e. the button may be centered on the same pixel for two consecutive slider values. For this reason, I have created increment and decrement buttons. One button increments by a larger amount (1mA), and one by the adjustment resolution of the parameter (0.05 mA). In the interactions, I calculate the value to display in the text area.In this example, I go from 0.05 to 10.00 mA in 0.05 mA increments. So, the range of the slider is from 1 to 200, and to calculate the text value to be displayed, I divide by 20.0. What I discovered is that when using the 'increment by 1' button, when I start at the low end of the slider there are 4 places where the incrementing stops, and I cannot programmatically increase the slider, even though I am adding 1 to its value each ti
Hi There,I have a unusual question. We would like to use TouchGFX to design a simple GUI for a Yocto SOM Board an tried to cross compile a trial project. Compiling fails at linking because the touchgfx library libtouchgfx.a is not compatible. So my question is. Has anyone tried something like this? Is it not recommended because of some reasons?Kind RegardsLukas
Please note the interaction below trying to update text using the value in the buffer (not working)
I have a fresh install of TouchGFX Designer (4.20.0) running on a Windows 10 computer. Although the code for "Animated Image Example" will generate, the simulation will not compile. I've used all the default settings with no modifications. I'm following this tutorial from TouchGFX.When running the simulator the log shows:Run Simulator Copy Framework Copying TouchGFX framework version 4.20.0 to C:\TouchGFXProjects\MyAnimatedImageExample\touchgfx Done Generate Wrote config/gcc/app.mk Wrote config/msvs/Application.props Wrote generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp Wrote generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp Wrote generated/gui_generated/include/gui_generated/common/SimConstants.hpp Wrote generated/gui_generated/include/gui_generated/main_screen/MainViewBase.hpp Wrote generated/gui_generated/src/common/FrontendApplicationBase.cpp Wrote generated/gui_generated/src/main_screen/MainViewBase.cpp Wrote ge
Hi there. I'm trying to configure an LCD display in 4-bit mode, which is connected to an I2C expansion chip. I am able to scan and find the I2C address to send commands to, so I assume that means my I2C handler is set up correctly. However, I am very unfamiliar with programming STM32 still. I followed some online guides for setup, but when I issue commands to the LCD, nothing happens. There's no initialization in response to the display commands sent, and there's no string that appears on the LCD when sending data. I need some guidance on getting the I2C and LCD to work.Below are my parts and their associated data sheets, my current code, and I've attached some screenshots of my schematic. Note: SCL is on pin PB9. SDA is on PB8.My Parts and their DatasheetsController: STM32F303CBT7 [Datasheet]LCD: NHD-0108CZ-FSW-GBW-33V3 [Datasheet]I2C Expansion Chip: PCA8574D [Datasheet]main.c#include "string.h" #include "main.h" #include "motorcontrol.h" #include "STEVAL_ESC001V1.h" //
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.