Get ready for the STM32 Summit 2026 | Online, November 3
Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
Hi everyone,I'm having trouble bringing up an STM32MP257F-DK Discovery kit (board reference MB1605C). ST-LINK itself works correctly, but I cannot get any communication with the main STM32MP257 processor, and the board never boots. I'd appreciate any insight into what else to check before assuming a hardware fault.Board / setup:STM32MP257F-DK, main board MB1605, revision C-01 Powered via USB-C into CN21 (USB PWR/STLINK) Using the original microSD card that shipped with the kit (preloaded OpenSTLinux demo image) Boot switches set to: BOOT0 = ON, BOOT1 = OFF, BOOT2 = OFF, BOOT3 = OFF (microSD boot)What works:LD11 / power LEDs indicate the board is powered Windows enumerates two "STMicroelectronics STLink Virtual COM Port" devices (COM8, COM9) without issues STM32CubeProgrammer detects the ST-LINK probe: Serial number, FW version V3J15M6B5S1, Board correctly identified as "STM32MP257F-DK", Target voltage reads consistently 3.28-3.29VWhat doesn't work:Connecting via SWD always fails with "
0x0BF97000 (system bootloader base per AN2606): the jump appears to succeed (In Debug reaches the bootloader region), but execution then breaks at an address inside the bootloader ROM with no further progress and no USB enumeration. The hardware boot path works correctly. The problem is purely on the software-jump path.I created an empty project in sample you can download and test it. I also attached my option bytes (i think everything is default).MCU: STM32H573 (also tested h523)/** ****************************************************************************** * @file dfu_jump.c * @author Uğur Tümer * @brief See dfu_jump.h. Implements the magic-word + soft-reset path into * the STM32H523 system bootloader (USB DFU on PA11/PA12). ****************************************************************************** */ #include "dfu_jump.h" /** Magic word stored in TAMP_BKP0R between the request and the next boot. */ #define DFU_JUMP_MAGIC 0xDEADB007UL #define BOOT
Hi there,I am frustrated while searching the web for an normally easy task - 😒I am not able to detect, where Boot0 pin is on STLink-v3MODS module Rev.B.Does anyone know?I also asked ChatGPT and Google, but this only results in false answers - bricking the device.Please hlep - Thanks a lot.STLink-v3MODS Rev.B - front STLink-v3MODS Rev.B - backST32CubeProgrammer v.2.2.3.0
One Quick Observation , V2.23 takes so much time as compare to V2.22 ( windows 64 ) , for Reconnecting MCU & Throwing Error after setting RDP2. approx 45 seconds by V2.23. while 5 seconds for V2.22 version.
Dear STM32 Community,I am using the STM32H745ZIT3 microcontroller with STM32CubeIDE for firmware development.I am facing an issue related to GPIO behavior during a watchdog reset.When a warm reset is triggered by either the Independent Watchdog (IWDG) or the Window Watchdog (WWDG), all GPIOs are reset to their default state. In my application, I need certain GPIO outputs (such as relay control signals) to retain their previous state during a watchdog reset, or at least avoid changing state until the application reinitializes them.Could you please clarify the following?Is it possible to prevent GPIOs from resetting during an IWDG or WWDG reset on the STM32H745ZIT3? Are there any software techniques to retain the GPIO output state across a watchdog reset? If GPIO retention is not supported, what is the recommended approach to prevent unwanted output glitches during a watchdog reset?Any guidance, application notes, or recommended design practices would be greatly appreciated.Thank you for
Post edited by ST moderator for the code. Hi,I have a pre-production batch of about 80 STM32L051 custom boards.Under certain circumstances, the microcontroller goes into sleep mode and waits for an IRQ to restart.Of these 80 boards, about 10 randomly, after going into sleep mode, don't restart (until a reset).This is the code I use:__HAL_GPIO_EXTI_CLEAR_IT( VIB_SENS_MAIN_Pin);__HAL_GPIO_EXTI_CLEAR_IT( VIB_SENS_BACKUP_Pin);NVIC_EnableIRQ( EXTI4_15_IRQn);HAL_COMP_Stop_IT( &hcomp1);HAL_COMP_Stop_IT( &hcomp2);__disable_irq();__HAL_PWR_CLEAR_FLAG( PWR_FLAG_WU);__HAL_GPIO_EXTI_CLEAR_IT( VIB_SENS_MAIN_Pin);__HAL_GPIO_EXTI_CLEAR_IT( VIB_SENS_BACKUP_Pin);__HAL_COMP_COMP1_EXTI_CLEAR_FLAG();__HAL_COMP_COMP2_EXTI_CLEAR_FLAG();delay_us( 5);HAL_SuspendTick();HAL_PWR_EnterSTOPMode( PWR_LOWPOWERREGULATOR_ON, PWR_SLEEPENTRY_WFI);HAL_NVIC_SystemReset();What did I do wrong?Thanks for the suggestion.
Hello everyone,I designed a board using the STM32MP157 and STPMIC1A. During the initial power-on tests, I noticed that there was no output from the VDD BUCK.The board was tested without any operating system or boot process. Is this normal? This is the first board I’ve designed with the STM32MP1, and if this is normal, I can proceed with porting the OS however, if it’s abnormal, I’ll need to investigate the source of the problem. The board was also successfully detected by the PC in USB boot mode. Regards
Hi,We designed a 24V to 5V DC-DC power supply using the LD1086DT50TR. However, we are experiencing an overheating issue. Our application load current is only 0.2–0.3 A, but the regulator temperature rises significantly. Could you please suggest a solution to resolve this overheating issue?
Hi all, Regarding EVKIOTST87M01-2. In the design guide is mentioned the High Speed Interface (HST), in the same guide specifies that this interface requires an external Hardware TPA device, named Dongle HST Logger to recover the data flow for ST Analysis. The questions are:Do you sale this Dongle HST Logger? Is the ST-Link compatible?or is the the data available through the STSW-ST87M GUI?Thanks in advance. Susana
Hi, I am evaluating VL53L8CX and couldn’t find anything in the data sheet about a programmable FOV. I require a FOV of 2-3degrees. Does this sensor support a programmable FOV to that size?Thanks,BH
Hi,I am using the NBP8FD4ST1 pressure sensor with the S32K146 microcontroller. The CS_B/WAKE-UP pin of the sensor is connected to a GPIO pin on the microcontroller.The logic analyzer signal mapping is as follows:D0 → SCLK D1 → CS_B D3 → READY D5 → MISO D7 → MOSIDuring the communication sequence, when I pull the CS_B pin low to request SPI communication, the READY pin is asserted as expected. After READY goes high, I send the SPIOPS register read command (0x00E1). However, the sensor always returns 0x0000 on MISO. As a result, the firmware validation fails, and the CS_B pin is subsequently driven high to terminate the transaction.Could you please help me understand whether my SPI communication sequence is correct or if I am missing any required step, such as the wake-up sequence, dummy transfer, or SPIOPS handling described in the datasheet?I have also attached the logic analyzer screenshots for reference.Thank you in advance for your support.Best regards,Pratyusha.
Hi everyone,I'm working on an STM32 (Nucleo-F446RE to be spesific) project using the STM32Cube extension for VS Code, not CubeIDE. I'm using CMake for building the project.I encountered a few issues:printf doesn't print anything to the serial monitor, so I switched to using HAL_UART_Transmit.When I try to print a float using sprintf(msg, "value: %f\n", var);, it doesn’t work. The output just skips the float value (e.g., "value: \n").After some research, I found out I need to add "-u _printf_float" to the linker flags to enable float formatting support with printf and sprintf.However, I'm new to CMake and I couldn’t figure out which CMake file I need to modify in the project folder to add this flag.I'd really appreciate it if someone could guide me:Where exactly should I add the "-u _printf_float" flag?Is there anything else I should do to make printf work properly over UART?Thanks in advance for your help.
Hello,I have programmed the OTP word 31 to 0xBBBBBBBB as follows, but when I want to write another value such as 0x12345678 or 0x00000000 to word 31, it reported the following errors, can you help to analyze this ? Thanks a lot!
Hello!I have been trying to review and fix the configuration of my Ethernet LwIP+FreeRTOS STM32 project and I would like to ask more experienced people if I have correctly chosen memory locations, modified the linker script, configured MPU and a few other things. My project uses STM32F746VGT6 MCU that has 320KB of RAM and 1024KB of flash memory:MEMORY{ RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 320K FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 1024K} Since this project uses Ethernet peripheral and LwIP library, a few memory sectors need to be defined: one for Tx Descriptor, one for Rx Descriptor, one for RX POOL and one for LwIP heap.I have set Tx and RX Descriptor addresses to 0x20048000 and 0x20048100 and checked in debugger that each one of them takes 160B of space, so 256B is more than enough to store a single Descriptor.I decided to store memp_memory_RX_POOL_base under 0x20040000 address in 32KB section. With ETH_RX_BUFFER_CNT defined to 16U, size of memp_memory_RX_P
My STM32F429 LWIP project stops all network comms after running for a few hours. I am hoping that this is a known bug with a known fix. But I would appreciate any insight that anyone can provide.I have a CubeMX generated project using LWIP and FreeRTOS running on an STM32F429. I have an ethernet interface using a LAN8742A.After running for a few hours my project stops communicating and does not recover. I think I have ruled out any kind of memory or buffer exhaustion. I suspect a race condition of some sort.Every time the comms stop, all of the RX descriptors are owned by the CPU and the ethernet RX descriptors are stuck in this same pattern.The numbers change but RxDescIdx is always (RxBuildDescIdx + 1). And the counts are always = 1. heth->RxDescList->ItMode = 1 RxDescIdx = 27 RxDescCnt = 1 RxDataLength = 118 RxBuildDescIdx = 26 RxBuildDescCnt = 1 pRxLastRxDesc = 7734049 FreeRTOS is still running the idle
Hi All,I am using STM32U375RETx on in my project on a custom board. I am using 8 channels on ADC1 and 3 on ADC2. I want to scan all the channels using DMA. I have configured the ADCs in scan conversion mode using dma and have also configured the gpdma channels to connect with the ADCs.My issue is that I am unable to trigger a scan using software trigger. I am able to trigger a scan only once and then if I scan again, the adc callback is triggered. I verified my adc and gpdma logic by switching from software triggered dma scan to timer event triggered dma scan. This worked and the timer was able to always trigger the adc and update the callback to process the adc data. Could anyone please share what would be an example code for U3 to use software triggered adc dma. The github examples show only for timer trigger and not software trigger[link].Below is a cleaned up version of my main.c I appreciate any suggestions!Thanks!/* USER CODE BEGIN Header *//** ***********************************
9 axis gyroscope mems sensor available?
Hi ST,We have developed a custom board based on the STM32MP257F-DK design, with the primary difference being the use of the STM32MP255DAK3 processor in place of the STM32MP257F. All other components and configurations—such as RAM, eMMC, and SD card interface—remain the same as the original DK board.We generated the device tree source (DTS) using STM32CubeMX; however, we are currently unable to boot the board successfully. Initially, we encountered an error related to the RISAF component, which we managed to resolve. Unfortunately, we are now facing a new issue resulting in a Panic in EL3 error.Despite our efforts, we have not been able to determine the exact root cause of the problem. Given that only the processor has changed and all other hardware remains identical, we would appreciate any guidance or suggestions you could provide to help us resolve this issue and complete the bring-up process.NOTE: the 1st error ################################################NOTICE: CPU: STM32
Hello,I am experiencing what appears to be a BootROM or silicon issue on the STM32N657-DK.HardwareSTM32N657-DK Discovery board Boot from the on-board XSPI Flash External APSRAM connected to XSPI1Problem descriptionThe system works perfectly after a power-on reset.The FSBL starts correctly, the application runs, XSPI1 is initialized, and the APSRAM is fully functional. There are no communication errors with the memory.However, after XSPI1 has been initialized once, any subsequent reset causes the board to become completely unresponsive.The problem occurs with:pressing the NRST button, calling NVIC_SystemReset(), or resetting through the debugger.After such a reset:the CPU never reaches the FSBL, the debugger cannot stop in the reset handler, it appears that the BootROM itself never starts the boot process.The only way to recover the board is to completely remove the power supply and power it up again. A simple reset is never sufficient.Additional observationsIf XSPI1 is never initialize
Hi,I am developing an object detection system using the sensor, integrated inside the inner wall of a toilet bowl to detect falling waste. I am experiencing persistent "Low Confidence" issues, and I am looking for expert advice on whether this is an inherent physical limitation or a configuration issue.Current Setup & Environment: Environment: Actual toilet bowl (highly reflective curved ceramic surfaces). Hardware Integration: The sensor is mounted behind a cover glass, and an active NIR/Visible fill light is installed inside the bowl to assist a separate camera system. Configuration: VL53L7CX_RANGING_MODE_AUTONOMOUS @ 60Hz. The Phenomenon: Static/Idle State: Even in this real-world environment (with cover glass and fill light), the sensor produces some "Low Confidence" data points even when nothing is happening. Dynamic Event (Object Drop): When an object is dropped, the frequency of "Low Confidence" reports increases significantly, often rendering the detection logic unrel
I have a VL53L4CD that I’m trying to use as a binary signal for detecting whether or not an object is within a specified range. In the default case with no detection thresholds set, GPIO1 is driven low when data is ready as expected, and I can continuously receive data from the sensor by reading when GPIO1 is low and then clearing the interrupt. I set the timing budget to 20 ms, and the intermeasurement time to 50 ms, as was done in the ULD example code (VL53L4CD_ULD_V2.2.3/Examples/Example_6_detection_thresholds.c) . As soon as I add the same call that the example code makes: VL53L4CD_SetDetectionThresholds((Dev_t)dev_add, 100, 300, 3); At the end of my initialization sequence, GPIO1 no longer pulls down, nor does VL53L4CD_CheckForDataReady(TOF, &ready) signal ready. This is expected behavior outside of 100-300 mm, but I can force read the device regardless of ready status and see measurements within this window that are constantly updating. Is there another step in this process
Hello,I have a couple of devices using LPS28DFW pressure sensors.The sensors are configured as follows:INTERRUPT_CFG = 0x00, THS_P_L = 0x00, THS_P_H = 0x00, IF_CTRL = 0x00, CTRL_REG1 = 0x3C, CTRL_REG2 = 0x00, CTRL_REG3 = 0x01, CTRL_REG4 = 0x02, FIFO_CTRL = 0x02, FIFO_WTM = 0x64,All other registers are left at their default values.Usually they work fine, filling the FIFO with new data and generating an interrupt every second. However, I occasionally encounter an issue where the sensors appear to stop filling the FIFO for a period of time. The duration of this stall is not consistent, it can range from a few seconds to a permanent lock-up. During this locked state, I can still successfully read the temperature, and reading back the configuration registers confirms they are set as expected. After a power cycle and reconfiguration, everything returns to working correctly.Have you ever experienced this issue? Do you have any idea what might be causing it?
Hi all, Experiencing yet another hurdle using the STM32N6: I am running into the issue where if I run the VENC as the JPEG encoder, where I previously found out how to properly run it in the first place, I get issues in the I2C slave communication…! Okay, what do I mean…i2c is configured as a slave. I receive/send all data via. DMA First stop for both directions of communication is the `HAL_I2C_AddrCallback` Maximum burst length of any i2c communication on my bus is 256 bytes The above mentioned limitation works very good and without issues, if I do not have the VENC running Problems arise, when I turn on the VENC, encoding each 2nd frame on PIPE1 that comes in through the DCMIPP. It is configured to convert one frame of ARGB24 into a JPEG. I used the middlewares from https://github.com/STMicroelectronics/STM32CubeN6/ and snippets from the VENC_JPEG_Encoding example (commit 8ab3b641, which is the latest as of writing). A list of some problems that I encounter, observed in parallel with
Hello, I am currently using SAI1A as Master and SAI2B as synchronous slave on the Nucleo F756ZG to send data to 2 DACs.One DAC is connected to SAI1A pins and the other is connected to SAI2B pins. The issue : SAI1A needs to be configured as master and SAI2B as its slave to be synchronized so the data are sent at the exact same moment to both DACs The second DAC is routed to the SAI2B SD, SCK, FS and MCLK pins but these are not used because the SAI2B is slave In this configuration, DAC 2 does not receive any signal from SAI2B SCK, FS and MCLK pins If both SAIs are configured as masters, there is a 20 microsecond latency between the data frames because the SAIs are not synchronized so there is a delay because of calling twice HAL_SAI_Trasmit_DMA function. I cannot afford this delay in my use case. Is there a way to clone or duplicate the SAI1A clock outputs to SAI2B pins so DAC 2 receives the clock signals as well, without modifying the routing ? Or reduce the delay to some nanoseconds wi
IF it’s failed to connect, and given an error code of -1, how can that be “No error” ?! Also the suggestion “Please check power and cabling to target” is useless here - it’s not a target connection issue! The focus of this thread is the silliness/unhelpfulness of the messages.Not looking for solutions to the underlying issue here.For that, see:
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.