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
Hello,I am trying to extend DTCM to 256K. I followed FLEXMEM Configurations example but I get HardFault as soon as I try to access DTCM in 0x30020000 - 0x30040000 address range. Could someone please provide working example of how to extend DTCM to 256K?
is their official library for the BNO085 whil using with stm i found the one to used with ardiuno but not one for stm https://github.com/adafruit/Adafruit_BNO08x/blob/master/src/Adafruit_BNO08x.cpp
I’m starting to work with the STM32F411E‑Discovery board and I’d like to use it for real‑time audio filtering. I’m using the onboard MEMS microphone together with the mini‑jack audio output.I’m currently struggling with configuring the clock settings correctly — I’m observing a variable timing drift between the microphone input and the audio output.Could you advise on the proper clock configuration for this setup, or point me to an existing project or example that demonstrates real‑time audio processing on the STM32F411E‑Discovery?
MCU: STM32H753IITxPeripherals: FDCAN1 and FDCAN2Baud: Nominal 1 Mbps, Data 2 Mbps (FDCAN_FRAME_FD_BRS) Question:Can FDCAN RX/TX use DMA on STM32H7 (like UART/SPI), or is Message RAM + interrupt/polling the only supported path?What I understand so far:- FDCAN stores frames in shared Message RAM (RX FIFO0/FIFO1 / TX FIFO)- CPU reads with HAL_FDCAN_GetRxMessage() after interrupt or by polling- I do not see HAL_FDCAN_Receive_DMA() / Transmit_DMA() in the H7 HAL What I need:1) Official confirmation: DMA for FDCAN frame RX/TX on H753 — supported or not?2) If not supported, recommended approach for higher load (40 slaves, periodic SCAN):- interrupt + FreeRTOS queue, or- polling in a task, or- something else?3) If any DMA/MDMA trick is possible for Message RAM copy, is it recommended by ST? Thank you.
Hi, I have a bldc motor with encoder, the output current waveform is not sinusoidal. i have used motor profiler to measure rs=0.2mOhm and ls = 0.6mH. what should I do. I also cant tune the pid so that the rpm of motor will be constant under load.
Greetings! A custom H523-based board has a 4-header connector [3.3V, SWDIO, SWCLK, GND] that I used with an external STLINK-V2 dongle connected to my laptop. Is it possible to debug this board using STLINK-V3 on my NUCLEO-U545RE-Q? Section 7.3 of the manual, Embedded STLINK-V3EC, does not mention this. Thanks.
Hello,if you are using macOS and STM32CubeIDE and need it productively you should currently refrain updating your macOS. Due to a bug in Eclipse (https://github.com/eclipse-platform/eclipse.platform.swt/issues/2621) text selection does no more work via dragging your mouse or using shift+arrows.There is already a fix but STM32CubeIDE does not provide the fix as update as of now.I already filed a case.
Hello,We are currently designing a board using an STM32H563VI and an ADIN1200 Ethernet PHY. The design is still at an early stage, and no prototype hardware has been built yet, so we can still change the interface from RMII to MII if necessary.The planned RMII conditions are as follows:* RMII reference clock: 50 MHz* I/O voltage: 3.3 V* STM32 GPIO speed: OSPEEDR = 10 (High speed)* I/O compensation cell: Enabled* ADIN1200 minimum setup time: 4 ns* ADIN1200 minimum hold time: 2 ns* Application ambient temperature range: −20°C to +50°CAccording to the STM32H563 datasheet, the maximum delay from the RMII_REF_CLK rising edge to TXD[1:0]/TX_EN valid is 15.5 ns. Therefore, the worst-case setup margin appears to be:20 ns − 15.5 ns − 4 ns = 0.5 nsThis calculation leaves only 0.5 ns of margin before considering PCB trace skew, capacitive loading, and the difference between the STM32 timing measurement threshold of 0.5 × VDD and the RMII/ADIN1200 timing thresholds.This is my first time designing
I am using STM32L431RCT6 controller, configured RTC with external LSE (32.768 KHz), for which my controller is not working, not booting up for normal process, everything is stopped. But when i switch from LSE to LSI, everything works fine. Why does this happen? Also changed the LSE low drive capability to high, still having the same issue.
We have recently updated to the latest STM32CubeMX 6.17 and then STMCubeMX 6.18 and noticed in both versions that the internal temperature sensor is mis-reading (by something like 100x).Previously the project was reading the temperature correctly (STMCubeMX 6.14 or 6.15 not sure exactly).I have checked that all the ADC3 settings are the same and there are no changes causing by migrating the .IOC project.I’ve also checked the TSEN and VREFEN are enabled in ADC3_CCR. The value is 0x00C00000.Before I invest a lot of time rolling back to the old STM32CubeMX version and investigating what changed that broke the ADC3 internal temperature reading I’m hoping that this is known issue with the latest STM32CubeMX?STM32CubeMX generated code: /** Common config */ hadc3.Instance = ADC3; hadc3.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; hadc3.Init.Resolution = ADC_RESOLUTION_12B; hadc3.Init.ScanConvMode = ADC_SCAN_ENABLE; hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc3.Init.LowPowerAutoW
Dear ST Support Team,I am developing a custom bootloader for the STM32L071CBY6TR (128 Kbyte, dual-bank Flash) and I have a question regarding the exact behavior of the Flash controller that I could not fully clarify from RM0367.Context:- My bootloader occupies the first 32 Kbytes (0x08000000 - 0x08007FFF), entirely within Bank 1.- My application occupies 96 Kbytes starting at 0x08008000, which means it spans across the Bank1/Bank2 boundary at 0x08010000: the last 32 Kbytes of Bank 1, and roughly 64 Kbytes of Bank 2.RM0367 states that read operations from one bank can be performed while write or erase operations are performed on the other bank (cross-bank read-while-write). However, I could not find documentation describing the behavior when a write/erase operation is performed on one bank while code execution (instruction fetch) continues from a *different page within the same bank* — which is exactly my bootloader's situation when it needs to erase/program the tail portion of Bank 1 t
Hello wonderful ST Community!Before I get into the question, a bit of background on this project. I'm creating a button panel HID gaming device for the space sim Elite Dangerous. Using its somewhat limited API I'm hoping to feed info about the game state back to a 9 inch screen on the HID device through USB CDC running composite with HID. Before I start getting into hardware dev I want to create a sim of the GUI to test two things:- size of display needed to show what I want to show- getting data out of the game (will be done with a USB CDC app/driver/python (I have not quite got this far) running on the host computer)It would be amazing to test these two aspects using the GFX simulator. I known it's theoretically possible to send data through some medium such as sockets but how does this work in practice?Is there some good documentation around how the simulator works and how I can feed data into my sims?I've been investigating using VSCode since GFX already has compatibility, but how
I need to transfer files from my hardware (STM32H723 based) and a PC, using an USB port, just like an USB disk; my hardware uses a FT234XD USB interface chip (UART connection) and an EEPROM where I save the data.Anyone may help me to understand how to do it ? Thank you
Hiya. I’ve been trying to implement a double buffer with the GPDMA for a week now. I’m trying to capture an image using DCMI. I can get it to work with a single buffer, but I have not been able to get it to work with two LL nodes and two buffers.I want the GPDMA to go between bufferA and bufferB, so I can process the alternate node i.e., if the DMA is loading into buffer B, then I process A. A simple ping-pong.I’m not sure how I’m supposed to alter my current approach with a single buffer to two. This is what I have for my linked list setup in MX_DCMIQueue_Config.... pNodeConfig.SrcAddress = 0; pNodeConfig.DstAddress = (uint32_t)bufferA; pNodeConfig.DataSize = DB_SIZE_WORDS; /* Build DCMI_Node1 Node */ ret |= HAL_DMAEx_List_BuildNode(&pNodeConfig, &DCMI_Node1); /* Insert DCMI_Node1 to Queue */ ret |= HAL_DMAEx_List_InsertNode_Tail(&DCMIQueue, &DCMI_Node1); /* Set node configuration ################################################*/ pNodeConfig.DstAddress = (uin
What is the MSL Level for part STM32G030F6P6 in a TSSOP package?
Hi everyone,I’m working on an STM32 project using STM32CubeMX and STM32CubeIDE. Everything builds and runs correctly right after generating the project, but after closing and reopening the project I sometimes run into build errors related to generated files or missing libraries.Regenerating the code usually fixes it, but I’m trying to understand why this happens in the first place.Has anyone experienced something similar with CubeMX projects? Is there a recommended way to organize the project or CubeMX settings so that generated files and middleware remain consistent when reopening the project?I’d appreciate any advice or best practices from people who work with STM32CubeMX regularly.
I would like to clarify the data constraints for Benchmark workflow in NanoEdge AI Studio:What is the maximum supported number of lines for each imported CSV dataset during Benchmark?Is there any official documented hard limit on the number of rows, or only practical recommendations?Some community references mention a rough threshold of ~100,000 lines, and files exceeding this size may cause memory overflow, import truncation or failed Benchmark launch. Could you confirm whether this threshold is formally defined?
Hello, I am using the stm32g47ret6 microcontroller and I am having troubles with transmitting and receiving data using the USART2 to my PC through the ST-LINK V3-SET. If I understand correctly, I left the v3-set configured as default (did not change the jumper configurations). I used MX to configure the usart2 module and used vcp_rx and vcp_tx for communication, used the pins PA3 and PA2 and also configured them in MX. I checked the baud rates, COM Port in my device manager. I am using tera term 5 to read the data, but I get a blank screen every time I start the program. To debug this, I tried probing the pins using an oscilloscope and I do see some repeated pulses, the baud rate matches and Uppercase 'U’ does give a square wave. I also checked the UART transmit status which shows HAL_OK in live expressions in the CUBEIDE. I am using a custom hardware board with the stm32g474ret6 mcu, it is connected to the st-link via the stdc14 connecter. This is the schematic for it. Below is the c
Hi, looking to power the NUCLEO-F767ZI off another board (which has a TPSM843320 buck), any issues with this as the 5V rail (E5V), on the dev board you have LD1117 LDO, but the rail I can provide isn’t high enough for the dropout. Any spec on ripple or how clean the E5V rail should be? Seems to only be used by STLINK and USB.
I see the USBX/FileX/LevelX middlewares are supported in STM32CubeMX2, but ThreadX (formerly AzureRTOS, formerly ThreadX) itself is not? Is ThreadX support on the roadmap for the STM32C5 series? I really don’t want to have to go back to using FreeRTOS.
Hello,I am using the VDx1943 EVK kit and would like to extract the live camera feed using the SDK. Could you please help me identify the correct DLL file to use?So far, I have tried using:st_brightsense_sdk_vdx193.dll en.STSW-IMG507_16GZUnfortunately, I have not been able to successfully pull the live view with either of these. Could you point me to the correct DLL file, or advise on the proper method to extract the live feed from this kit?Thank you for your help.Regards,
The HTS221 is marked as Obsolete, and the only suggested alternative is SHT40-AD1B - a 3rd-party device. Has ST abandoned this product area?
Hello everyone,I'm working on an application using a motor with a nominal speed of 1850 rpm and a nominal current of 4.1 A. The motor operates within a speed range of 300 to 800 rpm, and I'm looking to implement stable and efficient speed regulation.I have already imported my project into MC Workbench and configured the following parameters: Current configuration:Speed sensing mode:Speed Sensor Mode: Hall SensorSpeed regulator:Execution Rate: 1 msTarget Speed: 648 rpmAuto Calculate Kp & Ki: enabledKp ≈ 14.96Ki ≈ 0.0105Maximum speed error before fault: 3Current regulators (Torque/Flux):Execution Time: 50 µsControl Mode: Speed controlCut-off frequency: 6000 rad/sAuto Calculate Torque/Flux Kp & Ki: enabledIq (Torque) Regulator:Target: from speed regulatorKp ≈ 7.62Ki ≈ 0.326Id (Flux) Regulator:Target: 0 AKp ≈ 7.62Ki ≈ 0.326Modulation:Selected modulation: NonePWM and current sensing:PWM frequency: 20 kHzCurrent sensing gain: 21Measurement rang
I am trying to increase the cpu speed of a custom board with stm32h743VIT6 and 16mhz crystal. However, once I change the speed, the UART output prints out gibberish. I have verified the UART works with the HSI at default speed of 64Mhz. Attached is the code and board schematics. Thanks for the help.
After I updated to CubeMX Version 6.18.0 (and newer CPU firmware pack 1.13 but this one not related to issue) I opened my older project and migrated to newer version. As a result I got error on Clock Configuration Page (see pic.1).pic.1I saved project and checked if anything changed... I did not hound any changed, but versions (see pics. 2 and 3) pic.2pic.3So, I downloaded older version 6.17.0 and there is no such issue. See pic.4 and pic.5 shows RCC block config. pic.4pic.5 RCC block config
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.