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
I want the motor to run at 4000pps with 38 V power supply and full step with 17HS 8401!In this case, which is superior, L6470 (voltage control) or L6472 (current control)? Also, if you have any points to keep in mind, please let me know.
Hi everyone,I'm working on an STM32H743-based product that already has a custom bootloader and I'm looking for the best industry practice for implementing a bootloader fallback mechanism.Current architecture0x08000000 Primary Bootloader0x08020000 Factory Application0x08080000 Default ApplicationThe bootloader already performs:Application validity checks (MSP and Reset Handler) CRC verification of the Factory and Default applications UART firmware update Automatic fallback from Default Application to Factory ApplicationThe applications are working as expected.New requirementThe new requirement is that if the primary bootloader becomes corrupted, the system should be able to boot from a backup bootloader stored elsewhere in flash, without requiring physical access (the device is remotely deployed).I understand that after reset the Cortex-M7 hardware simply does:MSP = *(0x08000000)PC = *(0x08000004)and immediately jumps to the Reset_Handler.My understanding is:If the vector table or R
Hello,At present I trt o interface an SPI based SSD1309 Display and I2C based DS3231 RTC with STM32F103RBT6 using Nucleo board MB1136 F103RB C. For your reference I have attached screenshot of port assignment for those devices. void Init_GPIOs(void) {/* --- 1. Peripheral Clock Enable --- */// Enable clocks for all GPIO ports and AFIO (Alternate Function I/O)RCC->APB2ENR |= (RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN |RCC_APB2ENR_IOPCEN | RCC_APB2ENR_IOPDEN |RCC_APB2ENR_AFIOEN); /* --- 2. Pin Remapping & JTAG Management --- */// Disable JTAG/SWD remap to reclaim PB3, PB4, and PA15 for GPIO/Alternate Function usageAFIO->MAPR &= ~AFIO_MAPR_SWJ_CFG;AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE;// Remap SPI1 to PB3/PB4/PB5 as per hardware designAFIO->MAPR |= AFIO_MAPR_SPI1_REMAP; /* --- 3. Initialize Display Control Pins (Soft-Step) --- */// Configuring critical control pins first ensures the display state is stable// before the high-speed SPI clock begins toggling.GPIOB->
Hi ST, Actually , In my Correct Project, i need Small SIZE PCB , So there is no left space in my PCB , So can i replace this PMIC to another PMIC which is in small Size, please Suggest me Any PMIC which is compatible with MP257,
I have created a project and none of the options on my screen seem to do anything. All im trying to do is compile a simple code on STM32CubeIDE and flash a board using the STM32CubePRG software.
Create a new project on macOS using STM32CubeIDE for VSCode.In the CMakeLists.txt file, add:add_link_options(-flto=auto -ffat-lto-objects)Build the project.You should get a linker error like this, because GNU Tools for STM32 is located in the “Application Support” folder which contains a space, so lto-wrapper can’t manage to access its dependencies:[build] Linking C executable core_mcu_firmware.elf[build] make[3]: /Users/romain/Library/Application: Permission denied[build] make[3]: /Users/romain/Library/Application: Permission denied[build] make[3]: *** [/var/folders/hb/49ldjdz961l9dtpyqq8dqhcr0000gn/T//ccLALceE.ltrans1.ltrans.o] Error 1[build] make[3]: *** Waiting for unfinished jobs....[build] make[3]: *** [/var/folders/hb/49ldjdz961l9dtpyqq8dqhcr0000gn/T//ccLALceE.ltrans0.ltrans.o] Error 1[build] lto-wrapper: fatal error: make returned 2 exit status[build] compilation terminated.[build] /Users/romain/Library/Application Support/stm32cube/bundles/gnu-tools-for-stm32/14.3.1+st.2/bin/.
HardwareBoard: NUCLEO‑U5A5ZJ‑QMCU: STM32U5A5ST‑LINKSoftware / ToolsST Edge AI (via STM32CubeAI Studio)Target: STM32U5Model source: STM32 AI Model ZooModel used:miniresnetv2_s1_64x50_tl_int8.tflite(Audio Event Classification → ESC‑10)Steps FollowedImported the miniresnetv2_s1_64x50_tl_int8.tflite model into STM32CubeAI StudioSelected NUCLEO‑U5A5ZJ‑Q as the target boardKept default settings in all stepsRun on Target Generated code, built, flashed, and attempted (Step 4 – Validate) failed Observed IssueDuring Run on Target, validation fails with the following error:Run failed: Error: validate error: E200 (ValidationError): TARGET: Unable to bind the ST.AI runtime with "network" c-model E801 (HwIOError): Invalid firmware - COM8:115200I have attached the complete validation failure log for reference.Additional ObservationDuring Step 1 (Code Generation), I consistently receive the following warning from STM32CubeMX:Warning: Code GenerationMain Config: These peripherals still have some n
Dear STM32 Technical Team:Our original design is implemented on the STM32F407, utilizing a single ADC pin for analog signal acquisition. Upon detection of a key trigger signal, high-speed data acquisition is performed via TIM1-triggered ADC1 with DMA transmission, where Analog Watchdog 1 is configured with Threshold A for boundary supervision. In the idle state without a key trigger, TIM2-triggered ADC2 operates in background mode with Analog Watchdog 2 (Threshold B) to continuously monitor abnormal signal fluctuations in real time.Due to the limited on-chip RAM of the STM32F407, we have migrated the firmware to the STM32L4S5 microcontroller. However, this device only features a single ADC peripheral, which prevents the independent dual-ADC operation implemented in the original design. Furthermore, although the STM32L4S5 integrates three analog watchdogs, the hardware does not support configuration of independent threshold levels for separate operational modes.We kindly request your of
I’ve noticced recently that in CubeIDE 2.x, the MXCube program was separated from CubeIDE and is now a standalone app. I’ve also noticed that the extensions download a more recent C standard for STM32 compiler and MCUFinder is now web-only. This to me signifies a pivot in where STM is going with development environment and my guess is that everything will focus on VSCode extensions. Having said that, I’m inclined to port my whole project in VSCode but I want some reassurance that the platform and its MCUs will get future enhanced support for VSCode extensions and better integration.So far, CMake scrips in VSConde aren’t fully fledged, specifically missing out-of-the-box commands and buttons for:- Switching active configuration (Debug or Release)- Flashing the target MCU.- Debugging via line-by-line walkthroughs.- Set debug levels and optimisations.- Set hardware or software floating points.- Output .bin firmwareMy question is. Is this the case and is better for me to port everything to
Hi,I'm developing a composite USB device on STM32N6 with:- 2x CDC ACM interfaces (Dual Virtual COM Port)- 1x UVC (USB Video Class) interface for camera streamingThe CDC ports work correctly. The UVC class enumerates successfully and the camera application opens without errors. However, the video stream shows a black screen - no actual frame datais being transmitted. What Works1. USB Composite device enumeration succeeds2. Both CDC ACM ports work (LOG port sends heartbeat, DATA port echoes)3. UVC class registers correctly with USBX4. Host can open camera application (VLC, Cheese, etc.)5. UVC GET_DEF(PROBE) requests are handled correctly6. SET_CUR(PROBE/COMMIT) requests are handled correctly7. StreamChange callback fires when host starts streaming (alt=1)8. Packets are queued via ux_device_class_video_write_payload_get() (returns success)9. ux_device_class_video_transmission_start() returns UX_SUCCESSWhat Doesn't Work→ PayloadDone callback is never triggered→ No video data reaches the ho
Hello,I'm working with the STM32H7S7L8 -DK and I need for final product to program the external OCTOSPI flash via usb DFU.So using V2.20.0 Cube programmer i'm able to use external memory loader to read and program the flash using SWDBut using the USB i see the DFU and before i select the good external memory laoder but when i click to connect i can only programm the internal flash of the STM32 when i try to read or program the OCTOSPI flash i have error.Do you have any ideasThanks
Dear,Is it possible for execution within HDPL_x to use SAES (Secure AES) with a DHUK (Derived Hardware Unique Key) from HDPL_y where x > y?For example:Execution within HDPL2 makes use of SAES to encrypt plaintext p using its DHUK, this results in ciphertext cAfterwards, upon reset, execution within HDPL1 needs to be able to read plaintext p (e.g., by decrypting the stored ciphertext c using HDPL2's DHUK) without changing the HDPL.Is this possible with SAES, and if yes, how?Thanks a lot!
Just got a new chip — does it come with factory firmware preloaded? If yes, what version is it? And will I need to re-flash the firmware before it can work properly?
Hi,I have build a custom model based on st yolox model.This model have an input of 480x480. Intput int8 and output float.Five classes for vehicles detectionQuantized and tested on stm32N6570-DK.Now i'm trying to add my model on this st examplehttps://github.com/STMicroelectronics/STM32N6-GettingStarted-ObjectDetection/tree/mainI'm following this tutorial to deploy my modelhttps://github.com/STMicroelectronics/STM32N6-GettingStarted-ObjectDetection/blob/main/README.md#application-build-and-run---dev-modeI'm using stm32cubdeIDE to program the cardAfter i programmed the network_data.hex, i'm trying to deploy and debug the application.But i have this error at this step : app_postprocess_initThe parameters Do you have en idea how i can resolve this ?
I’m trying to use the FMC and SDRAM (IS42S16400J) to expand the H7’s running memory. I have the FMC configured in SystemInit and the linker setup to put all readwrite into SDRAM. I’ve verified that I can create variables normally, they’re placed in SDRAM, and can be read and manipulated normally.Now that I have minimal functionality, I’m starting to add more peripherals and functionality.int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SDMMC2_SD_Init(); MX_USB_OTG_HS_PCD_Init(); MX_FATFS_Init(); /* USER CODE BEGIN 2 */ MX_USB_DEVICE_Init(); /* USER CODE END 2 *
Hi,after starting with Nucleo-L432KC development board I need to switch to a variant with more I/Os, and thus I’m creating a stand-alone development board with STM32L462CET in LQFP48 package.I purchased a STLink-V3MINIE for programming/debugging but, like others, was confused on how to properly connect the STLink to the MCU. Since various answers are given in lots of threads I summarized in a simplified sketch what I consider as correct.Please have a look on attached schematic and configuration of MCU done in CubeMX. To keep it as simple as possible I removed everything but the MCU, the STDC14 connector of the V3MINIE and just an LED to apply the minimum blink-example.Please, focus on the connection of STDC14 connector and BOOT0. I think, with this, it is possible to download the blink-software and run the debugger. Am I correct?RegardsSebastian
Hello,Does someone have footprint, symbol and 3D model for this STM32F407ZGT6 board?Best regards and thanks in advance,Toby
Hi everyone,I am working with the STM32C071 and experiencing problems with USB enumeration after my bootloader execution.I wrote a custom bootloader that performs checks (like CRC, metadata, etc.) and can also trigger the embedded STM32 DFU bootloader in System Memory using this method:void boot_jump_to_bootloader(void){ uint32_t i = 0; void (*SysMemBootJump)(void); uint32_t BootAddrC0 = 0x1FFF0000; __disable_irq(); SysTick->CTRL = 0; HAL_RCC_DeInit(); for (i = 0; i < 8; i++) { if (i < (sizeof(NVIC->ICER) / sizeof(NVIC->ICER[0]))) { NVIC->ICER[i] = 0xFFFFFFFF; NVIC->ICPR[i] = 0xFFFFFFFF; } } __enable_irq(); SysMemBootJump = (void (*)(void)) (*((uint32_t*) ((BootAddrC0 + 4)))); __set_MSP(*(uint32_t*) BootAddrC0); SysMemBootJump(); while (1) { /* Code should never reach this loop */ }}After performing my bootloader-specific instructions, I jump to the main firmware application using this f
There seems to be a recurring error in the HAL documentation (e.g. UM2570, but also in others STM32L5?) UM2570 - Rev 2 page 60/2926The description of the flag does not match the flag nameHAL_FDCAN_ERROR_FIFO_EMPTYPut element in full FIFOHAL_FDCAN_ERROR_FIFO_FULLGet element from empty FIFO
Hi,after Update to v6.18.0 we get the following warning: Our configuration: Mouse hover: Obviously, you don't have a single source. Otherwise, it wouldn't be possible for the “240 MHz” label below the text field and for the “225 MHz” label to appear when hover over that same text field.Please, ST, conduct more integration tests! Attached our .ioc file.
Hi Everybody,I posted a comment here https://community.st.com/t5/stm32-online-courses/stm32h5-secure-manager-course/bc-p/824487/highlight/true#M27 yesterday because I am trying following the online course and what is written in the wiki to start developing an application on the STM32H573VI using the secure manager.At the moment I am starting the development by using the nucleo board for H573 however, by following the wiki, the only project that could be used for deploying the solution is an handswritten example that does not use the CubeMx.If I try to follow the old documentation on the youtube videos, as explained in the link provided, I am unable to set the boot path correctly.At the moment I am a bit lost, should I build my project without the use of CubeMx in case of secure manager? Will it be added in the future? I am missing something straightforward? thank you in advanceAndrea
Dear community and STMicroelectronics representativesI'm having strange problem in both STMCubeProg v2.22.0 and v2.23.0. I tried many older versions (even pretty ancient ones) and these works without problem. Problem is that in v2.22.0 and v2.23.0 when I select a file to be programmed to device (device uses custom DFU implementation - inspired by DFU example code), then I set address and click “Start programming”, almost nothing happens (only progress bar resets to 0% so click is “handled”). No “Opening and parsing file”, no “erase sector command” comes to my device, no error in console or GUI, no timeout - just nothing. I would typically suspect that my DFU implementation on my STM32L452RE MCU is no longer compatible with current versions of STMCubeProg, but as there is not even this “Opening and parsing file” message (it is displayed by older versions of STMCubeProg) nor any error or timeout is reported, I'm suspecting that something even before attempting to communicate over DFU pro
My MCU is STM32H753 on custom PCB. It is running at 480 Mhz. I use USB USB_OTG_FS it is clocked by RC48.On “Middleware and Software packs” I have enabled “FATFS”, “FREERTOS” and “USB_HOST”I generated project by using CubeMX 6.17 with “STM32Cube_FW_H7_V1.13.0”.For more details see attached pictures with configurations. I use FreeRTOS function uxTaskGetSystemState to get info about CPU time per task.In my project I have FatFS test module that performs some read write tests. When I check CPU usage I get this numbers for tasks: “fatfs_test” CPU: 43% “USBH_Queue” CPU: 46% left 11% are utilized by GUI.I ran tests with USB DMA enabled and disabled - there is no difference. So, the question is: Is it OK for “USBH_Queue” task to utilize that much CPU when read/write operations in progress??? For example I have similar test for SD-card, and I get this numbers for tasks: “fatfs_test” CPU: 51% “IDLE” CPU: 35% GUI and other tasks CPU: 14%USB OTG FS pinsUSB OTG FS parametersUSB OTG FS NVIC SettingsU
Hi there, I found several issues in the STM32CubeMP2 CMSIS headers as follows:1. Missing opening parenthesis in bitmask macrosIn stm32mp21*xx.h, _Msk macro definitions were missing the opening parenthesis, leaving a dangling closing parenthesis with no matching open:// Before #define USB_OTG_GCCFG_FSVMINUS_Msk 0x1UL << USB_OTG_GCCFG_FSVMINUS_Pos) // After #define USB_OTG_GCCFG_FSVMINUS_Msk (0x1UL << USB_OTG_GCCFG_FSVMINUS_Pos)While the C preprocessor performs simple text substitution and the shift operation may still evaluate correctly at the call site depending on context, the unbalanced parentheses break static analyzers, automated code-generation tools, and linters that parse these headers. Adding the opening parenthesis also makes operator precedence explicit and unambiguous.2. Malformed comment delimitersAll of header files involves inline comments used *!< instead of the correct /*!< Doxygen-style comment opener, missing the l
JW
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.