Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi, My board consists of stm32h733 that interfaces SDRAM via FMC. I want to execute code from SDRAM. Code is loaded from external flash(OCTOSPI) to SDRAM at address 0xc0700000.But running the code from this region causes hard-fault disabling the Debug Port. After this I'm unable to flash firmware into the hardware. I have to bring board into "connection under reset" by connecting BOOT0 to 3.3v and NRST to GND. I have tried with multiple test firmware but always got into hard-fault. Why MCU disables, it's debug port? While debugging in the disassembly I can execute firmware running from SDRAM one by one line, but at some point code hard-fault, causing it to stuck into the above told situation. Here is the MPU config for SDRAM; /* Configure the MPU attributes for SDRAM */ MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.BaseAddress = 0xC0000000; // Start address of SDRAM Bank 1 MPU_InitStruct.Size = MPU_REGION_SIZE_8MB; MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; M
[PN]: EVSPIN32G4-DUAL, STSPIN32G4, STDRIVE101[VERSION]: 6.4.0[TOOL]: Motor Control Workbench[DETAILS]:When I start the motor from motor pilot, even though I have set low peak currents (0.2A) in the project, on startup more than 1.8A is taken from the power supply for approx 0.5s. Afterwards the current stays at 1.3A[EXPECTED BEHAVIOR]:I would expect the current to be limited to the values specified in the design file.[HOW TO REPRODUCE]:just start motor from motor pilot
Hello,I am using MCSDK6.4.0 on STM32G431CBT6 for motor drive development.The generated code runs without any modifications. When using the Motor Pilot tool to start the motor,the chip crash, and there is no change in the motor. Debugging reveals that the program randomly enters NMI_Handler,HardFault_Handler, and FMAC_IRQHandler when starting the motor (after entering FMAC_IRQHandler several times during the first programming run,it does not enter again). I am using STMCubeMX 6.3.0. The chip's power supply is measured to be normal, and no reset has occurred.Below is a screenshot of the interrupt entry. What is the cause of this issue, and how can it be resolved.
Hi ST Community ,Does this position of the board and the copper zone is OK for the STM32WB5M MCU and the antenna ? because all dev boards from ST places the MCU on the PCB's edge . Thank You !#STM32WB #Hardware #Antenna
I use keilMDK V5.42.0 and follow apnt-333 to make a FLM file, and successfully got a FLM, when I use in my app Project,my internal flash works well but external flash got an error shows ---------------------------CMSIS-DAP - Cortex-M Error---------------------------Sector (0): Address not Zero!D:\RnD\Keil\ARM\flash\stm32h723FLM.flmI checked all over again, I don't know how to deal with it, I search on internet but no result, can anyone help methank and thank
Do you know the specified values for tr, tf and THSE?
Hello, I am developing a custom made PCB, for a pico balloon, mounting a STM32F103C8T6. For this project I will need to use low power techniques but before going deep into the Sleep/Standby/Stop mode I was working on understanding and reducing the power consumption of the STM32 during RUN mode. For these tests, the STM32 has only the decoupling caps in the VDD, VBAT and VDDA pins, and the rest of the PCB are left unpopulated to ensure the current consumption comes only from the STM32.I reduced the code to the minimum by just setting the Clock configuration for 8 MHz (directly from HSI, PLL and LSI off) , setting all the GPIO to INPUT + PULLDOWN + Set to RESET, configure 1 GPIO as output + set to RESET, and then wait forever in a while(1) loop.The problem is that, when I compile the project without optimization "-O0" the STM32 consumes 9 mA, however when I set the "-O1" flag the same code runs at 2 mA. In the "-O1" compilation if, instead of an empty while I have a "HAL_Delay(
Hey everybody,I was wondering if someone could help me correct my firmware that I've written.I created a custom board using the STM32C011F4P6 MCU. I put an FTDI UART-to-USB converter on the board to be able to view outgoing messages from the custom board on my laptop. While writing the firmware needed to demonstrate this functionality of the board, I referenced the C011 reference manual. There, STM describes the following steps to take when transmitting a character via USART, on page 752. I have tried to follow their advice to the best of my ability, but I notice that my board hangs while waiting for the transmission of a character to complete.My testing code (in my main.c) is shown below:int main(void) { char msg[] = "d"; // initialize debug LED user_led_init(); // initialize the usart usart_init(); while (1) { // transmit string of characters (one character here) usart_write_chars(msg, strlen(msg)); toggle_led(); delay_ms(500); } return 0; }Here are the defin
Hello everyone:I came to a need,that I need to copy part of a dynamic Bitmap to another postion of the same bitmap.I current use a for loop and memcpy func,It works but cost 4ms each run.How can I use touchgfx's blockCopy functions to do this? as DMA2D was already enabled.
Hello, I have made my own STM32F732RET6 board that has a USB FS configured as a Stereo, 24 bit 48kHz Audio Interface and SAI2 connected to an SN75176BDR (Differential Bus Transceiver IC) because I want to transmit AES3-AES/EBU (same as SPDIF) audio data coming from the USB). So USB Audio -> SPDIF TX. Problem is I cannot get it to work right and ALWAYS get noise in the output signal (I have hardware that can receive AES3-AES/EBU so I can hear it). I am suspecting this is a clock issue where the frequency of the SPDIF signal is not high enough to support 24 bit stereo 48kHz, from what I've read, this would require an SPDIF frequency of 6.144MHz. I don't know if "Real Audio Frequency" in the .ioc "Pinout & Configuration" on SAI2 should match this number (6.144MHz) or the Audio Sampling Frequency (48kHz). I cannot get "Real Audio Frequency" to be exactly 6.144MHz. I don't know if this should be the frequency the the SAI2 Clock Mux outputs (SAI2 Clock Mux sources from PLLSA
stm32wba55g-dk1Subject: Support Required – BLE_Audio_PBP_Sink Auracast Receiver Not Visible on MobileHi Team,I am currently working on the Auracast project using the STM32WBA55G-DK1 board.In this setup, the board is configured as the receiver side (Sink). After building and flashing, the board is expected to appear as AURACAST SINK STM32Auracast1, 2, 3, etc.The project code location I am using is:/home/engineer/Music/STM32CubeWBA/Projects/STM32WBA55G-DK1/Applications/BLE/BLE_Audio_PBP_SinkI have also tested with the following smartphones that support BLE Audio / Auracast: but not able to see device information related to receiver side device in phoneGoogle Pixel: Pixel 7 / 7 Pro, Pixel 8 / 8 Pro, Pixel 9 / 9 Pro / 9 Pro XL / 9 Pro FoldOnePlus: OnePlus 11, 12, 13Issue ObservedAfter building and flashing the board, I am not able to see or connect to the advertising device from the mobile phone.Verified with different Android versions and Bluetooth vers
Hi, I'm trying to get a few lines of text displayed on an OLED screen using 4-wire SPI on an STM32H755 board, but I haven't succeeded yet. I've looked into the sample code provided by the manufacturer (which is Arduino-based), but it hasn’t helped much so far. Has anyone worked with this display or with the SSD1322 controller before? I’m mainly looking for example code for the STM32 platform.I’ll be uploading my current progress to my GitHub repo. Thanks in advance!
I am working with the STM32WB55VGQ6 and using the V1.23.0 / 02-June-2025 STM32WB Copro Wireless Binaries. Specifically, stm32wb5x_FUS_fw.bin @ 0x080EE000 and stm32wb5x_BLE_Stack_full_fw.bin @ 0x080D0000.The STM32WB BLE API (hci_le) provides the function to read the values for the version information for the local Controller (`hci_read_local_version_information`).Per the BLE Core 5.4 spec:The HCI_Version information defines the version information of the HCI layer. The LMP_Version information defines the version of the LMP. The Company_Identifier information indicates the manufacturer of the local device.The HCI_Subversion and LMP_Subversion are vendor-specific.Since the Bluetooth Core Specification defines these as vendor-specific, could you please provide documentation on how to interpret them for your devices?Specifically, I'd like to know:Where are these values documented?How can we decipher them to understand details like the silicon revision or firmw
Dear Team,Could you please provide the reference design schematic of STM32WBA5MMG module.I check the documents section.Did not find anything.RegardsHari
So I want to use a capture compare to measure an input frequency 0.1Hz to 100kHz. Peripheral clock is set to 32MHz to cover full range and maximise speed of calculations. At lower frequency I have to count the number of times the over capture call-back is called, to put into the calculation. However there are a few frequencies where the over capture and edge detection IRQs have a beating effect, I have delt with this on other processors by ensuring the order IRQs are delt with but it doesn't seem to be working here.Sometimes the last over capture is called first, other times in is not, leading to a large jump in my calculated result. As anyone any experience with this issue on the STM32 TIM peripherals?/****************************************************************************** Function : Calculate_Frequency Return : Frequency post calculation as a float *****************************************************************************/ #define TIMCLOCK 32000000.00 //System clock value
Hello,Sorry if it's a *** question but I don't understand something.I want to have an HID and MassStorage usb device. I've seen that ST add USE_USBD_COMPOSITE but I don't understand why we use it for USBD_ClassTypeDef.For me, we have 1 device desc + 1 config desc with 2 interfaces, it's not enough to have only 1 class (with init, setup, dataIn, dataOut, getHsDesc) and put 2 registerInterface in MX_USB_DEVICE_Init and an if(epnum == HidEp) else if(epnum == MscEp) in dataIn and dataOut ?I think I missing something.Thank you for your answer.
Hello,I'm building a BLE receiver using an STM32WBA55CG.The device should only receive BLE advertising packets, never transmit, so I've put it in a "central" role. The device will be used very close to sensitive equipment, so it is very important that the radio never transmit.Despite being configured as a central, and having not called any functions which I would expect to transmit (such as scanning), I am seeing two different RF emission events from the radio:A "chirp" as soon as the device is powered onMultiple "blips" some time later at random intervalsThe "chirp" is a fairly quiet burst, which seems to rise in frequency across the 2.4-2.5GHz ISM band. I assume this is some kind of calibration/set-up, as it's always emitted as soon as HOST_BLE_Init() is called, from what I can see. This is manageable, as I can block the RF path when powering on/initialising the receiver for a few seconds, which should be sufficient to prevent this being emitted over the air.The "blips" are more trou
Hey, we have purchased the Nucleo board H7S3L8-B02. We always run in a timeout during USB core reset. This problem seems quite popular with multiple forum posts. However we still didn't manage to get it to run. I will give a set by step explanation of what we've done. Maybe someone catches the mistake. We made all of our settings in "Application", none in "Boot".USB_OTG_FS settings:USB_OTG_FSMiddleware CDC settings: CDC Power settings:PWR Clock settings (automatic by IDE)CLKmain.c:/* Includes ------------------------------------------------------------------*/ #include "main.h" #include "usb_device.h" /* Private function prototypes -----------------------------------------------*/ static void MPU_Config(void); static void MX_GPIO_Init(void); int main(void) { MPU_Config(); /* Update SystemCoreClock variable according to RCC registers values. */ SystemCoreClockUpdate(); /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_I
Hi,I'm working on a project using the STM32WB5MMG, which supports up to 4 simultaneous BLE connections.When a central device enables or disables notifications, my firmware receives the corresponding events (NOTIFY_ENABLED_EVT / NOTIFY_DISABLED_EVT) inside the Custom_STM_App_Notification() function. However, I'm unsure whether the ConnectionHandle parameter in this context reliably identifies which central device triggered the change.Additionally, when the firmware updates a characteristic's value using Custom_STM_App_Update_Char(), we know we must wait for the CUSTOM_STM_NOTIFICATION_COMPLETE_EVT (handled in custom_app.c) before sending the next notification.Now that we're dealing with multiple central devices, here's my main concern:Does CUSTOM_STM_NOTIFICATION_COMPLETE_EVT include the specific ConnectionHandle of the device that received the last notification?If not, how can we safely coordinate and track per-connection notification completion to avoid sending notifications out
Good morningI must project a board in this way:This baord will be connect to usb -c of the computer.There will be a converter 5V --> 3.3V.A MCU with bluetooth and antenna integrated.The goal is: the computer must recognize the board like USB serial Port (COMx) like a FTDI? So.. not virtual COM.My question is: can the computer recognize STM32WB5MMGH6TR like a serial USB serial Port (COMx)?Does it need some drivers about it?
I'm using tcpp01-m12 and stm32u5 borad to develop a UCPD sink application.The UCPD module seems works fine, and I can request selected voltage from source.But when I closed the MOS which controlled by tcpp(mcu set tcpp ctrl pin high), the vcc output voltage still have about 500mV.Is this a Characteristics of MOS tube, or any hardware design suggestion?
Hello,We are working on a smart floor system for sports applications using STM32WB55 MCUs.Each floor tile has its own STM32WB55 that collects sensor data (foot pressure/position).Our requirement:Send data from many STM32WB nodes simultaneously to a PC for visualization (MATLAB/custom UI).Main Question::backhand_index_pointing_right: What is the recommended way to achieve simultaneous BLE data streaming from multiple STM32WB nodes to a PC? Are there example projects or application notes for this scenario?Thank you very much,
Hi,I am trying to set up bootloader on my STM32G030, via usart. When I enter it and send start command (0x7F) I do get ACK response(0x79). I cna read ID and protocol verions, but when I try do use "Go" command to start my application, it gets stuck.What I am sending and responses I get from bootlaoder:Send: 0x7F (start)Response: 0x79Send: 0x21 0xDE (go command)Response: 0x79Send: 0x0800004 0x04 (my application program is at address 0x08000000) (0x04 is length of address in bytes for checksum)Response: nothing I assume I am doing something wrong with checksum value, but I cant figure out what.
Original title: "What is the correspondence between the overcurrent protection threshold and the DAC value for STSPIN32G4? Can you provide the calculation formul"Shortened in accordance with the posting guidelines.I have an EVSPIN32G4 evaluation board with a sampling resistor of 0.005Ω.Why does a current of 40A correspond to a threshold of 7427 (0.37V)?
Hey all,I’m trying to squeeze the lowest possible STOP1 current out of an STM32U031F8P6 (TSSOP-20), no external crystals. The board itself looks fine: in the deepest mode (Shutdown/Standby) I see < 0.5 µA, so I don’t think it’s a hardware leak.Goal (later): run ADC at 1 kHz triggered by LPTIM1 from LSI, push to DMA (circular), and only wake after 1000 samples (DMA TC). While that runs, the core should sit in STOP1 (low-power regulator).Problem (now, with everything stripped):Even with a minimal firmware that goes straight to STOP1 and (supposedly) nothing enabled, I measure ~5–6 µA average at room temp. The current trace shows a baseline of ~4.2–5 µA with short spikes to ~10–12 µA every ~100 ms. That really looks like something waking up periodically.What I see on the analyzer (≈3 V supply):Baseline settles around 4.2–5 µASpikes to ~10–12 µA every ~100 msAverage ≈ 5.2 µAIf I switch to the deepest mode, I get < 0.5 µA, which makes me think the PCB is fine and I’m just missing a se
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.