Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I created a new TouchGFX application, opened it with Visual Studio 2022.The application compiles and runs.I have Screen1View.hpp file, when I can add a field of type uint32_t, Visual Studio has no problem with that. Then I open Model.hpp file, I try to do the same and it doesn't work.I'm pretty new to that think, I know "uint32_t" is a custom type defined somewhere in the project, but how exactly is it made available in view and not available in model? Should I include some extra header files, and if so, which ones and how could I solve similar problems in the future?UPDATE:Oh, forget it, I tried to press Ctrl+., and VS suggested adding `#include <cstdint>`, now it works.
I'm using some extremely efficient 603 size Leds that are very bright even at 70 microamps current. Can I use the LCD Driver (eg. of the STM32L476, 8x40 driver ) to drive a modest 8x12 or 8x16 Led display? (I have created a little dot matrix display by DMA'ing directly to a GPIO port, but 16 bits restricts display size to 8x8, 6x10 etc.),thanks.
I have successfully adapted a 480x480 round LCD to attach to the STM32L4R9AI-EVAL kit and can display an RGB888 image continuously, with a custom GFXMMU_Lut that reduces the required frame buffer to 558,336 bytes, and the frame buffer located in SRAM. I am now trying to use TouchGFX to start GUI development, the code built by TouchGFX Generator seems to target Adapted Command mode, I have been able to modify the CubeMX .ioc file and build the project. I cannot seem to get the TouchGFX code to properly display an image. I utilized the same image I displayed in the non TouchGFX code, and I can see that it is correct in the .cpp file and in the debugger. If I comment out the call to MX_TouchGFX_Init(); and follow it with a CopyInVirtualBuffer((uint32_t *)image_offset, (uint32_t *)GFXMMU_VIRTUAL_BUFFER0_BASE, 0, 0, 480, 480); call the image gets displayed properly, if I allow MX_TouchGFX_Init() to run it does not. Looking for ideas about what the TouchGFX initialization may be doing to cha
..
It works if I write "&#10;" int the xml file or if I copy a newline from the clipboard. Holding ALT and enter "0010" does not work.
Hello,Is it possible to change partial buffer drawing from pixel rows to columns?I have partial buffer allocated for 3 rows (lines), so that lines 1-3 are drawn first, then lines 4-6, 7-9 ...I would like to change it to rows: rows 1-3 first, then 4-6....Background: Our display has native orientation in columns (we use it rotated by 90 degrees) and the fact that TouchGFX generates update by rows and display is refreshed column-wise causes very visible diagonal tearing effect. Having the tear line vertical would be less irritating. Thanks,Petr
I am running FreeRTOS on an STM32H745I board in a TouchGFX application. All tasks I want to run are on the M7 core. I'm trying to periodically send data over UART3 to the virtual COM Port of the STLink. The HAL returns an ok status when transmitting, but no data shows to my serial terminal, leading me to think it's a timing issue. I have the systick timer used as the timebase for the CM4, and TIM6 as the timebase for the CM7; this is the default option. TIM6 is fed a 100MHz clock through the APB1 domain. USART3 is configured for 115200 baud, 8 bits, 1 stop bit, no parity. Can the timebase affect the HAL UART driver, and is there a suggested setup/frequency to use here?
Hello,I am working on a project that needs to interface an STM32F407 Discovery board with an OV7670 camera module(without FIFO) to capture an image and save it to an SD Card just it.But I did not know how to start it and I am wondering if these devices will work together or not can you help with this issue, please?
Hello everyone,I am trying to upload a program via the Cube Programmer to my STM32f647g_Disco board.When using CubeIDE it works flawlessly, but when I try to flash the HEX files with CubeProgrammer, it is showing the following message: " 18:10:01 : Error: Data mismatch found at address 0x900002F3 (byte = 0x00 instead of 0x04) 18:10:01 : Error: Download verification failed"I think it does not save the new software to the external flash memory of the board.Do you know a workaround for this?In the appendix there are two logs, one from CubeIDE (with functioning flashing), one from cubeProgrammer.Until now, I was using the HEX file that get´s generated in (ProjectName\CubeIDE\Debux\ProjectName.HEX)Do I have to use a different one, or a second one for the external memory?I also noticed that the BIN File (in the same folder directory) has more than two GB. IS that normal?Thanks for the Help!
Hi, I was wondering if there is an example of using the B-CAMS-OMV with STM32F75-DK, I really tried so hard to make it work but it didn't, for some reason:HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)DCMI_BUFFER, DCMI_BUFFER_SIZE);doesn't work for me, I'm using 160x120 resolution, with RGB565 pixel format, and I'm trying to write to address 0xD0000000, buffer_size is then 160*120/2=9600, interrupt also doesn't work for me, even though I've already declared the callback methods and set:#define USE_HAL_DCMI_REGISTER_CALLBACKS 1Uin the stm32f7xx_hal_conf.h file, for some reason the callback methods are not firing, the dcmi->State stays at HAL_DCMI_STATE_BUSY status and does not change at all, I will appreciate any help regarding this problem, giving a working code from somewhere can be perfect for me, I found this page: https://www.eforce.co.jp/camera_2/, they typically describe the same thing I'm trying to do, but they only give little hints, for some reason they haven
Hi Community,While selecting the MCU or board, instead of Board Selector can we select using MCU/MPU Selector? Because I am using STM32F769AI, which is not having any board package to create a touch GFX project. So, how to create a Touch GFX project using STM32CubeIDE? which is not under the board selector?
Code works fine in simulator but compilation to target (STM32756G-eval2).Code:// MainDisplayView.cpp MainDisplayView::MainDisplayView(): viewCallback(this, &MainDisplayView::buttonNavCallbackHandler), boxClickedCallback1(this, &MainDisplayView::boxClickedHandler1), boxClickedCallback2(this, &MainDisplayView::boxClickedHandler2) { buttonLeft.setViewCallback(viewCallback); buttonRight.setViewCallback(viewCallback); overtempSetting1.setClickAction(boxClickedCallback1); durationSetting1.setClickAction(boxClickedCallback2); }Error: TouchGFX/gui/src/maindisplay_screen/MainDisplayView.cpp: In constructor 'MainDisplayView::MainDisplayView()': TouchGFX/gui/src/maindisplay_screen/MainDisplayView.cpp:10:71: error: invalid use of non-static member function 'void MainDisplayView::buttonNavCallbackHandler(const buttonImportant&)' boxClickedCallback2(this, &MainDisplayView::boxClickedHandler2) ^ In file included from TouchGFX/gui/src/maindisplay_screen/M
I am getting weird pixels in the area of the LCD which has an image that is in "external" flash. The part of LCD where pixels are located in internal flash, are being displayed properly. Only somewhat related post that i found is this below but my issue is an extension:https://community.st.com/s/question/0D53W00000cyVN0SAM/copying-data-from-external-flash-doesnt-copy-into-buffer-using-generated-touchgfxgenerateddatareadercpp-on-stm32f4?t=1648085435733How should the DataReader_StartDMAReadData() function look like?This article does not have complete definition of readDataDMA()https://support.touchgfx.com/4.19/docs/development/scenarios/using-serial-flashvoid readDataDMA(uint32_t address24, uint8_t* buffer, uint32_t length){ // Pull Flash CS pin low isReceivingData = 1; FLASH_CS_GPIO_Port->BRR = FLASH_CS_Pin; *((__IO uint8_t*)&hspi2.Instance->DR) = CMD_READ; ...}I tried to construct the function, it appears to be correct per my knowledge but I am getting weird pixels in the are
Here an example from the hardware but in Run Simulation:We are using touchgfx::TextAreaWithOneWildcardand the colors are wrong when we do not use 255,255,255 and 0,0,0. Only these two colors workWe use the following colors, and it is causing problems. In Run Simulation, everything works as expectedThese are the color codes we use //red color RGBred = 193; RGBgreen = 39; RGBblue = 45; //blue color RGBred = 112; RGBgreen = 144; RGBblue = 183; //yellow color RGBred = 240; RGBgreen = 217; RGBblue = 92; //orange color RGBred = 232; RGBgreen = 166; blue = 71;Please help!!!We use icons with the exact same colors. They are fine! But only texts that touchgfx colors, are not correct. Again not all texts, just texts which are not 0,0,0 and not 255,255,255
Hello everyone,I've been trying to integrate a simple TouchGFX project into STM32CubeIDE (so that I can add my own code to it), it's supposed to print simple graphics on the screen of a STM32L4R9I-EVAL board, but I stumbled upon an issue in the LDTC initialization : I can't write the LTDC configuration in the correct registers. In HAL_LTDC_Init, the LTDC registers are supposed to be initialized with parameters (e.g. the display size goes in AWCR), but when monitoring them through the debugger's memory monitor at address 0x40016800, I only see zeros... Note that earlier it was all 0x2220, I have no idea why it changed. Also, I can see that other peripherals don't have this issue because there are non-zero bytes near address 0x40000000 (the start of memory-mapped peripherals).I attach 3 screenshots at different points in the program's execution (using breakpoints), to show that the value of register AWCR does not change despite being written into. Plus 2 screenshots showing the memory mo
I know there is no demo that runs on a 411. I'd also have to write my own display driver to transfer the display buffer. Just wondering if the 512K Flash and remaining 58K of RAM would be enough to fit TouchGFX and my own code in.
Hey @Martin KJELDSEN ,today I updated touchgfx in my project from version 4.18.1 to 4.19. As soon as I updated, regenerated and compiled my project I noticed that all of my wildcard texts in flexbuttons are missing:Example code:#include <gui/screen1_screen/Screen1View.hpp> Screen1View::Screen1View() { } void Screen1View::setupScreen() { Screen1ViewBase::setupScreen(); Unicode::snprintf(flexButton1Buffer, FLEXBUTTON1_SIZE, "HELLO"); } void Screen1View::tearDownScreen() { Screen1ViewBase::tearDownScreen(); }Result 4.18.1:Result 4.19: I compared generated files (v4.19 vs. v4.18.1) and found out that new touchgfx designer does not generate line setWildcardTextBuffer (also line for sample value snprintf is missing):Further more I noticed that color setting for flexButton text is gone in designer: You can find application examples in zip attachment.
Hi guys, many customers ask for a web page that looks the same as the display on the machine, developed on touchgfx with STM32 microcontrollers.The goal is to control the screen also from the web page.Is there a way to do that? Maybe with an LWIP web server?Which is the best way?Thank you
Hello everyone !I'm using an STM32L4R9I-EVAL board to work on a GUI with TouchGFX and I want to use the MB1315A rectangular screen, and not the MB1314 (little round screen) because it better fits my needs.So I created a dummy project with TouchGFX (it only displays a small image), I generated the code, imported it in STM32CubeIDE (using File->Open Projects From File System), ran it, and the image is correctly displayed on the MB1314 little round screen. I tried unplugging the MB1314 but the display does not fall back to the larger MB1315A screen.Here is my question : How do I configure which screen should be used ? How to use the MB1315A instead of the MB1314 ?Note : I haven't been able to find the datasheet of the MB1315A, if anyone ever saw it I would be glad to have it too ;)
I want to make the specific color of the image transparent.This is different from the alpha of the entire image.There is a method that can be used for 16p of the Color keying document, and I want to know the detailed usage and code.Can I get a sample code for this?Or can someone tell me the code?Also, I would like to know if there is a way to use it with TGFX.ToolsSTM32H747-DISCOSTM32CubeIDESTM32CubeMXTouchGFX
Hello, I'm using stm32f469 with QSPI external flash. The flash is divided for TouchGFX graphic data and for File System.TouchGFX uses memory-mapped mode to access data, while File system accesses also in command mode. How could I prevent TouchGFX to access the external flash while flash is configured to command mode?Thank You,Ari
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.