Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Hi,I have a project under EVT situation.I will choose the stm32h7b0vb(128K Flash + 1.18M SRAM)as the mcu for the system.The main functions is below:1,Driver a tft-lcd with touch via LTDC interface,lcd size is 640*360 pixes support rgb888 and support single touch and slide.2,Support FreeRT OS and about 10 tasks.3,8M Bytes for sampling data records storage in flash and 40K SRAM for data records write and read.4,Support DFU via ble(OTA), stm32h7b0 connect ble soc via uart.Q1:If the QSPI Flash is used for code storage and sampling data records storage,which one should be optimized(nor flash or nand flash)?What is the difference between the nor flash and nand flash? Q2:The SRAM on stm32h7b0 chip is enough for software design?Q3:How to design the dfu when use extern QSPI Flash for code storage?(I designed the dfu on internal flash on stm32f103re )Thanks for your attention.
Hi Community,I'm trying to get camera data from OV9655 in DCMI continuous mode with the resolution of 390x390(uint16_t). In this case, the size 390x390/2 is bigger than the max DMA transfer data length 65536. The STM32L4R9I does not support "double buffer mode" (unlike STM32H7xx). Here are the questions:(1) I looked into the DCMI driver (stm32l4xx_hal_dcmi.c). Could I get the extra image data which is over 65536 data length from "hdcmi->pCircularBuffer"?(2) And how to get the same frame in BSP_CAMERA_FrameEventCallback function if I load the buffer in two parts?
I'm working with the STM32F769I-DISCO board.I initialized a timer with an interrupt in main.cpp and I put an infinite while(1) loop before all the TouchGFX graphics initialization functions. The interrupt works fine, toggling an LED every second.However, when I let the graphics initialize, the interrupt doesn't seem to be working. The LED just remains in it's initial state. Is this because the TouchGFX runs in another thread? Is there a way I can have the timer interrupt working to toggle the LED while the TouchGFX graphics are running?Thank you
Hi,I started a project with the STM32CubeIDE and launched the TouchGFX Designer from it. I have made a simple design, then i generated the code, built it with the CubeIDE and everything worked fine, 0 errors. My problem starts when I make some modifications in the TouchGFX/generated folder, changing some things of the texts and fonts folders. Built and everythong is okay. Then, when I make a change in the Designer and press Generate Code, the things i had changed previously disappear and gives me some errors (the same ones as when i hadn't modified the folders). I don't know to fix it and i would appreciate some help on how to do it.Thanks, Dani
A) When I try to start almost any project other than a blank screen on touchGFX it simply says that that demo is unavailable for the 769. Can you please remove the projects that won't compile from the list.B) On the newest version 4.12.3 I could not get ANY (even a blank project ) started.C) I went back to 4.10.0 and could at least get TouchGFX to build compile and download a project. This works from TouchGFX. When I went to compile from Cube I get the following. Where and how do I fix the missing files? How do I get the to remain in my project as a regenerate from TouchGFX will probably remove them.13:58:29 **** Build of configuration Debug for project SRMInstrument769I ****make -j4 all arm-none-eabi-g++ "../TouchGFX/target/BoardConfiguration.cpp" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F769xx -DDEBUG -c -ITouchGFX/target -IMiddlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -IDrivers/STM32F7xx_HAL_Driver/Inc/Legacy -ITouchGFX/generated/gui_generated/include -IDri
I’ve updated to IDE 1.2.1 and GFX 4.13. After a HARD uphill struggle, I finally figured out how to get a screen running on a 746 Discovery board. I can’t find how to enable the touch controller, though. In the previous software, this functionality was generated in a cpp file in the TouchGFX folder. That file contains nothing but comments now, with no code to initialize or service touch events. How do we get the touch function going? We need some clear example code or instruction. (And may I vent a bit here? This release can not possibly have been regression tested. I’ve done this long enough to recognize a train wreck when I see one. ST “broke the build�?, and left their base to suffer the consequences. It is inexcusable.)
..
Hello!I put textArea to Screen. Here is code from Screen1ViewBase.cpptempText.setXY(489, 143); tempText.setColor(touchgfx::Color::getColorFrom24BitRGB(0, 0, 0)); tempText.setLinespacing(0); Unicode::snprintf(tempTextBuffer, TEMPTEXT_SIZE, "%s", touchgfx::TypedText(T_TEXTID2).getText()); tempText.setWildcard(tempTextBuffer); tempText.resizeToCurrentText(); tempText.setTypedText(touchgfx::TypedText(T_SINGLEUSEID9)); add(tempText);in screen1Veiw.cpp I try to change textvoid Screen1View::Show_HotEnd1_Temperature(uint32_t temp) { Unicode::snprintf(tempTextBuffer, 3, "%d", temp); tempText.invalidate(); }Be sure, function Show_HotEnd1_Temperature is called and "temp"is not null.But text not changes. Only anothe videobuffer activates (don't ask me how I know it)What's wrong?May be problem with wildcards?I load example from TOuchGFXDesigner, and look to the textArea's configBut when I try to config my own textArea, I can't see "wildcard" buttonwhat's wrong?
Hi,I am a new developer of stm32h750dk and not familiar with IAR.OS:Windows 10IDE:IAR 8.42.2Tools:ST-link V3 on stm32h750dk board.I generate stm32h750dk online application on touchGFX designer 4.12.3.I know the flash on chip is designed for bootloader, and the code stored in QSPI Flash.I know how to download the online application hex file to stm32h750dk on stm32Cube Programmer.I do not know how to download and debug the source code to the QSPI Flash via IAR.I want to know if any instructions for download and debug the source code in QSPI Flash via IAR.The settings of the IAR below.It compiles ok, but download failed, it show me that.Thanks for your attention.
Good afternoon all,I have an STM32 controlling a 320x240 LCD using an ILI9341 controller and communicating over a SPI interface. It all works perfectly, using my own interface routines, and almost works perfectly under my initial basic integration of TouchGFX. However, the framebuffer from TouchGFX is stored in RGB565 as Big Endian (i.e. Red is stored as 0xF800). However, it appears thatI need to send them as Little Endian (0x00F8), as the ILI9341 only allows me to specify endianness if I use it in non-SPI mode.Is there any support in TouchGFX to change endianness in the framebuffer?Failing that, any suggestions on the best place to rearrange the bytes? Currently, I transfer entire rows on SPI (I can't do the whole buffer each time as I am catering for partial updates). Falling back to transferring byte-per-byte to flip them seems clunky. But also, having to flip the framebuffer before transmitting also seems unnecessary!I hope I am missing something fundamental here though :)Any help
I am trying to run UI application on STM32F429 board using TouchGFX 4.13 and CubeIDE 1.2.1. However, I am not able to see any output on the touhscreen. I have done the basic settings in CubeMX as shown in the screenshot. Please let me know where I am going wrong .
Hi,I would like to announce measurement results also by text and change the text color based on the results. Green text for a pass, red for failure. How could I do this?
Hi,I have a few views. On each view there is a container (date, time) which has to be updated periodically (every minute) with the new date/time. This container is the same on every view.My idea is to go through the model with the modelListener. But this means that I have to implement the presenter method on every screen...Is there a better way to do this? So that I have only one method in the container?Thank for your help,Cheers, /jimmii
Hi TouchGFX guys,Will there ever be a v3 template for this board, or no? Is it considered to be superceded by the 769?I'd love to use the 469 for my project, and the way v3 templates generate CubeMX and CubeMX IDE project files is super convenient.Thank you
Hi,I am a new developer for stm32h750dk. OS:Window10I followed the getting start, installed stm32CubeMX 5.6.0 and TouchGFX designer 4.13.0.I can use TouchGFX designer 4.13.0 to generate the code for stm32h750dk with blank UI, but create the online application (out of box source code)for stm32h750dk failed.I want to know if the online application(out of box source code) is available on github?Sometimes the TouchGFX designer show me that.When downloading online application it show me that. Internet works well on my pc.
How can I disable the TRIGGER / Click button by switching the TRIGGER / Toggle button?
Hello.I am trying to make a touchgfx demo using stm32f767 apollo board.However, I was stuck while applying a custom external loader using w25q256.I've modified the code from my existing 746-disco demo and it doesn't work at all.Dose anyone have examples or references that use the sw4stm32 compiler and w25q256?Please help me.Thanks.
HelloSTM32CubeIDE has been updated to 1.2.0.TouchGFX can no longer be launched from the configurationHow do I launch TouchGFX from the configuration?Thank you
As the title says. I was in a webinar last week and I asked a question about the STM32F7508-Disco board not working with CubeIDE, CubeMX and TouchGFX. It is giving me memory errors when trying to load the code onto the board. They responded saying that the updated template would be released in about two weeks. Is there a way I will know when it is available?Thanks!
I am working with a project that was generated from CubeMX 5.5, and then TouchGFX 4.13 using the partial project file generated from Cube. The issue I am seeing is everything appears to be working (details below) except I am not seeing any activity on the VSYNC or HSYNC pins. The screen appears all white and does not change.Things I have measured/observed that seem correct:The LTDC clock is ticking at 12MHz.I can see activity on some RGB data pins.I can vary the backlight brightness via PWM as expected.I have inserted counters at various places that I can see incrementing via the debugger, including Model::tick().I can set breakpoints and confirm line interrupts and DMA2D transfer complete interrupts are firing.Additional info: there are no DMA2D errors, and 1 LTDC error (transfer error) that occurs on startup. LTDC global error interrupt is not enabled. I copied CubeMX settings from the STM32H750B-DK examples, except for the sync width settings, which were copied from the screen datas
Board: STM32F746NGH6Display: ETEM043005XDH6I tried creating an Embedded Project (after installing VisualGDB) with following settings:import a project built with command-line tools (since I want to import the existing TouchGFX Project)Generate a new MSBuild projectSelect my Device: STM32F746NG (leave all settings)Import my Project Folder (TouchGFXProjects/ProjectName)Debug using: USB Input: "ST-Link v2" --> Test sucessfulWhen trying to build the project I run into several missing included directories as well as View.cpp / Mainbase.cpp and other filesAfter including those using Visual Studio help I receive a several Error:"SDL_stdinc.h" Line 261:narrowing conversion of '-1' from 'int' to 'unsigned int' [-Wnarrowing}size '-1' of array 'SDL_dummy_enum' is negative--> Checking the code I see a comment written by the developers (of TouchGFX) on Line 284/* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */But there is no fix or workaround mentioned.Flas
Hello Everyone,I am new to this Touchgfx 4.12.3 c++ library and FreeRTOS environment.I am working on a project which need to grab the camera data from DCMI peripheral and display on the LCD. I have done it in bare metal and I have no issue but I am switching my complete project into Touchgfx freertos environment.I researched alot on the procedure, but there is no proper example how to use this pixel data widget? or DynamicBitMap widget?.I have checked the following links regarding the same but no help:I am able to display and image created in touchgfx designer tool.I am able to directly display the camera data on the LCD by writing to the buffer directly without using widget but i am unable to show image at that particular time and the video hangs up after sometime.Note: Tools and micro controller used:STM32f746IG, TouchGFX 4.12.3 Designer tool, IAR embedded workbench.External SDRAM is used as the Buffer.Thanks in Advance,Upender
Hi,I want to draw grid to a graph, which has many tick lines + tick texts (up to 10 vertical + 10 horizontal).In addition to this, I have the Graph widget drawn inside the same container:https://github.com/touchgfx/touchgfx-open-repository/tree/master/widgets/GraphWhen I add these grid lines in for loop like such:for (int i = 0; i < HTICK_COUNT ; i++) { remove(htickline[i]); ... add line color, position, width, etc. ... add(htickline[i]); } ... touchgfx::Line htickline[HTICK_COUNT];The application will crash at boot when there is too many children added. In my case, adding 14 lines + 14 texts will halt the program.Is this supposed to happen? How many childs can I safely add?I think I can avoid this using canvas painter, but I still want to know is this normal behavior when adding too many childs. Should not be a RAM problem, I have statically allocated these drawables?EDIT:might be resource problem. The simulator can run a lot of lines and texts. I'm usin
A message box based on modal window widget with 2 buttons, one is ok, the other is cancel.When any button is clicked, modal window is hide and return the button value to the caller.Can it be implemente in someway so it can be called like this? int retValue = MessageBox(...);Otherwise I have to fill callback fuction into the message box to get return result.
Is there any way to create a custom event, similar to how there are keyboard/touch events?In my project, I need to have two hardware encoders for user input. Right now, in order to keep the hardware separate from the UI implementation, I have the hardware encoder being polled in a FreeRTOS task and filling a message queue when the encoder value changes. I then read the message queue in the UI task's "tick" loop. Unfortunately, doing this creates a dependency on FreeRTOS, making the simulator unable to compile.If I could create an additional event type, like an "EncoderEvent", I could have the implementation separate. I've looked at the code for TouchGFX, and it appears that the code I would need to change is only available as a pre-compiled library. Unfortunately, it doesn't even look like it's possible to "create" an event in the present system. When using other graphical libraries, I'm used to seeing a way to post and handle custom events, typically with an enumeration starting at a
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.