Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello Everybody,Here are the software and boards in this case:1. MC workbench 6.3.22. NUCLEO-F401RE3. X-NUCLEO-IHM08M1I try to use the boards to obtain motor parameters. While other parameters were acquired normally, I encountered an issue with the Hall sensor parameters. When connected to two different motors, both returned errors indicating that H1 and H2 were not connected (as illustrated in the picture). However, the motor-board wiring is confirmed correct, and during motor rotation, normal voltage signals are present at the H1 and H2 pins of the motors. What could be causing this error in the Motor Profiler? Thank you.
Hello everyone, I need to install the firmware support package for STM32H7 series offline. On the website (STM32CubeH7 | Product - STMicroelectronics), I found both the "STM32Cube MCU Package for STM32H7 series" and the "Patch for STM32CubeH7". What is the difference between them ?
On my current board the STM32G030 is getting very hot. I have even tried a board with no connections to the processor and all pins set to analog. I have checked the power supply and it's 3.3V. The board runs OK but I am worried about the processor temp. I have attached a schematic of the board. Could something internally be configured to cause this heating?
Hi all, I’m working on enabling USB High‑Speed (HS) communication on an STM32F446RE using an external USB3300 ULPI PHY, but I’m running into several issues and can’t get ULPI communication working. Current Issues: DIR pin stays high – it appears the STM32 never gains control of the bus. The ULPI clock runs at 60 MHz (derived from the USB3300’s 24 MHz oscillator), and while enumeration occurs, the USB middleware fails to initialize correctly, resulting in the device being detected as an “Unknown Device.” To enable PLLQ, I tried enabling the USB FS peripheral and then disabling it to avoid pin conflicts with the HS lines, but it didn’t help. Toggling the USB3300 reset pin had no effect. Configuration Details: Initial setup done via CubeMX. USB_OTG_HS configured for ULPI interface. RCC and PLL settings look correct, but PLLQ doesn’t remain enabled. Tried USB Device middleware with CDC class, but initialization fails. Request for Help: Does a constantly high DIR pin mean the PHY is stuck o
Good morning, I have been trying to integrate FUOTA for a few days in my Nuclo STM32 WL55JC1 project. Starting from the provided example STM32CubeWL_FW_1.3.1 from MXCube, if I try to build in CubeIDE I get the following error: make[1]: *** No rule to make target ‘C:/Users/Asepa/02 STM/ReD/LoRaWAN_FUOTA/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c’, needed by ‘Middlewares/SubGHz_Phy/radio.o’. Stop. make: *** [makefile:70: all] Error 2 Also, on previous posts I read that you would need to build the BFU, the KMS_Blob, the SECoreBin. I found in previous versions some files but even there I could not build. I would be very interested since I am going into production in the FUOTA speech but I can't integrate it, is there a guide done properly on how to do it? In my project I started with LoRaWan_EndNode_FreeRTOS. Alternatively, is there an external device that I can easily connect to effuat the upgrade? Thank you to those who will answer me. Rober
Hi, I'm facing issues while trying to interface a 32GB SD card with the STM32H753ZIT6 development board using SDMMC1 and FatFS. Below are the key problems observed:SD Initialization Fails:HAL_SD_Init() consistently returns HAL_ERROR (Status: 1).Card Not Ready:The card state remains 0, indicating that it is not ready or not properly initialized.Incorrect Card Capacity Reported:Despite using a 32GB SD card, the detected capacity is only about 1.8GB (1806848 KB).This suggests the card isn't being properly initialized or detected, and capacity detection is failing. Looking for help identifying the root cause—whether it's clock config, pin setup, timing issues, or something else.I have attached the code and output file.Pin connection between SD card to STM32:-------------------------------------------------------------DAT0 -> PC8DAT1 -> PC9DAT2 -> PC10DAT2 -> PC11CLK &n
We are working with the STM32 Nucleo-G474RE board and using two quadrature encoders—NEMA 23 and NEMA 34—connected through AM26LS32 line receivers to TIM2 and TIM3 respectively, configured in encoder mode. In our project, we initialized TIM2 and TIM3 with `CounterMode_UP`, no prescaler, and appropriate encoder mode settings. We initially tested with pull-down resistors and counter mode set to down, but encountered erratic behavior: encoder counts would overshoot, then suddenly reset to 0 or toggle between 0 and 1. We then tried changing the GPIO configuration to pull-up with counter mode set to up, but received no response from the encoders. Despite using `HAL_TIM_Encoder_Start()` and observing the encoder signals on an oscilloscope (which looked clean), the counter readings remained unstable or stuck. We are using the ITM SWV output to log values via printf. We would appreciate any insights or suggestions from the STM32 community on solving this encoder reading issue, especially in ter
I'm developing a project using an STM32 Nucleo board. At the core of this project is a UART-based communication protocol running in interrupt (IT) mode — not polling or DMA. This protocol is responsible for controlling multiple subsystems such as a relay module and a fan speed controller.However, most of these subsystem modules were previously written in polling mode.My question is:Can I integrate these polling-based modules into my current UART IT-mode communication system without causing issues? Or should I consider converting them to interrupt or DMA mode to prevent CPU blocking or communication delays?Additionally:What should I watch out for to ensure the CPU doesn't get blocked and UART interrupts don't get delayed in this mixed-mode setup?Extra context:There are 20 NTC temperature sensors in the system, and temperature from all of them is read once every second using ADC. The highest temperature value is selected and stored in a variable. Based on this value, the fan speed is adj
Hello Everybody, I use STM32CubeIDE1.15.0 Build: 20695_20240315_1429 and a custom board with a STM32303RE inside.I use the IOC interface to set the virtual port com. Everything work fine, just a detail: when i connect, then disconnect and reconnect the USB port, the port com number on Windows change, It increase (search the next available number)! The VID and PID are always the same, so I focus on the serial number, and i found that (code generate by STM32CubeIde): usbd_desc.c: 3 undefined local variables, which are used to generate the serial number. Each time I connect the USB cable, the values change=>so the serial number change. Is it normal? Is it a (strange) way to generate a randomize serial number?Just a bug? (VCP number seems better with this fix: ;)) BR,Guillaume Le Gal
HELLOI'M USING STM32F429I-DISC1 BOARD WITH TOUCH GFX.WHEN I USE PA5 PIN FOR DAC_OUT_2, LCD DID'NT WORK.EVEN I CHANGED PA5 PIN FOR ANYTHING LCD WORK. HOW TO USE DAC_OUT_2 WITH LCD??
Hi team, I am working on stm32F7 discovery board, I am working on USB MSC Device however i am not getting , how to configure external flash of this discovery board as Mass Storage. My main goal here is as soon as i connect the controller to PC, the external flash has to detect as mass storage device (predefined size). regards,Shikamaru
TL;DR: Two “DS18B20” sensors both work on Arduino, but on my STM32L071xx board only one works; the other never responds. I’m generating 1 µs delays from a 32 MHz clock. Suspecting clone/timing or power-mode differences. Looking for gotchas others have hit on STM32/1-Wire.Context / setupMCU: STM32L071xx, 3.3 V logicBus: single DS18B20 per test (no multi-drop)Pull-up: 4.7 kΩ to 3.3 V (external)Wiring length: 50 cmPower mode: 3-wireTiming: delays built from 32 MHz system clock, 1 µs granularity (busy-wait / timer)What I seeArduino (5 V): both sensors enumerate, convert, and read fine.STM32L071 (3.3 V): Sensor A works flawlessly; Sensor B shows no presence pulse / no ROM code (or occasionally garbage/CRC fail, depending on timing tweaks).What I’ve triedVerified wiring continuity and pinout (DATA/VDD/GND).Switched the STM32 GPIO to open-drain, high-speed; internal pulls disabled.Tried stronger pull-ups (3.3 kΩ / 2.2 kΩ).Stretched/relaxed timings around spec:Reset low: ~520 µs, sample presen
Hi! Im doing my project using mpu6500 and I use hal_i2c_mem_read to read the WHOIMI register at 0x75 with the device address 0x69 (AOD to vcc) and I alway get the value 0x00. Why is that? is this module require something soldered to this pad (img) to turn on i2c protocol or what, please help me out.
Hi all, I have a custom board and application using the mentioned MCU, when I use the "run" with the Release option on STM32CubeIDE and once I use the board alone the FW starts flawless as soon I power up. Now when I use the STM32CumeProgrammer to upload the "Release" bin file the board do not start the FW after powering up the board but need to press reset for it to start. These behavior tells me is not an issues with the NRST's RC circuit. Could anyone help me to solve this issue, cause have a production waiting to solve this issue since all the boards were programmed using the STM32CumeProgrammer for speed in production and now all of them need to use the reset button to start.Al OB are as suggested in the forums and documentation nBOOT_SEL=1, nBOOT0=1, nBOOT1=1 Thank you in advance.
Hello,I am working with an STM32G431K8T6and using the LL library to configure SPI in master mode.The issue is with the MISO pin (PB4).The pin is configured as SPI input, with no pull-up or pull-down.When PB4 is left unconnected, the voltage is measured at 3.3v.If I short PB4 directly to GND, the current goes up to about 65mA, which looks like the pin is driving strongly,similar to push-pull output.Because of this, the SPI slave cannot pull the line low enough, and communication fails.Configuration Details:void MX_SPI1_Init(void) { /* USER CODE BEGIN SPI1_Init 0 */ /* USER CODE END SPI1_Init 0 */ LL_SPI_InitTypeDef SPI_InitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; /* Peripheral clock enable */ LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1); LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA); LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB); /**SPI1 GPIO Configuration PA7 ------> SPI1_MOSI PB3 ------> SPI1_SCK PB4 ------> SPI1_MISO
I'm using STM32F429I-DISCO with external SDRAM and DMA2D to render graphics.CPU run at 180 MhzSdram 90mhzLtdc clock: 3mhzLcd : 240*320 color RGB565Issue:I use DMA2D to fill the screen, then on Transfer Complete interrupt, I trigger a second DMA2D to draw a sprite.It works fine in debug mode, but in real-time, the sprite is not drawn.If I switch to polling mode (HAL_DMA2D_PollForTransfer()), it works correctly.The interrupt may fire before SDRAM is truly ready for the next transfer.The question:How to reliably chain DMA2D operations with SDRAM in interrupt mode to fully offload cpu?
Hi,I have a question regarding the backup SRAM in the STM32U5. The reference manual is not clear about this:On the one had, it mentions the following Which seems to indicate that it is possible to place the device in standby without powering SRAM2. HOWEVER, it also says this: This last line (The backup SRAM content is lost in Standby mode without SRAM2 retention. If either RRSB1 or RRSB2 bit is set in Standby mode, the backup SRAM is also retained.) seems to say that it is NOT possible, and one ALWAYS has to retain the 8kB to retain at least the 2kB. What's more, in the PWR_ModesSelection example, the example configurations only include the following 3 options: Which also seem to indicate that it is not possible to only retain the 2kB So which is it: Is it possible to retain the backup SRAM (2kB) WITHOUT retaining the full 8kB (or the other page) of the SRAM2 bank or not? Thanks for your clarification!Arnout
Hi, we are currently using different types of the STM32H743 and I want to verify the package to make sure the software is running on the expected device. For this I am using LL_GetPackageType() and check the returned value against one of the LL_UTILS_PACKAGETYPE defines in stm32h7xx_ll_utils.h (line 202 and following). The UFBGA169 package is not listed here. What is the correct value for it? The H743AII6 on my board reports 8. Please add this package in a next HAL release for H7 series. Kinds regards, Martin
Hello,When using stop mode 3 with the stm32u5a9j chip, I noticed a unexpected behaviour when exiting stop mode 3.I have a device connected to the stm32 chip which wakes up the stm32 on rising edge on one of its pin ( GPIOA0 ). This interrupt can be triggered while the stm32u5 is in run mode or in stop mode 3. When the stm32u5 is in run mode and if this interrupt is triggered, only the the EXTI Line0 interrupt is generated by the NVIC as expected.But when the stm32u5 is in stop mode 3, sometimes the NVIC generates 2 interrupts when exiting stop mode 3 the EXTI Line0 interrupt and then the PWR wake-up from Stop 3 interrupt ( both with default priorities, respectively 19 and 85 ) and sometimes ( less often ) only the PWR wake-up from Stop 3 interrupt is generated. It's not clear why the EXTI is generating an interrupt and sometimes it does not when exiting stop mode 3. Is there a way to make sure the EXTI is also generating an interrupt when exiting stop mode 3 o
i am new to this BLDC motors and i am planning to build a 3-phase motor driver. attached the motor datasheet as well.Can anyone suggest a suitable driver for proof of concept for the attached motor specs.Link: https://www.maxongroup.com/medias/sys_master/root/9410429321246/Cataloge-Page-EN-260.pdf
Hello,I am working with an STM32WB55RGV6 on a custom board powered by battery (always connected).I successfully ran the Proximity example (non-RTOS) with BLE stack before, but after I worked on another project that used BLE stack + FreeRTOS, the BLE stack no longer works — even the old Proximity example stopped advertising.Current statusFUS Info (read via CubeProgrammer):FUS State: FUS_IDLEFUS Status: FUS_NO_ERRORFUS Version: v2.1.0.0Wireless Stack Version: v1.23.0.3Stack address: 0x080D0000FUS Operator: v3.1.0Option Bytes:RDP = 0xAASFSA = 0xD0 (0x080D0000)Boot config (nBOOT0, nSWBOOT0) I already tried:Upgrading FUS and reinstalling BLE stack.Mass erase + reflashing the Proximity example.Result: No advertising, no BLE activity.What is the recommended way to fully recover BLE stack on a custom board (always battery powered) after using another project?
I have an X-NUCLEO-67W61M1 board for transmitting data over Wi-Fi, but I have no idea how to configure it. I have watched the related video from ST, but I still couldn’t understand the setup process.For the host MCU, I have the following boards:STM32 Nucleo-F103STM32F103C8T6 (“Blue Pill”)STM32H723Will any of these work with the X-NUCLEO-67W61M1?Please guide me through the configuration process.
Hello, I am developing a Sleepy End-Device based on STM32WB5MMG which should read and transmit sensor data periodically. The board is mounted to a PCB with the recommended layout for optimal antenna gain. The sensor readings are transmitted with a custom cluster consisting of two string attributes. Furthermore a time cluster is present. The device makes a time read request to the coordinator and receives its reporting configuration (10s) for the string attributes directly after establishing connection. Connection and reporting work very well. APS security and fragmentation flags are set. Actual behavior: the devices loose connection at an arbitrary point in time (sometimes a few minutes after connection, sometimes after several hours), despite being close (1-2m) and having direct line of sight to the coordinator. Expected behavior: the devices shall infinitely long keep up the connection and report their sensor readings. What i have tried: I have implemented a message filter with
Bonjour à tous, cela fait une semaine que je dois développer une API pour la mémoire sécurisée at88sc12816c De chez Atmel mais trés malheuresement j’arrive paz à établir la communication entre ma carte maitre qui est un stm32f412zgt6 et la mémoire eeprom.De mon côté, j’ai bien compris le fonctionnement de la mémoire mais sauf que dans ce dernier les adresses sont diverses, j’explique par exemple pour faire une écrituredans une UserZone c’est B0 et cet octet ce termine par 0 ce qui est correctement compris par la HAL pour faire de l’écriture en i2cmais dans le cas d’une lecture aussi par exemple on l’adresse qui se termine encore 0, alros que dans un protocole i2c standard pour lire le dernier bit de l’octet d’adresse doit être à 1. Et je pense que c’est exactement ce que la HAL ne comprend pas à son niveau. J’ai vraiment besoin d’aide pour avancer
Hi, I'm using the STM32H753-NUCLEO Board for some SW development, and I'm having some issues with the SPI Handling.I'm attempting to transmit a single 16-bit data packet, however on the scope I'm transmitting two 16-bit data packets. When I change my data packet type to 8 bits, I'm transmitting 4 8-bit data packets.I've scoured the RM0433 manual but cannot find the register which tells the peripheral to only transmit a single data packet.Could someone point me to the correct register and what it should be set to to achieve this please?
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.