Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Is there anywhere an Application Template available for this platform with the RGB TFT screen ?Or any informations on how to do it, as it was asked here :https://touchgfx.zendesk.com/hc/en-us/community/posts/360033454431-TouchGFX-support-for-STM32L4R9I-EVAL-board-with-480-272-LCDDisplay is the same as on the F746G-Discovery so it should be easy to adapt template from the F7 board. But I'm not able to find the place where already available Application Templates are provided ? Is it possible to get the well-formed archive somewhere locally when connecting to the remote server ?Ideally, this Application Template should generate an ioc file to STM32CubeMX, same as with the F7 board. With this file, we can then adapt the project to build with TrueStudio and/or SW4STM32 (done sucessfully on the F746 with some manual changes)
I cannot find an implementation of the Easing Equations class functions. But when used in code, it works.Where can I find the implementation of functions?
Hi. When try to create a project in TouchGFX 4.10.0 Designer, an error occurs:make -f simulator/gcc/Makefile assets -j10touchgfx update_project --project-file=../EWARM/STM32F746G-DISCO.ewp --gui-group-name=Application/User/TouchGFX/gui --generated-group-name=Application/User/TouchGFX/generated && touchgfx update_project --project-file=simulator/msvs/Application.vcxproj && ruby updateMXProj.rbUnable to launch simulatorPost Generate ErrorHelp me please.
All,I have been utilizing the STM32F765 chip to transfer frames (RAW images) of data back and forth from a camera, to flexible memory RAM, to the screen, to/from an SD card. When I attempt to use the DMA in tandem with interrupt based transfers to and from the FMC, everything slows down significantly. Does anyone have any advice on how to reduce this slowdown? I have been considering not using the DMA to transfer the DCMI data to the FMC, just so that I wouldn't have multiple masters accessing the same peripheral. This would probably require significant rework. Thoughts?This additional question probably deserves another post, but I will leave it here as well, just in case someone who reads this post doesn't read the other. I also see that I get occasional glitches when moving the FMC data to the LTDC when I neglect to allow extra time to pass between each retrieval of data from the SD card. This takes the form of color inversion and dropped/overlapped frames. However, when I do allow a
Hello, in "graphics / touchGFX", I made a mistake, I selected my project touchGFX instead of selecting the .exe software. Now I can not select the right because the "type of files" is blocked on the name of my project ... I tried to reinstall Stm32CubeMX, but that does not change anything. How can we reset this field?
Hi!Is it possible to write data from DCMI to FIFO continiously without generating VSYNC pulse?The fact is that during the generation of a VSYNC pulse, several samples are lost.
I would like to better understand what exactly is DSI_IO_WriteCmd() doing. I want to write a driver for an aftermarket dsi display. The problem is that I cannot fully understand how to set wanted value for certain parameters at given addresses of the display registries. So far I explore, that after calling it, it first checks, if there are more than 1 parameters, so it can proceed forward with writing short(<=1 param) or long (>1 param) command. After that function DSI_ConfigPacketHeader takes place, which is putting the values of: DataType, ChannelID, Data0, Data1, to the GHCR part of the DSI struct. GHCR has an address offset of 0x6C. And after that I can't figure out how the data is being transmited to the display (I know it is through the data lanes), but don't know what the exact order of data flow is and I really do need that, because I'm not able to set any values to the parameters of the display controller. I know exactly which values and paramaters I have to change, but
Hello all.We have STemWin properly running on STM32L4R7, but STemWin uses quite a large amount of CPU time to draw display contents etc. We cannot allow that, because we have a time critical task to do (RealTime). So the sollution would be: use RTOS. We managed to setup RTOS nicely, switching between tasks by using "osDelay" works fine. But when we add STemWin the Gui_Exec takes quite long and needs to be interrupted by preeption. When this occurs, the PendSV Handler the instruction "ldmia.w r0!,{R4-R11,R14} crashes and jumps into the hard fault handler. Has anyone successfully used RTOS and STemWin with preemption on STM32L4Rx ?Thanks for any help.Attached project is generated with CubeMX5.2.1 for SW4STMWe use an FMC based Display. We didn't do anything fancy. We just configured the project with CubeMX. All libs and settings are provided by CubeMX Code Generation. Johannes PendSV_Handler: 08004e10: mrs r0, PSP 08004e14: isb sy 08004e18: ldr r3, [pc, #84] ; (0x8004e70 <PendSV_H
..
HiIs there already a OSWrapper_cmsis.cpp for FreeRTOS v2?Currently I am stuck because the OSWrapper_cmsis.cpp seems to be for v1.I tried to port my Atollic Project to FreeRTOS CMSIS v2.However there a now a lot of compiler failures left, which I cannot handle.It seems like there are some includes missing ("vTaskSetApplicationTaskTag was not declared in this Scope", "TaskHandle_t was not declared in this scope" in FreeRTOS.h).Br. Raphael
I'm trying to use the IDE to generate a CubeMX project for the 769I-DISCO that uses the LCD and touchscreen; I've settled on the STemWin graphics library to avoid depending on the external TouchGFX tools. I've built numerous projects using the standalone CubeMX tool in the past. I've found a bug in the way the IDE's code generator configures my project, where it omits a necessary library file (but, apparently, ONLY when generating for the IDE as the target build tool). I'm able to configure the project settings using the CubeMX IDE's CubeMX tool (project files attached), but when I try to build the target, I get numerous undefined symbols at link time, such as the following: "undefined reference to `FRAMEWIN_CreateIndirect' FramewinDLG.c"I've tried configuring the same project for Atollic TrueStudio using the standalone CubeMX5.2.0, and that project includes a Middlewares/ST/STemWin/Lib directory containing the file STemWin_CM7_OS_wc32_ot_ARGB.a, which isn't created/copied by the CubeI
Dear community,Is it possible to use CLUTs in Chrome-ART of STM32H7 for L8 to L8 color conversion specifically gamma conversion?Thank you very much,Alex
I create this project in Keil using cubemx. Keil-Mdk V-5 and STM32Cubemx
I have configured my application in cubeMX then I execute touchgfx to generete graphic code and finally i build the project with keil but an error occured on linking "Error: L6218: Undefined symbol OTM8009A_Init (referred from stm32f769i_discovery_lcd.o).
here is my code void LCD_Enable(){HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,1);HAL_Delay(1);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,0);HAL_Delay(1);}void LCD_Send4Bit(unsigned char Data){HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,Data&0x01);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,(Data>>1)&0x01);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,(Data>>2)&0x01);HAL_GPIO_WritePin(GPIOA,GPIO_PIN_11,(Data>>3)&0x01);}void LCD_SendCommand(unsigned char command){ LCD_Send4Bit(command >>4);/* Gui 4 bit cao */ LCD_Enable(); LCD_Send4Bit(command); /* Gui 4 bit thap*/ LCD_Enable();}void LCD_Clear(){ LCD_SendCommand(0x01); HAL_Delay(1000);}/* USER CODE END 0 */void LCD_Init(){ LCD_Send4Bit(0x00); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,0); LCD_Send4Bit(0x03); LCD_Enable(); LCD_Enable(); LCD_Enable(); LCD_Send4Bit(0x02); LCD_Enable(); //LCD_SendCommand(0x33); //HAL_Delay(100); //LCD_SendCommand(0x32); //HAL_Delay(500); LCD_SendCommand(0x28); // giao thuc 4 bit, hien
HiThe example project "JPEG_DecodingFromFLASH_DMA" has the include file:"image_320_240_jpg.h". I would like to know what software ST used to convert the .jpg image file into C header file or into the image_320_240_jpg buffer array.
Hello,I am new to TouchGFX and I am very impressed with not only your technology, but with how responsive this forum is. I have watched a number of tutorials on TouchGFX. I have an STM32F7508-DK development board and I have been able to successfully generate interesting user interfaces.My question relates to porting TouchGFX to a 144 pin version of the STM32F750. I am designing a custom board with this chip. I have a very cost sensitive application and cannot use the BGA package. As a result . . . by the time I assign the FMC controller and the Quad SPI, I am only able to use the LTDC in either RGB565 mode or RGB666 mode. 16 bit color depth is fine with me, but I am forced to use a display with RGB888 interface format.So . . . my questions are:Do I simply tie the lower order bits (R0, R1, B0, B1, G0, G1) on the display to GND?Should I use RGB565 or RGB666 mode?The ability to have transparent background bitmaps is very important in my application.Will there be any color banding in the t
如何使用touchGFX绘制多边形,在knowledge里�?��??到canvas widgets,具体�?路是什么?thanks
Hi,I have small bitmap in a window, which normally I would like it appear to be transparent (invisible) but when a flag is set to become fully opaque, when the flag is cleared go back to being fully transparent.Kind RegardsMikeZ
Hi,I don't get why I can't set the border thickness/color directly when creating the BoxWithBorder object._boxWithBorder3(50, 50, touchgfx::Color::getColorFrom24BitRGB(150, 150, 250), touchgfx::Color::getColorFrom24BitRGB(0, 0, 0), 5,50)Indeed, it doesn't work and draw a box without a border! All the other params work, hence I can change its size, background color, transparency, but impossible to get it to be drawn with a border! Calling the setBorderSize function after the object has been created works just fine. An idea?Thanks.
Hi, Greetings to everyone here! I am new to STM32 HAL Programming and I have tried some example codes on System Workbench for STM32 (SW4STM32) and Atollic TrueStudio IDEs. Recently I got a STM3220G-EVAL Board and I'm trying to interface Touchscreen LCD with it (It has STM32F207 microcontroller on it). The LCD controller I am using is SSD1963 (864x480) LCD Display Control. Could anyone please suggest me how to Interface STM32F2XX (STM3220G-eval) or STM32F4XX with SSD1963 (864x480) LCD Display Control? As am new to HAL LCD programming so if someone has a dummy code, please do share that with me. That would be a great help. Thanks Mohd Tanveer
Hello All,I am setting up STemWin on STM32F103VE MCU. The graphical part is all setup and working fine!The problem is the Builtin touch screen driver of STemWin. I have gone through the manual and created the low level SPI communication part and tested it separately and is working fine. I am able to read the ADC values and they are perfect for touched positions. And after that I have registered this low level i/o layer to STemWin using a call toGUITDRV_ADS7846_CONFIG Config = {0}; Config.pfSendCmd = ADS7843SendCmd; Config.pfGetResult = ADS7843GetResult; Config.pfGetBusy = ADS7843GetBusy; Config.pfGetPENIRQ = ADS7843GetPENIRQ; Config.pfSetCS = ADS7843SetCS; Config.xLog0 = 0; Config.xLog1 = 319; Config.xPhys0 = 4000; Config.xPhys1 = 600; Config.yLog0 = 0; Config.yLog1 = 239; Config.yPhys0 = 800; Config.yPhys1 = 4000; Config.Orientation = GUI_SWAP_XY; GUITDRV_ADS7846_Config(&Config);I have placed breakpoint at the function which get ADC results from ADS7843 chip.
We have an existing embedded application with older GUI which is being ported to TGFX. For keeping the old logic, we want to display a blocking message box and wait for user response (button click) in a widget callback(GUI button callback). The problem is that the tick is ignored during executing the callback and screen stop rendering. Is there anyway to keep the screen alive during executing widget callback? Thanks in advance.
Hi, I am using STemWin on a ST32F429 in combination with a ST7735S connected to the cpu over an 8 bit interface. My pixel are 16 bit with color format RGB=565. My controller expects the bytes to be transferred R5G3, G3B5.The problem I am running into is that if eg i work with a memdev the 16bit pixel data in that memdev is not in the correct order for that transfer order.Eg a red pixel that should be 0xF8 0x00 is stored as 0x00 0xF8Then when transferring this data to the screen it seems the memdev memory buffer is first copied to an intermediate swap buffer so that the order becomes 0xF8 0x00 before the bytes are presented to the low level 8 bit transfer functions. I have 2 problems with that:1. I want to eliminate the overhead of the extra swap+copy action2. I have source images in a raw format with the bytes in the correct order that I copy directly into the memdev memory region. However with the swapping operation my colors become corrupt. I can 'solve' the firs
void Screen1View::setupScreen() { FILE* f = fopen("C:\\Temp\\image.jpg", "rb"); uint16_t width, height; JPEGFileLoader::getJPEGDimensions(f, width, height); BitmapId bmpId; //create dynamic bitmap matching file dimensions and in format matching LCD if (HAL::lcd().bitDepth() == 16) { bmpId = Bitmap::dynamicBitmapCreate(width, height, Bitmap::RGB565); } else { bmpId = Bitmap::dynamicBitmapCreate(width, height, Bitmap::RGB888); } if (bmpId != BITMAP_INVALID) { //Succesfully created, load JPEG file to bitmap JPEGFileLoader::readJPEGFile(Bitmap(bmpId), f, lineBuffer); } //Image shall show the loaded bitmap image.setBitmap(Bitmap(bmpId)); //Position image and add to View image.setXY(20, 20); add(image); Screen1ViewBase::setupScreen(); }
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.