Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Call to MainView::invalidate for a text box causes CFSR_UNALIGNED inside TouchGFX function, in vicinity of TextProvider::endOfString.Have commented-out our code change to text box text, and simply call invalidate, and observe crash.Tried solutions 1 and 3 at link below, no help, though not surprised about solution 3 since I can't recompile the TouchGFX code.https://developer.arm.com/documentation/ka002886/latestHow to avoid CFSR_UNALIGNED?Edit:Stepping through the TouchGFX assembler language, the offending statement appears to be:LDR R2, [R0]MOV R1, R4LDR R3,[R2, #0x8]Where register set 1 R0=20 and R2=FE119ADA.If that final LDR is loading register R3 from a memory location pointed to by register R0 plus 8, that will not be a valid address.Edit:The original software engineer on this project was using TouchGFX Model method "tick" to call a ModelListener method that updated a text box and called Invalidate. That worked fine.I revised the TouchGFX interactions, both in terms of button pres
Hello,I didn't found any answers for this so I would like to know if I can control micro oled display (high resolution, small density oled, 0.23", VGA res. or something little bit higher) in my smart glasses using some of STM 32 bit MCUs, ik external RAM for frame buffer is necessity? Can I achieve this using the packed LCD TFT controller over some of the serial ports like SPI, I2C? (more about the display in replies)
I want to use a custom 7 inch LCD display in my project, here are my requirements and some questions.My project requirement is:A 7 inch or more LCD displayCapacitive touch 1080 x 600 or 800 x 480 Resolutionquestions:From where do I get a 7-inch LCD displayhow do I use a custom 7 inch LCD display with touchgfx Are any discovery boards available with a 7-inch LCD display I already have an stm32f7508 discovery board can I connect it to a 7 inch LCD display
Hi. everyone. I tried connect 8 bit display (ili9341) to nucleo STM32H743ZI2 board. I used to 8bit LCD interface FMC for it, but image didn't appears. I connected this display to stm32f407 and l4 series without problem. And I'm sure that my driver is correct.
..
I'm using partial frame buffers with CubeIDE 1.5.0 and TouchGFX 4.15. I've found that when updating large portions of the screen, the function touchgfxDisplayDriverTransmitBlock is never called with a height larger than 20 lines, regardless of the frame buffer size. For instance, my display is 320 x 480 and I've configured 2 RGB888 buffers at 115200 bytes each. Each buffer can hold 120 lines of pixels. However, no update blocks with more than 20 lines are generated. I'm wondering why this would be the case.
Hi guys,I want to develop a project, for which needs a display, and i chose the TouchGFX way. I'm using the STM32H747 microcontroller. In TouchGFX exists demos for STM32H747I Disco board, but my application will run on a custom designed board.So I tried to create a new CubeIDE project also for the STM32H747I Disco board.Firstly: When i chose the TouchGFX and the FreeRTOS on the CubeMX configurator, and generated them, the CubeIDE couldn't build them because didn't find any headers and references from TouchGFX and FreeRTOS. After i added manually to include path and source location also didn't find any references. (In this time, didn't find, because these files not yet generated from TouchGFX).Secondly: After i entered to the .touchgfx.part and set up a simple screen, when i tried to generate the GUI teh TouchGFX couldn't generate them. It said: " Post Generate touchgfx update_project --project-file=simulator/msv
19:47:11 : STM32CubeProgrammer API v2.5.019:47:17 : ST-LINK SN : 0670FF53515587828114321419:47:17 : ST-LINK FW : V2J38M2719:47:17 : Board : NUCLEO-F091RC19:47:17 : Voltage : 0.02V19:47:17 : SWD freq : 4000 KHz19:47:17 : Connect mode: Under Reset19:47:17 : Reset mode : Hardware reset19:47:17 : Device ID : 0x43119:47:17 : Revision ID : Rev A19:47:18 : UPLOADING OPTION BYTES DATA ...19:47:18 : Bank : 0x0019:47:18 : Address : 0x40023c1419:47:18 : Size : 8 Bytes19:47:18 : UPLOADING ...19:47:18 : Size : 1024 Bytes19:47:18 : Address : 0x800000019:47:18 : Read progress:19:47:18 : Data read successfully19:47:18 : Time elapsed during the read operation is: 00:00:00.00919:47:34 : Read File: C:\Users\micro_m_i_s\WorkDesk\Practice\ST\STM32F411RET6\TouchGFX_STM32F411_W25Q32_Example01\Debug\TouchGFX_STM32F411_W25Q32_Example01.elf19:47:34 : Number of segments: 219:47:34 : segment[0]: address= 0x8000000, size= 0x142A419:47:34 : segment[1]: address= 0x90000000, size= 0x752819:47:55 : Memory Programming
Hello,I am facing strange problem. I have a camera that transfers data, 90kPixels.Since it is 10 bit camera, and data is packed into 32b word, I can tranfare image in singe DMA config ((300x300)/2 in DMA)So I have Circular DMA buffer, continuous DCMI capture mode, and HSYNC, FRAME, DMA_TC IRQ's Enabled. I get perfect test paters and test data, so all is fine here with communication !After image is captured, I start to do some image recognition. Problem Is I get different behaviors (response in processed data on static image) if i use TC interrupt, frame interrupt, or VSYNC interrupt. All of them should be in time, where data has been transferred, but it's not. I can get IRQ's when DMA says data is not transferred yet, or i get corruption in half of frame, like overexposed frame. So my calculations would start to jump all over the place.Any idea what could be wrong here? why is is a difference for calculated data, if DMA has highest priority and I am doing math from array start? even if
Hi,I want to use a TextLabel container found in another project.I manually edited the Designer's .touchgfx file and copied the relevant cpp/hpp files.Unfortunately, this class assume the presence of about 30 typographies and resources, which are of course tiresome to add manually, and therefore doesn't compile. (they show up in the TEXTS enum in TextKeysAndLanguages, for example).I can't find which file to manually copy from the original project in order to add these typographies to my designer manually.I have tried to copy the project's texs.xslx file, to no avail.Any help would be appreciated!Thank you
I always need to use the internal memory for the incoming image buffer@Imen DAHMEN
I was able to interface "is42s16400j-7tl" (which comes in the discovery board) successfully but not "is42s16400j-6tl".The problem is I get random values while reading the data from SDRAM even though serial data is written from the starting address. Is "is42s16400j-6tl" not supported by the STM32F4 controller?I have attached the expected result and actual result with this thread.
Hello, I'm asking you this question because there is a problem that I couldn't solve during the Touch GFX test.First, let me tell you about the current environment.1. Evaluation board: NUCLEO-L4P5ZG2. IPS TFT-LCD 1) Resolution: 320 × 240, 16-bit color 2) Interface: 8080-parallel (using FMC) 3) Driver: ILI9341V3. CubeMX Settings 1) Interface: Custom 2) Framebuffer Pixel Format: RGB565 3) Width: 320, Height: 240 4) Framebuffer Strategy: Partial Buffer 5) Number of Blocks: 3 6) Block Size: 15,360 bytes 7) Application Tick Source: Custom 8) Graphics Accelerator: None 9) Real-Time Operating System: No OSTE pin on LCD was received as external input and called "touchgfx::HAL::getInstance()->vSync();" and "touchgfx::OSWrappers::signalVSync();".Inserted a user function that sends the ILI9341 driver's cursor and frambuffer data within the function "void touchgfxDisplayDriverTransmitBlock(uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h)".* ProblemsWe used TouchGFX designer to d
Hello,This is my first attempt on using the TouchGFX library, so I'm still learning how everything works. I've a custom board running on a STM32G473CBU6 with a 1.54" ST7789V LCD interfaced through SPI.I know the LCD driver is working because I can run a test without using TouchGFX library and I get expected results, just basic functions like drawing rect, circ, filling with colours etc they all work.I've implemented a simple screen on ToughGFX Designer that is just a simple Text element with a colour background, this excerpt is from screenViewBase.cppscreenViewBase::screenViewBase() { __background.setPosition(0, 0, 240, 240); __background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 255)); textAreaVoltage.setXY(46, 59); textAreaVoltage.setColor(touchgfx::Color::getColorFromRGB(0, 255, 0)); textAreaVoltage.setLinespacing(0); textAreaVoltage.setTypedText(touchgfx::TypedText(T_RESOURCEIDVOLTAGE)); add(__background); add(textAreaVoltage); }The simulator show
Hi There. In our product we would like to play a very short explanation video. Now the question is how to do that without extensive memory usage. So far we do have a very slim design and are ok totally in the range of 32 MB external flash. Is there a way to have short videos and still stay in that memory range? E.g. using some kind of video format?Any idea appreciated!
HelloI'm working with a custom HW with a STM32H753 controller.The operating system is Keil RTX and Keil Middleware is used.I have a 272x480 display connected to LTDC (RGB565).I also have ethernet functionality implemented with a LAN8742A PHY and one USB Host (MSC).For Networking and USB, Keil Middleware is used.Now my 2 problems:1: Ethernet connection is working fine (Link is up and running) when connecting my board to a switch or hub.When connecting our board directly to the pc/notebook (point to point connection) without the use of a switch, then the link is up for a short time (1-1.5s) and then loses it. This cycle is repeated endlessly.When disabling TouchGFX (removing the signal vsync), both connection variants (with and without switch/hub) are working without any problems.As far as I know, the link is brought up by the PHY and has nothing to do with my firmware, all it needs is a 25MHz clock and then the link shoud be established.I'm clueless as of why the deactivation of TouchGF
Board : STM32F746BGT6Previously I use stm32f7-discovery board, my touch controller is ft5336 it’s working fine, when I read the status register (0x02) every time ,after read it’s reset automatically Example(FT5336):Read status register( 0x02) = value ‘1’After, Read status register( 0x02) = value ‘0’(goes automatically)Same thing I do in ft5426 every time read status register(0x02), after read it’s not reset, it’s maintain previous value why ??Example(FT5426):Read status register( 0x02) = value ‘1’After, Read status register( 0x02) = value ‘1’
Hello,I'm using TouchGFX with STM32H757i-eval board I'm finding it difficult to configure for TouchGFX with RTOS.Is it mandatory to use RTOS while using TouchGFX.According to this link TouchGFX can be configured without RTOS.https://support.touchgfx.com/docs/basic-concepts/operating-systemCould you please provide an example on how to configure TouchGFX with RTOS.As all the examples that I have referred use RTOS.
Hi,I'm having difficulty in creating multiple screens, currently, it already has 5+ screens and they all works fine through code (void FrontendApplicationBase::gotoMainScreenNoTransition() ) but when I tries to add one more screen, TouchGFX is not generating the Screen Transition Declarations code for new screen but it does declaring this in FrontendApplicationBase.cpp class :#include <gui/aldetruma_screen/NewScreenView.hpp>#include <gui/aldetruma_screen/NewScreenPresenter.hpp>while for all other screens it has generated the following:void FrontendApplicationBase::gotoMainScreenNoTransition(){ transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplication::gotoMainScreenNoTransitionImpl); pendingScreenTransitionCallback = &transitionCallback;}Any thoughts will be very helpful.
TouchGFX creates Model and ModelListener but I can't figure out how to access the Model "getters" from main.c or any other user code. I can't find where Model or ModelListener is instantiated or where a pointer to the class instance can be found. How to access the "getters"?
Hello,I have a STM32F723 Application with TouchGFX (4.16.1) Graphics over SPI and a Display with RM69330 Controler (454x454x2Bpp).I use PartitialBuffer Configuration, because internal RAM is too small for whole Framebuffer. I've implemented the Transmit Function ("touchgfxDisplayDriverTransmitBlock( uint8_t* pixels, uint16_t x, uint16_t y, uint16_t w, uint16_t h)") where I set Position Rectangle in Display Controler and write Pixels to the Display. That works fine if x/y/w/h are a multiple of 2 otherwise it looks weired.Problem is: In RM69330 DataSheet it says that Column and Row Startaddress and Width / Height "must can be divisible by 2".Question: Is there any way to tell TouchGFX to only supply framebuffer parts with x/y/w/h as a multiple of 2? Or is there any other Known solution?
Hi Everyone.I have problem with STM32F746G-DISCO when i program .hex file demo as link https://www.touchgfx.com/resources/demos/i'm doing step by step follow in pdf file attached in demo folder.When i load .hex file in folder "3DBoxDemo" it is OK and run normal.When i load .hex file in folder "touchgfx_demo2014" it show me a message as "TimeOut" picture. But when i restart STM32F746G-Disco, i see that have program running, but background color is red.This happen again when i load .hex file in folder "touchgfx_demo2015_480x272_8MB", that mean i see that have program running, but background color is red.I'm afraid that QSPI chip on STM32F746G-Disco have problem, so that it can't load background.i hope anyone can help me solve this problem.Thanks And Best Regards.
Hi, I'm starting to use the stm32h7b3 dk and wanted to create a full graphics test project. how can I do? I have already created through STM32CubeIde a project with correct target but I no longer know how to continue
Hi,I have found a bug in the designer, how can I report it without exposing my *.tgfx files here in this forum? Roy
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.