Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I am currently working on an application involving streaming 480p/720p video from an OV5640 camera to an SD card (using SDIO) but I am afraid that the 128Kb of available SRAM are not enough.Given the situation, in order to increase the available RAM I am trying to interface an IS42S16800F-7BLI SDRAM chip with an STM32F446ZCH6 microcontroller on a dedicated PCB but I stumbled across the following problem:-Due to the amount of pins used, the STM32 can only communicate with the SDRAM using 8 bits of data-I am confused regarding where to connect the DQM pin of the SDRAM when working with 8-bit data width. From what I have read online, it has to be either tied to GND or to the FMC_NBL0 pin but according to STM32CubeIDE, the latter pin is currently used as DCMI_D2 for the DVP camera.Can someone clarify the process of properly interfacing the DQM pin in the 8 bits mode, or if the external SDRAM is even needed for this task in the first place?
On changing from one screen to another in TouchGFX the transition options are: Slide, Cover, Wipe and Block. Is there a way to do a Fade from one screen to another?
I have a LCD display working on a nucleo F412 using FSMC. I'm trying to move to a nucleo F746. I have moved the code and includes from the 412 to the 746 project and connected the display to the correct pins for the 746. The 746 pin out is a little different than the 412 for the default connections. I have the same clock speeds and settings. I compared the FMC init function line by line between the two and all the setting match, but I can't get the display to work using the 746. Using a logic analyzer and comparing the two boards running the same code I can see there are differences on the FMC A18,FMC_NE1,FMC_NWE and FMC_NOE pins. The logic analyzer is sampling at 24MHZ. I've moved the display jumpers for the display back to the F412 and it works, back to F746 making sure to adjust for the differences in the pins a few times now. Any idea's where or why the display works on the F412 but the same settings, clock speeds and code won't work on the F746? Thanks
Hi allI'm planing to run a 16-bit TFT display with a NUCLEO U575 board. I already managed to get it running via FMC and a custom written library as stated in this thread. So the Display, the NUCLEO and the interface is running fairly well.However, as I'm planing to run the display with TouchGFX later, I'd like to use the ST7789V driver provided by STM in the X-Cube Display package. But I don't get it running with my setup. When I try to control the display with the X-Cube package, My actual code that I'm trying to run the display with is shown below. (For now I only want to get it run in a very bare code - no DMA, no TouchGFX, ... I just want to do it step by step :) )I can turn on the display (line 4)- showing the content that's still stored in the controllers RAM. But when it comes to line 10 (FillRGBRectangular) I'm getting no change on the screen at all.while(1){ BSP_LCD_DisplayOff(my_LCD); HAL_Delay(500); BSP_LCD_DisplayOn(my_LCD); HAL_Delay(500); BSP_LCD_Init(my_LCD, LCD_ORIENTAT
It happened again, after changing some configuration in STM32CubeIDE ioc file. Breaking change, the application hanged with black screen for no apparent reason. As I tested with the debugger - it passes all initialization in main(), then hangs when starting TouchGFX.Not the first time. I reverted all changes from Git, downloaded the previous version and I got a burned screen. A rounded white rectangle burned in the display, blinking, random horizontal lines scattered and blinking.BTW, the screen was not hot. Not even warm. I once seen it happening on white background. It looked like the corners of the screen started to burn away to black. After fixing the software issue I've seen a negative of that pattern. After 15 minutes of being powered off the screen worked normally, without artifacts.After turning the device off for 15 minutes it got back to normal. I tried to power the device earlier, but I still got some artifacts, but they seemed to fade away with time.Does anyone know why som
I have a working prototype using custom board with an STM32H7 controlling, among other things, a 7" FTDI-EVE2-based touchscreen. I wrote all the UI code using EVE2.I'm considering using TouchGFX to rebuild the UI and wonder about using a Riverdi screen with an embedded STM32H7.Rather than have the Riverdi-embedded MCU be my main control MCU (I'd much rather not have my main computation going on ... within a screen's board), and so as not to change my current software too, too much either, would it be possible to have my main control MCU speak SPI to the Riverdi MCU, to tell it what parts TouchGFX-related code to run when?If so, what would be the plan? Use the Riverdi extension header to access its SPI pins/peripheral? Does that even make sense?If so, for testing, would I use some Riverdi eval set up or just get a screen I like and wire up a connection, breadboard-ish?
When debugging the following part of the code I expect the program execution to stop when entering Stop mode. Why does the program reach the breakpoint after the stop mode?
Hi everyone Im tryng to capture RAW RGB pictures with ov5640 but all i get is pink and green ones. I asume im geting YUV pictures despite the configuration of format related registers is:format control (0x4300) = 0x00 (RAW, BGBG... / GRGR...)format mux control(0x501F)= 0x01 (ISP RGB)What am i missing?Thank you in advance
Hi, I tried the example on formatting the sdcard and it works (https://www.youtube.com/watch?v=I9KDN1o6924).How do I implement this with TouchGFX? I set everything the same and mount the SD card (f_mount), but the next command is no longer executed (f_mkfs) and the system stops working. I tried to compare the settings and everything is the same. Can anyone think of anything? Thank you
Add debug log in my "Screen1View.cpp" , but report error log as below : Compiling gui/src/screen1_screen/Screen1View.cpp gui/src/screen1_screen/Screen1View.cpp: In member function 'virtual void Screen1View::buttonUpClicked()': gui/src/screen1_screen/Screen1View.cpp:19:3: error: 'touchgfx_printf' was not declared in this scope touchgfx_printf("buttonUpClicked\n");Source code : \TouchGFX\gui\src\screen1_screen\Screen1View.cpp....void Screen1View::buttonUpClicked(){ touchgfx_printf("buttonUpClicked\n");}...If this code is commented out , Compiling will be normal .....void Screen1View::buttonUpClicked(){ // touchgfx_printf("buttonUpClicked\n");}...would you give me some suggestions ?
Hi, I used a swipe container with 2 pages, and I want to drag the icon from the 1st page to the 2nd page. But the icon cannot move to 2nd page because the icon is create in the 1st page container and doesn't move across container. How can achieve my needs ?
Hello,I noticed there is a way to print to a console from the simulator using touchgfx_printf, I'm wondering if it's possible to read in characters also?I noticed the comment in Utils.hpp:The console window is used to print to using touchgfx_printf(), printf() or std::cout, * and read from using e.g. fgets() or std::cin. Alternatively, instead of using * printf(), simply use touchgfx_printf() which will ensure there is a console to write * to. After the first call to touchgfx_printf(), it will also be possible to read from * stdin.This would be useful to replace parts of the code where I am waiting on a message queue, instead I could do the following, pseudocode:if SIMULATOR wait on character input x from console do action based on key inputelse wait on OS message queue do action based on messageMy understanding is that FreeRTOS is not used for the simulator, so this would be a useful way to imitate other system tasks sending messages to the GUI. This would allow me
I could successfully load and read images (ExtFlashFection)in QSPI but when it comes to font and text it doesn't work... I use stm32f767+qspi+sdram+keil environment... and you see the .sct file and my project here.can anybody help me?? internal flash runs out of space because of fonts and text and I don't know what to do... thank you in advance.
Hey,i use the STM32H757-EVAL Board and was already able to create a new project in TouchGFX (4.20.0), import it to STM32CubeIDE (1.10.1) and modify GUI and Hardware functionality.In order to have more flexibility and to setup a more clean project, i wanted to create the initial project in the CubeIDE, add the TouchGFX Software Pack and only then start using the TouchGFX Designer for GUI creation.My problem is now, that after generating the CubeIDE project and importing the "ApplicationTemplate.touchgfx.part" file in the designer, the code generation always fails.The logfile says, that the post Generate Target is unable to locate the /.cproject file.The file is located in the "Project_name/CM7" folder. Modifying the Build setting of the "Post Generate Target Command" to the specific file location didn't help unfortunately.Maybe someone here has also encountered this little problem before.Thanks!
I'm attempting to utilize the outside QSPI blaze to store a few items while touchgfx is running.I accept the right strategy to do is:Suspend touchgfx task.Handicap interrupts(LTDC and DMA2D)change QSPI to circuitous modeperform keep in touch with QSPIchange QSPI to memory planned modeempower interferes with (LTDC and DMA2D)Continue touchgfx taskI'm following above technique however the gadget restarts around following 90 seconds of suspending the touchgfx task. Despite the fact that there is no compose activity to QSPI.I might want to be aware in the event that the previously mentioned technique is right ?additionally what might be right spot to suspend and continue the errand ?Note: we are utilizing EMBOS.
Hello, I have a project with STM32L4R9AI and touchgfx. I use DSI for amoled display. I am developing codes for months. At some point screen is started to be locked ( no changes in screen ). While debugging the code when I look at the freeRtos task table it seems that Touchgfx task is blocked. Other threads (harware, sensor, BLE ..... ) work without problem. In this case, code never comes to endFrame(), beginFrame() and OSWrappers::waitForVSync() functions but tear effect interrrupt works. Code comes to tear effect irq handler but it can not refresh display because refreshRequested is false. refreshRequested cannot be true because code never comes to endFrame()this is may code bool STM32HAL_DSI::beginFrame() { refreshRequested = false; return HAL::beginFrame(); } void STM32HAL_DSI::endFrame() { HAL::endFrame(); if (frameBufferUpdatedThisFrame) { refreshRequested = true; }else { __NOP(); } extern "C" __irq void DSI_IRQHandler(void) { if (__HAL_DSI_GET_IT_
Hello,I have borrowed an STM32F429I-DISC1 with 2.4" QVGA TFT LCD.Unfortunately, I fumbled it and cracked the screen.I'd like to fix it for my friend, but don't want to start tinkering if it'll cause a problem.Does anyone have experience in replacing these screens, if it's at all possible?Any suggestions?Thanks in advance
I am working on an existing project based on the STM32H750 where I want to stop overheating by reducing the CPU frequency.Currently I use 400MHz and I want to lower it to 200MHz. I have peripherals (LCD and SPI flash) as well as timers (TIM1,2,5) that are affected by this change.My question is which adaptions to the Timers and possibly the initialization of LCD, ext. flash I have to make when changing the CPU frequency? Is there a lower limit for the LCD bus frequency for example?For the timers I adapted the prescalers but that doesn't do the job yet. (black LCD screen and crash)My old clock config: My new tentative clock config:
Hi there,I am just starting touchGFX. I created a project in following steps:create IOC file.. enable touchGFX 4.20.0 , choose display as BW, 128*64, interface:custom, and generate code via STM32CubeMX for STM32CubeIDE.open .part file via touchGFX designer... choose blank templete to import.add widget: text area. Save and generate code in touchGFX designer. go back to STM32CubeIDE, open project. and refresh project.build project... Then I got the compilation error in "../TouchGFX/target/generated/TouchGFXConfiguration.cpp:35:8: error: 'LCD1bpp' does not name a type 35 | static LCD1bpp display;". seems some header file is not included... so the class definition is not included... but I understand from the doc, all these generated files are not supposed to be modified... So I am asking for help: anything I did wrong here? Thanks and Best Regards****
..
Hi, For example, I create 2 widgets (button and box), the box in top and button in bottom.I need to change their position like picture 2, how can I do except delete and rebuild to changed their order ?
I am new to TouchGFX and STM32 programming, so I apologize if any obvious details are missed. I am attempting to run Tutorial 2 in the TouchGFX tutorial (Because I'm a new member, I cannot add the link, but it's the TouchGFX Version 4 19 tutorial guide, Tutorial 2)I have successfully run up to "Step 4: Adding Code."I completed up to the step where it asks you to create the "buttonDown" interaction on the TouchGFX Designer (I'm running on 4 19 1).I generate the code without issue, then it asks me to open MainViewBase.hpp (I was trying several screens, so mine is called Screen4ViewBase.hpp). When I add the recommended code to display the "buttonUpClicked" and "buttonDownClicked" text pop up, I hit the "Run Simulation" button on the TouchGFX Designer and the code that I wrote disappears, so the text obviously does not appear. Am I doing something wrong?
Hi,I am trying to interface an OV7670 camera module with the F746 NUCLEO board and was wondering if the f746 chip's DMA has only a specific memory area where it works.The image resolution will be QCIF so buffer has to be 50688 byte long.thanks
Hi everyone!The example linked in the documentation (https://support.touchgfx.com/4.14/docs/development/ui-development/scenarios/loading-images-at-runtime) is only about a dynamically created bitmap, but no clue how to use it in the designer is given (in the project there is not .touchgfx file). Do the jpg images have to be loaded at runtime? Is there another way??Anyway, there is any tool given to add a jpg image to the stm32CubeIDE project?Many 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.