Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
I am trying to use DCMI and DMA to capture picture.But I got data transfer error from DMA. And I found the following information from the reference manual. Data transfer erroron a bus access (as a AHB single or a burst) to the source or the destination- The source or destination target reports an AHB error.- After a GPDMA data transfer error, the user must perform a debug session, taking care of the product-defined memory mapping of the source and destination, including the protection attributes.I am not sure what I should debug. "product-defined memory mapping of the source and destination." I am not sure what it's. For the source of DMA I use &DCMI->DR. for the destination I use var; var is an array name (global variable).Appreciate any help.Best,Guangzong
Maybe someone has example of drop-down?
Hi there,We are completely stuck for a project with touch GFX and CubeMX (last version installed).We try to use images stored in an SDcard.We have understood the logic of transferring images from the SD card to the screen.We have a just an output message from the command used to create le .bin file :$ arm-none-eabi-objcopy.exe --dump-section ExtFlashSection=images.bin TouchGFX/build/bin/target.elffile in wrong formatWe don't understand or act !Have you a good idea?
We are able to run the TouchGFX code on target using TouchGFX 4.15.0 version.When trying to port the generated to custom project created using STM32CubeIDE 1.4.2 version the display does not work.I request correct configuration setting for display on STM32F429I Disc1.Regards,Rajesh K.
Hi everyone,TouchGFX Version: 4.19.0STM32CubeIDE Version : 1.9.0Card : STM32F429I-DISC1OS: Windows 10HAL: STM32F4 1.25.0I have created a TouchGFX project, rename in all ioc , touchgfx and project file the project name give by touchgfx.I have keep the HAL use by touchGFX 1.25.0When i compile first in CUBE IDE it's compile and run well on card, but when i regenerate code with the ioc in CUBE IDE i get a lot of compile error.I would like to be able to update the .ioc for a custom card that will have an Ethernet and many other features.What i have done wrong ?Thanks in advance.arm-none-eabi-gcc "../Middlewares/Third_Party/FreeRTOS/Source/queue.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DDEBUG -DSTM32F429xx -c -I../../Core/Inc -I../../Drivers/CMSIS/Include -I../../Drivers/BSP -I../../TouchGFX/target -I../../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../../TouchGFX/App -I../../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I../../TouchGFX/target/generated -I../../Middleware
Hi, I have tested my 4.3" TFT-LCD by write the whole screen with one color blue or orange freshing with about 34hz, but it blinks.the test code run in main function: int ii=0; int cl =0x0;//color while(1) { if(ii==0) { ii =1; cl =0xFF00; }else { ii =0; cl =0x00FF; } LTDC_Clear(cl);//change the sceens color. HAL_Delay(30); }the clock of tftlcd is 10Mhz, and its resolution is 480*272, LTDC_Clear() runs DMA2D to freshing data like this: CS_UINT32 timeout = 0; DMA2D->CR = DMA2D_R2M; // dma2d mode: register to memory. DMA2D->OPFCCR = DMA2D_OUTPUT_RGB565; DMA2D->OCOLR = color; DMA2D->OMAR = (CS_UINT32)addr; DMA2D->OOR = offsetLine; //offset DMA2D->NLR = (CS_UINT32)(xSize << 16) | (uint16_t)ySize; DMA2D->CR |= DMA2D_CR_START; while (DMA2D->CR & DMA2D_CR_START)
I'm using the LTDC peripheral to interface with a TFT LCD. It works great. Now I'm interested in rotating/orienting the display by 90 degrees. I have a couple approaches in mind - Doing some pointer gymnastics into the frame buffer that basically writes the pixel information into precise addresses that results in a "rotated" image. Somehow tell the TFT LCD panel to start writing the pixel information from the bottom to the top of the display. Instead of the default top to bottom.I'm open to other approaches or maybe I'm missing an obvious way to do this. Maybe leveraging the 2 layers that the LTDC makes available? Somehow have one dedicated for landscape the other for portrait mode? I am not using the touchgfx library since I'm only interested in displaying still images and it looked to be more helpful for applications with UI's.I'm researching the 2nd approach. Page 15 of the ILI6480BQ data sheet states that there is a register R1 in the TFT LCD driver that controls the scan direction
Hello,I have a problem during my touchgfx_generic_init call.I fall in HardFault_Handler when FrontendHeap::getInstance(); is called.Before that I have a strange behavior on calling hal.initialize(); which calls OSWrappers::initialize() and switch to disassembly code.You can have look on the print screen joined.Thanks for your help.
Hi,I use STM32CubeMX to configure a STM32H743 device. I enabled global DCMI interrupts.But I see no HAL functions to start the DCMI and enable specific interrupts.I hoped to find suitable functions in stm32h7xx_hal_dcmi.c. But there aren't.There is a HAL_DCMI_Stop() but not a start equivalent.There is a HAL_DCMI_Start_DMA() which is strange because I did not enable DMA in STM32CubeMX. (Well, I did first, but then I disabled it)I see the interrupt functions like HAL_DCMI_VsyncEventCallback() which I can overload, but I see no functions to enable each specific interrupt.What am I doing wrong?
Using STM32H735, Can I play any video clip?TouchGFX has video clip play example for STM32H735-DK EVB.But It is not working.
Hi,I would like to know if it is possible to 'freeze' the bitmap ID from build to build?I.e. give myself an ID...It is for a remote display with picto-button type, but the customer request is that he wants now a remote with a dynamic keypad. The button matrix(position, picto id, event...) would be send by communication by the other card.While the number of picto is constant there will not trouble. If the number changes it will be not compatible.It seems it is in alphabetic order in bitmapdatabase.hpp and the only solution if I add a picto in the future it is to insert with end of alphabet character to put in the end of the regenerated list.Pierre
I am using a custom layout for the flash. A lot of the code is proprietay so I can share some parts of the code not the entire zip. Please understand. Can someone reply with any pointers that where should I look for such an issue ? I can share limited portions of the code if you may want.Application already working with the simulator.
Hello,The image attached should display 4 times the same .png image.The top line (left = .png as background of gauge widget) (top right = same image in image widget) both in designer.Bottom line simulator view of the same bitmaps.My question: why is the designer failing to display the bitmap correctly in the gauge but ok in the image control?My arrow .png has the same issue. The screen does not contain any specific code.I have seen similar post but not the same (designer ok, live result not ok)Thanks for any advice.Johi.
I managed to create a GUI in TouchGFX and compile it as a standalone project. Now, the GUI should be integrated in an existing project that is already up and running (it has some paramters which are statically defined before compilation).The sliders are meant to be connected to virtual functions which in turn call methods in the main application to edit those parameters dynamically. So, I still want to preserve all the functionalities and structure of my main application and simply add a way to dynamically alter the parameters through the touch screen.Thanks (I'm on STM32H735G-DK) :)
We are working on camera live streaming project. here we have achieved raw bayer to argb conevrtion and successfully updating 30 fps on LCD display of stm32f7508dk. We need to send the video frames to external ports(USB, HDMI or others) which may be used to display on external monitor. Can somebody please suggest any easy method to acomplish the same ? Please let me know if further details are needed,Thanks and Regards,Manu DevappaRioSH Technologies
I'm working on an GUI that has mainly a static graph wich plots bode diagrams. So i have been searching on the API of touch gfx ways to make a logspace in x-axis in order to plot frequency but a i didnt find a way to change the linear magnitude of x-axis.I would need something like this: Is it possible to manipulate x-axis scale?Thanks in advance
Hello. I saw a post about using a 180 orientation and did it, but as said, the performance was broken. Can i change the backend mounting of framebuffer? Where can i find where TouchGFX API is mounting framebuffer? There is another way, like changing LTDC configuration for change the orientation between 0-90-180?
I just purchased two F769 Discovery kits for use with Qt for MCU's. On both of them, touch is not working for Qt GUI projects, but does work on the TouchGFX demo. Both boards are the latest revision A09, which I see from release notes has a different touch/display module. A colleague has an older board revision and was able to flash and correctly use the same Qt project I was trying to work with. Can anyone tell me what's changed with this board revision that could account for the problem?
can i use stm32 hal libraray to interact touch gfx with hardware without using task and queue methods one of the video posted by st on youtubehttps://www.youtube.com/watch?v=qqCu3D3zhn4ie, functions and variables are used as extern simply write h and c file for hardware and call h file inside touch gfx as extern shown in above video link
I'm using this function:And I want to know when text line goes to next line. I want to get index or something when goes to second line. Is it possible?
Hello,I'm discovering the different widgets of Touch GFX. I stumbled upon a problem I do not know how to solve and I haven't found the answer on the internet.I'm working with the board Riverdi_101STM32H7 (chosen in the list of available boards).When I create a text area (or a button with text, text progress, digital clock), I encounter this problem when I generate the code.Generate Code Generate Done Generate Assets make -f simulator/gcc/Makefile assets -j8 Reading ./application.config ERROR: Attribute 'Direction' not specified in line 8 for <Text Id="__SingleUse_FCFO"> An error occurred during text convertion Cleaning generated files from generated/texts and generated/fonts. generated/simulator/gcc/Makefile:225: recipe for target 'texts' failed make[1]: *** [texts] Error 1 simulator/gcc/Makefile:32: recipe for target 'assets' failed make: *** [assets] Error 2 Failed FailedI checked the direction of the typography is LTR so it is specified in there at least. Wh
Hello, is it possible to add for example a line on the canvas at run time? I'm managing to do a log x scale providing the decades separators with a Line object, but my plot could have more than one decade, so i think is a terrible idea to add many lines as i want, and then making each one visible as it is required. So a tried to add lines at run time but i couldn't manange to do it. I didnt expected to work because it's probable that im jumping many layers of TouchGFX.This part of code was written from me in Screen1View.cpp - void Screen1View::DataDisplay(): touchgfx::Line line4; touchgfx::PainterRGB565 line4Painter; line4.setPosition(204, 0, 23, 240); line4Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); line4.setPainter(line4Painter); line4.setStart(0, 240); line4.setEnd(0, 0); line4.setLineWidth(4); line4.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING); add(line4);Thank you very much.
I found the following bug:STM32CubeMX generates the following initialization code: /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DCMI_Init(); MX_I2C1_Init(); MX_I2C2_Init(); MX_UART5_Init(); MX_USART1_UART_Init(); MX_DMA_Init(); MX_USB_DEVICE_Init();The problem is that MX_DCMI_Init() is also initializing the corresponding DMA. But the DMA clock is not enabled yet! It will be enabled by MX_DMA_Init().The result is that the DMA for the DCMI is not correctly initialized and the code does not work.When I enable the clock just before the initialization it works: /* USER CODE BEGIN SysInit */ __HAL_RCC_DMA2_CLK_ENABLE(); /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DCMI_Init(); MX_I2C1_Init(); MX_I2C2_Init(); MX_UART5_Init(); MX_USART1_UART_Init(); MX_DMA_Init(); MX_USB_DEVICE_Init();
I'm using a STM32H743.I used STM32CubeMx to configure the DCMI. It uses DMA to transfer to memory.When calling HAL_DCMI_Start_DMA(), the DCMI_DMAError() function is called.I found out that there is a transfer error. And according the documentation a bus error is the reason.But the CFSR register of the MCU is zero, indicating no bus error.What could be wrong?Things I did:use STM32CubeMX to set up DCMI and enable DMADisabled cachingcreated a buffer in SRAM1 using__attribute__ ((section(".buffer"), used)) uint32_t bigbuf[30000];checked that it is present in region RAM_D2called HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32_t)bigbuf, ((752*480)/4)/4);HAL_OK is returnedsensor is 752*480, I use 8 bit DCMI (thus 4 in a word) and I use half the number of pixels and half the number of lineschecked with oscilloscope that DCMI is working (clock, sync and data signals present)Any idea why I can get this transfer error?
Hello,I generated code from the TouchGFX Designer 4.20.0 application, then added custom code afterwards to do the functions I required. I compile the code via the CubeIDE (NOT the TouchGFX Designer compiler) and it works without issue. All functions are working.After this, I decided to add a new screen via the TouchGFX Designer. It's a simple start-up screen that just shows our company logo then transitions to the previous screen that I was working with. When I do that and hit the "Run Target" (to compile and run the code with the new screen), it works without issue. Both screens are there, my custom code that I put in the IDE still worked. However, if I then jump to the IDE and try to compile/run it via the IDE, I get a compiler error that "Screen2View" does not exist. Specifically:"undefined reference to `Screen2View::Screen2View()" I'm unsure what the difference is. Can anyone help explain what's happening?
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.