Discuss STM32 and TouchGFX implementations, including configuration, debugging, and optimization.
Most recent activity
Posted on November 01, 2017 at 22:23Hello,I am trying to capture data from ov7670 camera using DCMI and display it on LCD(later I want add some image processing). I'm storing image in QCIF format on internal RAM and then I'm sending it to LCD.So far only LCD is working, but I cannot make camera working. When I'm trying to display captured image I'm always getting something similar to this:Stripes on image changes colors and sometimes there are some noises.Maybe there is problem with DCMI or camera registers configuration?Here is DCMI configuration:/**DCMI GPIO Configuration PE4 ------> DCMI_D4 PE5 ------> DCMI_D6 PE6 ------> DCMI_D7 PA4 ------> DCMI_HSYNC PA6 ------> DCMI_PIXCK PC6 ------> DCMI_D0&nbs
Posted on November 22, 2017 at 13:13According to the emWin manual LCD_SetDevFunc can be used to set additional and / or user defined functions of the display driver.Examples from STM32CubeF4 are using the function within LCDConf_xxxx.c to set a low layer drawing function for 8bpp bitmaps likeLCD_SetDevFunc(i, LCD_DEVFUNC_DRAWBMP_8BPP, (void(*)(void))LCD_LL_DrawBitmap8bpp);to use DMA2D for the data transfer. However the emwin manual says:LCD_DEVFUNC_DRAWBMP_8BPPCan be used to set up a function which draws 8bpp palette based bitmaps. This canmake sense if for example a BitBLT engine is available to do the job.The function pointed by pDriverFunc should be of the following type:void DrawBMP8(int LayerIndex,int x, int y, U8 const * p, int xSize, int ySize,int BytesPerLine, const LCD_PIXELINDEX * pTrans); whereas the passed function pointer in LCDConf_xxxx has the following signature: static void LCD_LL_DrawBitmap8bpp(int LayerIndex, int x, int y, U8 const * p, int xSize, int ySize,
Posted on November 22, 2017 at 15:34Hi community.I've been trying now for a month to implement an UDP ethernet connexion with the STM32F769I-DISCOVERY with LwIP using TouchGFX without freeRTOS.I already managed to add the middleware in my TouchGFX project, then I almost entirely copy/pasted exemple ethernetif.c code from CubeMX projects. I implemented a small UDP echo server in the project but I am not able to detect my board on the PC. I've been trying maany things to fix the code but there is not much documentation on internet about using ethernet with Tgfx.Has anyone already managed to do that ? For example in order to compile LwIP I had to put all the *.h files in an include directory that I think may have changed the behavior of the code. Does anyone has any advice please ? Do not hesitate asking for details because I'm so lost that I don't really know what part of the code would help you...Best regards#touchgfx #stm32 #lwip #ethernet #stm32-f7
Posted on November 22, 2017 at 16:19HiI'm using STemWin with STM32F429I Discovery board. I need show a variable on the Dialog. But I Don't know how to text a variable. Is there any example in this regard?Best RegardsThank you#print #stemwin #variable
Posted on May 15, 2017 at 16:14Hello.I'm using STM32CubeF4 1.14.0 with STemWin 5.32 and have setup a simulation of the GUI in Visual Studio where I link the STemWin532_WIN32.lib into the project.I have found a severe problem with the SWIPELIST widget which throws an exception in the simulation each time when you populate the list and after that delete the swipelist or a the last item in the list like: WM_HWIN hSwipe = SWIPELIST_CreateEx(400, 290, 200, 120, hWin, WM_CF_HIDE, 0, GUI_ID_SWIPELIST0); SWIPELIST_AddItem(hSwipe,'Item 0',100); SWIPELIST_DeleteItem(hSwipe,0);This throws an unhandled exception in the simulation. I checked the behaviour against the up to date simulation library from Segger (5.40) and found that the behaviour cannot be reproduc
Posted on January 05, 2017 at 14:18Dear all,I would like to implement my routines to support the jpeg encoder/decoder included in the stm32F777.Unfortunately, the documentation of this interface is really poor (unusable to do a correct job).Does someone find application notes or any other usable documents that allow a correct usage of this jpeg hardware bloc?Thank youRegards Edo#jpeg-encoder
Posted on November 06, 2017 at 14:29The purpose this post is to need some suggestion. I am describing the information below.The system will contain micro-controller, camera and SD card(SDIO Interface). For camera we have selected 5 MP DCMI Interface. We capture the picture and save this picture into SD card memory. To achieve this application we have selected STM32F407VGT6 micro-controller. So we have below queries regarding the same.Camera description mention belowFeatures: Onboard LDO regulators for 2.8V and 1.8VSingle 3.3V power input2.54mm (0.1 inch) standard pin outOpen source project http://www.arducam.com/ supportedactive array size: 2592 x 1944power supply: core: 1.5VDC + 5% (internal regulator) analog: 2.6 ~ 3.0V I/O: 1.7 ~ 3.0Voutput formats : (8-bit): YUV(422/420) / YCbCr422, RGB565/555/444, CCIR656, 8-bit compression data, 8/10-bit raw RGB datalens size: 1/4?input clock frequency: 6 ~ 27 MHzshutter: rolling shuttermaximum image transfer rate: 5 megapixel (2592�1944): 15 fp
Posted on November 06, 2017 at 15:16Hi I will inquire about LTDC in ST32F429.When the clock is set as below, For use frequency 25Mhz.but, Frequency 25Mhz not output. Let me know,how it should set?=================================PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC; PeriphClkInitStruct.PLLSAI.PLLSAIN = 200; PeriphClkInitStruct.PLLSAI.PLLSAIR = 4; PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);=================================Regards, #ltdc(25mhz)-in-st32f429.
Posted on October 30, 2017 at 02:06Hi ST and Folks.I found a strange point on STM32F439NI LCD clock.When I set LCD clock to 33.25Mhz, the clock goes up around 1V like DC bias and peak to peak becomes 2V.However, in cases of under 20Mhz such like 16Mhz, 8Mhz, there is no problem. I mean the clock starts 0V andgoes to 3.3V.The reason why I am seeing this is my LCD screen is broken with 33Mhz (actually over around 20MHz)but there isn't any problem with 16Mhz and 8Mhz.When I captured the strange clock signal, LCD clock pin doesn't connect to anything and I pick oscilloscope probeon actual STM32F439NI LCD clock pin (H3).Could you please anybody if this clock signal(1V dc biased) is normal or not?If not, what can cause this problem? Thanks in advance. Chris#stm32f429-ltdc-lcd-tft-clock
Posted on October 25, 2017 at 14:51Hello All,I am first time working on DCMI with STM32f4 series micro controller.We are planing to interface DCMI camera with STM32f407 Micro controller.Camera Resolution is '2592x1944' and Image size goes up to 512kb ~ 2MB.Camera module consist of ov5642 CMOS.We have already interfaced Memory card for storage of data.Is there any external memory(Buffer) is required while camera image capturing is in process?Is there any possibility to store image directly in to Memory card over SPI interface?#dma #memory #stm32f407 #dcmi #ov5642
Posted on October 26, 2017 at 02:04Greetings all,I want to show the images on the sd card on the lcd screen.I use library sampleSTM32F4DIS-BB Software Examples 20130307\STM32F4xx_SDIO_Example\Project\uSDCard.But I do not know on the sd card that how to display the images.Library is true?What I should use function?Thank you very much.Kind regards,Dursun G.
Posted on October 08, 2017 at 03:59Hi All.I am currently building a project based on the �STemWin Demonstration� example in the below directory, on the STM32746G Discovery Board. All of the examples use the external DRAM Module (MT48LC4M32B2B5-6A by MICRON). This IC is now obsolete and I would prefer not to use it. Can someone please help me with the below 2 queries?1) Is the setup such that the use of the external DRAM Module automatic? As in, if you declare an Array (i.e. int Array[300] ) will the FMC automatically use the external DRAM if it needs to? Or can you only read/write to the external DRAM Module using functions HAL_SDRAM_Read() / HAL_SDRAM_Write()?2) How do I turn off the use of the external DRAM Module as I don�t wish to use this later on my custom PCB? The problem that I am finding is that if you simply comment out the 'BSP_SDRAM_Init();' LCD screen fails to load and a black clear is displayed. This is strange as I cannot find any of
Posted on October 16, 2017 at 10:52Hi Community,i have problem with my dual regular simultaneous adc when i use ltdc.if i disable sdram, the adc ( dual regular simulataneous with dma ) works properly but the ltdc fails.
Posted on October 18, 2017 at 16:05Hi friends.I created program communicate with LCD HD44780. With HAL all it works fine.Here is program with HAL in HAL_LCD.cAnd I tried rewrite program to LL. And this program don�t work.Here is program with LL in LL_LCD.cThis programs are only library. When you can use it, you must write: lcd_init();lcd_gotoxy(0,0);lcd_puts('Pilnik');Any idea, what is wrong? Thank you #hd44780 #lcd #stm32f4-hd44780 #stm32f429
Posted on October 17, 2017 at 15:58According to http://www.st.com/content/ccc/resource/technical/document/application_note/group0/1d/b8/33/4f/dc/0a/45/52/DM00287601/files/DM00287601.pdf/jcr:content/translations/en.DM00287601.pdf, STM32F4 includes DSI interface with up to 2 lanes. See page 15.I am wondering if there is any MCU with 3 data lanes (L0, L1, L2) and CLK lane?#stm32f4 #dsi
Posted on October 13, 2017 at 09:20Hello,According to the documentation, STemWin includes support for PNG. However, it is not compiled into the libraries. Is this a known issue? Are there any plans to support PNG in the future?We're running on STM32F7, using the libraries from Cube firmware 1.8.0.Regards,Peter Olsson#png #stemwin
Posted on October 13, 2017 at 14:54Hi everyone !I am struggling with DMA2D configuration (using HAL library) to display anti-aliased fonts. The fonts I have are A4 coded. Every character has its own array. For example, for the exclamation mark :uint8_t ExclamationMark[57] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xF7, 0x00, 0x05, 0xF7, 0x00, 0x05, 0xF7, 0x00, 0x05, 0xF7, 0x00, 0x05, 0xF7, 0x00, 0x03, 0xE5, 0x00, 0x03, 0xE5, 0x00, 0x02, 0xC3, 0x00, 0x02, 0xC3, 0x00, 0x02, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x05, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};Since it is A4 formatted, every byte in this array allows to draw 2 pixels. Thus, the exclamation mark occupies 6x19 pixels.Here is what I have done so far using the HAL library (simplified) :HAL_StatusTypeDef DrawEM(uint16_t x, uint16_t y){ uint8_
Posted on October 10, 2017 at 19:33I am using an STM32F439BIT processor and developing in Keil uVision 5. My goal is to make a touchscreen GUI for a VGA resolution touchscreen. I have implemented STEmWin to the best of my abilities, using the LIN32 Driver (which should work with my touchscreen). Using the hltdc.Init.Backcolor.Red/Green/Blue elements in LCD_LL_Init() I am able to set a solid color to the screen. When I begin calling STEmWin functions (GUI_Clear(), GUI_DispStringAt(), etc.), nothing is printed to the screen.Has anyone experienced this? Anyone have insight into some common causes for this or what I may have missed?Thanks!#gui #display #touchscreen #stemwin
Posted on August 31, 2017 at 00:41Hello!I was wondering how to load only half of a bmp image from an sd card. I am capable to loading a full image from a header file using the examples provided for the STM32F746G-Discovery. The reason I am asking this is because our hardware is set in a way where the SRAM is not big enough to store the entire bmp file from the sd card. I'm talking about a customized board created here at work. It uses a STM32F746ZG chip. I was able to understand which details had to be changed in the STM32F746G-Discovery files for those examples to work.Also I was wondering if instead of doing this, then is it better to pull the images from flash memory. Is it faster than the method above? Or do they not matter because they are both fast?There is a QSPI chip on the board but I'm a little confused on setting it up on Keil. It is 16MB. The part is :http://www.issi.com/WW/pdf/25LP-WP016D.pdfI have made the connections on CubeMX but I'm unsure what the parameters settings
Posted on October 07, 2017 at 19:46Hey everyone,I've recently started using some STM32 chips in projects, and they're pretty great! So I've been trying to add some better UIs with small TFT screens that use the ILI9341 driver chip.I got a few dozen with 3 of the 'IM' interface select pins broken out, so I'm trying to write a library for the 8-bit parallel interface. I figure, on a Cortex-M4 it's going to be a lot quicker than the SPI which is favored by most of the Arduino/ATMega examples I've found. Thing is, I'm not getting any real 'signs of life' from these screens, and it's turning out to be hard to debug. I've gotten one of these screens working with an Arduino Pro Mini/Adafruit library combination and I made some FPC connector breakout boards to verify that I'm getting the same results with several of them, so I don't think it's an issue of faulty screens.So here's what I'm doing. Like most of the example libraries I see, I'm implementing some basic read/write bus methods,
Posted on July 13, 2017 at 00:26 I'm working with an LCD with an ILI9341 controller, and attempting to use the FMC to control it. I've had the LCD working in SPI mode, so I know that my configuration commands are correct. I've checked the timings between the MCU and the LCD and all appears to be in order. I can even get the LCD to display things correctly *when the FMC output is correct*. That last part is proving to be a problem, though. In certain situations where the program writes to the LCD in rapid succession certain writes either don't happen at all or happen in the wrong order. For example, the below is part of the initialization: ILI9341_writeCommand(ILI9341_CMD_PWRCTLB); //0xCF ILI9341_writeDataU8(0x00); ILI9341_writeDataU8(0xC3); ILI9341_writeDataU8(0x30);�?�?�?�? This should output 0xCF, 0x00, 0xC3, 0x30, but looking at the activity on the bus, I'm only seeing 0xCF, 0xC3, 0x There'es no gap in transmission, it's as if the second write simply doesn't happen! Thi
Posted on September 28, 2017 at 15:11Hi all,I am currently utilizing the STM32F429 in a project. In order to display information, I am using a QVGA (320x240p) TFT display with an ILI9431 display controller.However, I am a little afraid of EMI emissions when it comes down to my display, as the pulses of CLK, HYSNC, VSYNC as the slew rate is very high. Form other controllers I know that some manufacturers offer a parameter called drive strength that allows to reduce the slew rate (thus improving emissions). Does ST feature someting similar? Any ideas how to solve this issue (except for ferrite beads in signal lines?)Thank you,Best regards.#lcd-tft #f429 #stm32-f
Posted on September 21, 2017 at 22:26DAHMEN.IMEN‌Hello, I'm trying to use TFT display with ILI9341 16 bit interface with STM32F427 via FMC. I based my code looking the samples gerates for CubeMX.I am using FreeRTOS and STemWin to print the 'Hello Word' message, but it does not work, in this case I have not found many examples of how to use the FMC.I created the file stm32f427xx_eval.c with the routines that StemWim will use to write to the lcd.typedef struct{ __IO uint16_t REG; /* Read Register */ __IO uint16_t RAM; /* Read RAM */}LCD_CONTROLLER_TypeDef;&sharpdefine FMC_BANK1_SRAM3_BASE ((uint32_t)(0x60000000 | 0x08000000))/* Selecionao banco que sera usado*/&sharpdefine FMC_BANK3 ((LCD_CONTROLLER_TypeDef *) FMC_BANK1_SRAM3_BASE)void BSP_LCD_Init(void){ /* Backlight control signal assertion */ LCD_BACKLIGHT_ON(); /* Apply hardware reset according to procedure indicated in FRD154
Posted on September 18, 2017 at 21:27I have a STM32F413CHU6 processor using FreeRTOS and LibJPEG as configured by STM32CubeMX. LibJPEG is configured to use FreeRTOS memory allocation, and FreeRTOS heap is set at 150,000.I'm trying to read JPEG data from memory. My jpeg data are declared as: const uint8_t mydata[] = { 0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, ... ... ... };I set up the decode session like this:struct jpeg_decompress_struct cinfo;struct jpeg_error_mgr jerr;uint8_t m_rowBuffer[2048];JSAMPROW buffer[2] = {0};uint32_t row_stride = 0;buffer[0] = m_rowBuffer;cinfo.err = jpeg_std_error(&jerr);jpeg_create_decompress(&cinfo);jpeg_mem_src(&cinfo, mydata, 4035);jpeg_read_header(&cinfo, TRUE);EDIT: I solved a data corruption issue that was causing a crash in read_marker(). However, even with good JPEG data, it will wind up crashing into the Hard Fault Handler.Not really sure where to go from here. Has anyone had success with
Posted on September 13, 2017 at 11:17I'm working on a board that is close to the 429 Discovery board, using:- STM32F429 micro- LTDC connection to a custom 3 inch LCD using ili9327 controller, connected via display pixel interface- IS42SI6400J SDRAM used as frame buffer- STemWin library using linear display driverI'm getting some pixel noise on the right side of vertical edges, uniformly across the screen, that is colour dependent.Red and Blue are OK. Green is bad. Shades of white/grey are also bad.Here's a video of it: https://youtu.be/lFuAuqYay6E We've tried 2 different displays and 2 different board layouts. Last layout is a 4 layer board with careful attention to track lengths and routing, as per the ST guidelines. In all cases the same symptoms are present.I've also tried a variety of settings for front/back porch etc, but nothing helps.Does anyone have any suggestions that might help to solve this?Thanks.#lcd #ltdc
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.