Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I am developing a Touch GUI for STM32U5G9J-DK1 using Touch GFX [ 4.25.0]+STM32CubeIDE [1.19.0]. The Display is working correctly, but touch input is not gettingdetected. Following information will be helpful: 1. If any specific power/reset/initialization sequence is needed for the touchcontroller?2.Any reference project with verified touch support for STM32U5G9J-DK1?
Edited by a ST moderator: Please kindly don't use capital letter as it gives the impression of "shouting" Hi Team, I am using stm32h743 to interface lan9353 (3 port ic). for the first step if i connect one end of the ethernet cable to board and another end is connected to pc. the led is not blinking on both sides. if i check the command prompt the ethernet is not connected only. why is there any process for this please send me.
HiI currently use a timer in interrupt mode that triggers every 50 µs and executes my function inside HAL_TIM_PeriodElapsedCallback. I also have another timer running every 1 second. To reduce CPU load, I want to replace the 50 µs interrupt-based timer with a DMA-based implementation. My goal is for the DMA-driven timer to invoke HAL_DMA_XferCpltCallback every 50 µs. Is this approach possible, and if so, how can I implement it? If there is any other approach to implement the timer to trigger every 50us using DMA please let me know.NOTE: I am implementing using STM32CubeIDE on STM32F439ZIT6 Nucleo Board.Thanks and Regards@avbST
Hello,We are facing COO issues with almost all STM32G4 and H5 MCUs. The website/invoice says COO is non china and when we actually get the products, the chip marking is CHN. When enquired, STMicro team bluntly emails saying CHN is not China. After 20 days of follow-up, they gave clarification saying the changes they are making to COO based on processes. We placed one more order after that assuming the clarification given. Now invoices have completely different COO compared to website COO mentioned. Our customs has raised a query regarding wrong declaration. How to solve this issue? Thank you!
Hello,I'm experimenting with the STM32N6570-DK, using the STM32N657X0H3Q MCU.The problem is that the framebuffer contents aren't being displayed by the LTDC.Not when the framebuffer is alocated into internal SRAM, and not when it's in external RAM.First I tried it in the Appl, but now I'm trying it in the FSBL.I've performed a RIF configuration to enable access to the LTDC, but that doesn't help.static void SystemIsolation_Config(void) { __HAL_RCC_RIFSC_CLK_ENABLE(); RIMC_MasterConfig_t RIMC_master = {0}; RIMC_master.MasterCID = RIF_CID_1; RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV; uint32_t SecPriv = GPIO_PIN_SEC | GPIO_PIN_NPRIV; /*RIMC configuration*/ HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC1, &RIMC_master); HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC2, &RIMC_master); /*RISUP configuration*/ HAL_RIF_RISC_SetSlaveSecureAttributes(RIF_RISC_PERIPH_INDEX_LTDC, RIMC_master.SecPriv); HAL_RIF_RISC_SetSlaveSecureAt
when I click and open the touchGFX, it can't access into main menu and list following message. how to fix it ? pls help .
Hi!Trying to get a TouchGFX working with Trustzone has shown itself to be quite the hassle. Although I have worked through a lot of issues already, my latest one has deemed real stubborn.When enabling GPU2D in a trustzone enabled project, the code throws a securefault when trying to use LCDGPU2D::fillbuffer(). My BBMPC is set correctly as the LTDC is able to create and change the framebuffer without issues. Due to the precompiled nature of the GPU2D library i am unable to figure out what buffer GPU2D is trying to access which is throwing this error.I'm running the STM32u5G7 on a custom board. Everything works in a non-trustzone project.My non-secure project has a flash offset of 0x20000 (starts at 0x08020000) and a RAM offset of 0x40000 (starts at 0x20040000). Everything before that is part of the secure code. Maybe GPU2D is trying to access a default address somewhere? Aside from this I've found other issues in my path to this point so far:TouchGFX Designer post generate target c
Hello,I’m working with the STM32H745I-DISCO board and I’d like to use the Cortex-M7 core for GUI (TouchGFX/LVGL) and the Cortex-M4 core for backend tasks like sensor data handling, communication protocols (CAN, UART, I2C), and preprocessing.I’m looking for guidance and resources on:Recommended project structure in STM32CubeIDE / CubeMX for dual-core applications.How to set up inter-core communication (M7 ↔ M4) (OpenAMP, shared memory, or mailboxes).Examples or reference projects where M7 is dedicated to GUI and M4 to background tasks.Any best practices for memory allocation (framebuffer vs shared RAM) and FreeRTOS usage across cores.If anyone has worked on a similar setup or can point me to example projects, tutorials, or documentation, that would be really helpful.Thank you!
I am having a hard time figuring out working with the STM32-E407 which is built on STM32F407ZGT6 MCU. I also brought an ARM-USB-TINY-H as it was recommended in its documentation. How and where do I start ? Say I want to interface this board with a radar sensor.
Hi friends ,I need to make a TCP Server client in my STM32F769NIH6 board using LWIP. I referred many documents but so far it have led me to nowhere. Does any of you knowhow to do it, in that case tell me the steps.
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hello, i have a Project, where i have an FPGA connected to a STM32H723 via PSSI. The FPGA sends out 16 Bit of Dummy Data over 8 Data Lines Every 1 ms. In the STM i can receive the Data without using DMA like this: "HAL_PSSI_Receive(&hpssi,&received_pssi, 1, 5000)" Now i enabled DMA in CubeMX (DMA1 Stream 0). Inside the main.c Cube created " MX_DMA_Init();" for me. I added: HAL_PSSI_ENABLE(&hpssi); if (HAL_PSSI_Receive_DMA(&hpssi, (uint32_t*)rxBuffer, BUFFER_SIZE) != HAL_OK) { Error_Handler(); } HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn); And this does not end up in the Error Handler. As Soon as the main while loop is executed, i end up in the "HAL_PSSI_ErrorCallback" with the Error ID "0" (which corresponds to "HAL_PSSI_ERROR_NONE", so an Err
I am looking for a way to obtain the PHY timestamp of when Ethernet packets are received. I am using the board NUCLEO-F767ZI, which should support hardware timestamping. I can barely find documentation about this online, but some investigation led me to the function HAL_ETH_ReadData, which contains the following lines: /* Get timestamp high */ heth->RxDescList.TimeStamp.TimeStampHigh = dmarxdesc->DESC7; /* Get timestamp low */ heth->RxDescList.TimeStamp.TimeStampLow = dmarxdesc->DESC6; I can see that this code is executed. When I print the values of dmarxdesc->DESC7 and dmarxdesc->DESC6, I always get the value 0. I am wondering if this is some sort of configuration issue, or if I am missing something. I'm not sure how important this is, but I'm using LwIP to handle my networking stack, which seems to work correctly on a higher-level (i.e. I can receive and send packets as expected). Any hint as to what might be happening would be appreciat
Hi,I want to use STM32G431CB or STM32F411CEU6 to measure the time precisely.I need to know the external interrupt response time of GPIO,but I can not find it in datasheet and manual.can you tell me what is the value if the CPU frequency is 100MHz ?
Hi,I am using an STM32U545 on which I expect to use ADC4_IN1 and ADC4_IN18 in stop mode 2 (using LPBAM).I want to create two buffer (buff1 and buff2 uint16_t[32]) dedicated to each input.I want to read 32 samples from input1 then 32 samples from input2 and restart infintely.I don't find the correct way to configure LPBAM.In first try, I use an LPTIM1 as trigger I do :(sorry my project I can't get image of LPBAM configuration)1) ADC conversion (channel 1) => ADC Conversion (channel 20) and loop on first conf bloc and use LPTIM1 trigger for both => In this case each buffer contain values from correct input but i run only once2) If I do the same but loop on first data bloc => only last channel ise infinitrly sampled on both bufferCan someone help me to configure it correctly?ThanksHave a good day. Aurélien
uC – STM32U5G9NJH6Q Display – 720 × 720 (ST7703 panel) Display controller – ST7703 MIPI lanes – 2 lanes DSI Host Mode – Video Mode (DSI_VID_MODE_BURST) Pixel format – RGB888 Problem / Symptoms After the initial display setup (LP mode initialization sequence), the backlight turns ON, but no image is displayed on the LCD. I have verified that the MIPI DSI clock and data line waveforms are present and active on the scope — both lanes appear to be toggling correctly. Despite proper DSI signal activity, the panel remains blank (black screen), and there is no visible frame output from TouchGFX. What I have verified/working I can communicate with the display over DSI and run the initialization sequence (LP command mode) — panel responds, backlight comes on. LTDC timings & basic parameters match the panel spec and st7703.c values (see below). PHY frequency configured around panel-recommended range (450–510 MHz / VCO ~800 MHz–1 GHz). TouchGFX / display d
Hi all,I am having issues with Clock setup for Stm32h755. Especially regarding the M4 core. Currently, I only run the M4 core. The M7 core has no valid firmware. Is that even a supported mode?I try to setup a rather basic clock setup but the setup keeps failing at the call: HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4), which will return an not ok return value.I also tried using HSI and other different setups. But it seems the keep failing in the same way. Interestingly... When I simply ignore the error. Then most stuff seems to work just fine. I got ADC, SPI, Timers working. However, I am not sure where the issue is with the clock configuration.The entire clock setup: static void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; __HAL_RCC_SYSCFG_CLK_ENABLE(); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_Os
BackgroundWe have a battery-powered device using:MCU: STM32 (STM32L4series)Modem: Quectel BG95 (cellular)Communication: UART with Idle Line Interrupt (HAL_UARTEx_ReceiveToIdle_IT)Power mode: Device goes to sleep periodically, wakes up to communicate with modemArchitecture PatternOur communication pattern:Device wakes from low-power modeCall low-level AT command function that:Enables UART RX Interrupt with Idle Line detection (HAL_UARTEx_ReceiveToIdle_IT)Sends AT commandWaits for response with timeoutDisables interrupt (HAL_UART_Abort_IT)Process responseGo back to sleepThis means we re-enable/disable UART Idle Line interrupt on every transaction (potentially hundreds of times per day).UART + Ring Buffer Setup:#define RING_BUFFER_SIZE 2048 #define ISR_BUFFER_SIZE 1024 typedef struct { lwrb_t rb; // lwrb ring buffer volatile bool rx_data_ready_flag; // Flag set by ISR uint8_t rb_buffer[RING_BUFFER_SIZE]; // Ring buffer storage uint8_t isr_buffer[ISR_BUFFER_SIZE]; // Intermediate buff
Hi ST community,I am facing an issue of 10us delay between CS line going low and SPI SCK start, when I am doing SPI communication with a slave device, which supports upto 15MHz SPI communication.Below is the main.c file snippet for your reference. Please help in fixing the issue. I have also attached complete code file as well as the CRO capture of SPI comm for your ref. Thanks in advance!/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ***************************************************************************
Hi everyoneWe have designed a custom board around the STM32L081CZ and produced 3 prototypes. On the first board I started testing and debugging using STM32CubeIDE on Windows. This worked fine but only with ST-Link, not with J-Link.After testing (and fixing) our hardware, we wanted to program our boards on Debian using Zephyr. I gave a second board (with identical hardware fixes) to my colleague and he was able to program it with a J-Link using West without any problems. My initial board however, that I can still program using ST-Link however does not work using the J-Link (tried West, J-Flash and STM32CubeProgrammer). We since tested the third board and it also works fine with the J-Link.I used ST-Link with STM32CubeProgrammer to connect to all three boards and verified that they are all in the same state (Option Bytes and Registers). I have added a screenshot where I connect first to the device that only connects to ST-Link (Time: 16:33) and then to the one that connects to both (Time
Above is the configuration of my Timer. - To generate pulse, first I used HAL_TIM_OnePulse_Start but with that pulse was not generate.- So I did this: while(1) { HAL_TIM_PWM_Stop(&htim17, TIM_CHANNEL_1); __HAL_TIM_SET_COUNTER(&htim17, 0); HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1); HAL_Delay(100); }- Pulse is generated but also getting a glitch pulse before the actual pulse.This is happening due to stopping and immediately starting PWM pulse. The transition is causing this glitch.
I'm currently learning embedded systems and using NUCLEO-F411RE to start off. I tried using micro-usb b to c for my macbook and it looks like the micro-usb b would not fit on the board. It says micro usb b on the nucleo form but it looks like it's wrong. Can anyone help me please?
Hi All, Hoping someone can clarify my confusion on the clock input for the TIM1 counter...background:I am testing Tim1 output compare by toggling PA8 on the micro... - the timer settings areperiod = 1600, no clock divisor or prescaler and my clock config is belowOn the scope I see PA8 toggling with a period of 25us which seems kind a strange... So even if I assume a counter clock of 150Mhz (APB1, APB2 peripheral clocks) and the formula of clock/2*(period+1) as the frequency I should see it toggle at 21.34 us? Why this discrepancy?? Thanks!
Good evening, I need freeRTOS tick speed to be greater than 1kHz, I tried to change the configTICK_RATE_HZ parameter but get a divby0 error which I can't fix. Is there a way garanteed way to achieve what im looking for? Thx in advance
Hello, is there any possibility to get the pin configuration table for the STM32U535VE in CSV or Excel format?Thanks a lot !Ricos
Regarding the pad size for the Bluetooth module “STM32WBA5MMGH6TR,” there are discrepancies between the datasheet and the CAD data listed on the website, resulting in instability. We would like detailed data confirming the actual dimensional values and request that you send us the relevant documentation.
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.