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
Good morning , I'm writing this post to request help , the main problem is two things the first and the main thing being the 1000W 3500 RPM 3 pole pair 48V motor not giving it rated torque of 2.5 Nm and only gives 0.8 N.m , this was confirmed as the motor works fine with a premade controller of the motor , further more the motor gets stuck and the torque reference goes to 19.99A however this does not happen with the premade controller , the motor works fine with the stm controller when no load is applied, the motor has been already profiled using the smt32 motor profiler, and motor barely gave any errors on the stm32 software however almost minimal torque, also as we are using a data acquistion system that is extremly accurate it measure 2A DC from the battery of 48V however the stm32 motor control software's torque reference showed 8.6 A , and the hall sensors are slight off , so at 370 RPM in the stm software its actually 500 and at 740 is 1000 and at 1110 its 1500 and soo on.the rea
I've been watching the MOOC - Security series and had some questions. There is a link in the info block to a forum for any questions, but the link no longer works. https://www.youtube.com/watch?v=g7ykhnmh7sAIs this the right place?I got to the end of "Security Part4 - STM32 security in practice - 15 Secure firmware update" and had some questions since there isn't any lab video for this module like there are for the modules that came before it.
Hello,I want to add a software update feature to my device, but I am unsure about the correct way to verify a newly installed firmware image. My goal is to make sure that the entire firmware has been written correctly and is not corrupted before the bootloader starts using it.One idea I have is to calculate a CRC of the whole application at build time and store this CRC at the end of the application image in flash. Then, during boot, the bootloader would calculate the CRC of the application in flash and compare it with the stored value to decide whether the firmware is valid. However, I am not sure if modifying or reserving a part of the application flash for this purpose is a good or recommended approach.Are there more common or reliable methods to verify a newly installed firmware before activating it? How is this typically handled in bootloader-based firmware update systems?
Hello all,I get an error starting a debug session from STM32CubeIDE (1.18.1) (STM32 Nucleo-F767ZI):STMicroelectronics ST-LINK GDB server. Version 7.10.0Copyright (c) 2025, STMicroelectronics. All rights reserved.Starting server with the following options:Persistent Mode : DisabledLogging Level : 1Listen Port Number : 61234Status Refresh Delay : 15sVerbose Mode : DisabledSWD Debug : EnabledInitWhile : EnabledTarget USB comms errorError in initializing ST-LINK device.Reason: USB communication error. Please reconnect the ST-LINK USB cable and try again. If I switch to SEGGER J-Link everythink works fine.Is my debug configuration:What I tried:- Restart PC- Reinstall the USB-Driver (https://www.st.com/en/development-tools/stsw-link009.html)- Erased the flash with STM32CubeProgrammer- Changes USB cable- Googled for solutionsPlease helpBest regards Nikolai
STM8L052XX – External interrupt on same pin number with different ports (PC0 & PF0)I am using STM8L052R8T6.I have already configured an external interrupt on PC0 (PORTC, pin 0).Now I want to configure an external interrupt on PF0 (PORTF, pin 0) as well.Since both pins have the same pin number but belong to different ports, I would like to know:Can PC0 and PF0 generate external interrupts independently?How should the EXTI configuration be done for multiple ports?Which EXTI registers and interrupt handlers should be used for PORTF?Could someone please provide guidance or a simple example for configuring external interrupts on PC0 and PF0 on STM8L devices?Thank you.
Hi,STM32H563 chiprev Z.I am trying to work through How to start with OEMiRoT on STM32H573 and 563–Arm® TrustZone® enabled - stm32mcu using a NUCLEO-H563ZI MR1 board but using the latest STM32CubeProgrammer (2.18.0) and ST32Cube_FW_H5 (STM32Cube_FW_H5_V1.4.0).Section 2.5 is intended to demonstrate booting securely and then dropping into the System flash bootloader from non-secure application and connecting to it via UART. In my case, I use the virtual COM-port provided by the ST-Link provided on the board. I have not dared to go all the way to CLOSED but have chosen to tell the provisioning.sh that I want PROVISIONED state. I have confirmed using the SWD-connection that the TZEN is enabled after this and that PRODUCT_STATE is iROTProvisioned. I type 1 in the terminal displaying the "UI" of the non-secure app and then disconnect TeraTerm and in ST32CubeProgrammer I select connect method UART and Port = COM20, Baudrate = 115200, Parity = Even, Data
Hi,I am getting a warning "The core is locked up" and a few more (please refer to the attached image).I have also tried flashing with the hex file, but some flashing issue is observed.
i am try to interface tft lcd via LTDC using FMC, i checked that ram is working fine and test also passed , but i try to resolve lcd issue but it not resoled yes. Can someone help how to do that. i am uploading the complete project which is created. Please help how can i interface with lcd.
Hello!I am interfacing an ADS131M02 ADC to the STM32C0116-DK board using SPI for a project I am developing on live streamings. I am able to read SPI Data using the HAL polling functions (HAL_SPI_TransmitReceive), however that created unwanted delay between bytes and I tried swithing to DMA to improve performance. Configuration:All clock to max (48MHz)SPI: Full-Duplex Master, 8bits, Mode 01, DMA Tx + DMA RxPrescaler 2: BaudRate 24 MBits/s -> FAILPrescaler 4-Max: SUCCESSThis is the result with prescaler set to 4 (12 Mbits/s). (Pink: MISO, Blue: SCK), the data is correct.With the Prescaler set to 2 (24MBits/s) (Pink: MISO, Blue: SCK). The clock does not even try (the pulse is 3us)The Pseudocode I am using:/** Simplified code **/ uint8_t newData = 0; // This is never called if the SPI prescaler is set to:SPI_BAUDRATEPRESCALER_2 // With SPI_BAUDRATEPRESCALER_4 works. void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef* hspi) { newData = 1; } void main(void) { // All CubeMX ini
Problem:I recently updated to 2.0.0 of STM32CubeIDE and I encountered an issue when attempting to build for Debug. I first noticed an issue when trying to run a Debug Configuration. Before 2.0.0, it would build Debug before flashing the built firmware and starting the debugging server; pretty much default settings. Today, it started skipping the build step. I tried building Debug manually with the dropdown on the hammer icon and clicking "Debug." Instead, it built for Release. Solutions:- Right click on the project -> Build Configurations -> Build Selected... and select Debug.AND- Setting Debug as the active build and right click on the project -> Build ProjectThese solutions would build for Debug AND clear both of the above issues. As in the hammer icon -> Debug would actually build for Debug and the Debug Configuration would build before flashing and debugging.
I have a requirement to implement CAN based bootloader in my STM32h503rbt6 controller. Right now iam working on the testing of Flash functions which i have written on my own.My flash write, read and erase all are working fine.but when iam erasing flash sector wise,here comes the problem.after sector 7, from sector 8 onwards with y function i cant abe to erase.but i want full memory controll over my st controller flash.then only i can decide which part of flash i can use for my bootloader and which part of flash i can use for my application.HAL_StatusTypeDef Flash_Erase_Sector(uint32_t sector) { while (FLASH->NSSR & FLASH_SR_BSY); if (FLASH->NSCR & FLASH_CR_LOCK) { FLASH->NSKEYR = FLASH_KEY1; FLASH->NSKEYR = FLASH_KEY2; } /* Clear valid flags only */ FLASH->NSCCR = FLASH_CCR_CLR_EOP | FLASH_CCR_CLR_PGSERR | FLASH_CCR_CLR_WRPERR; FLASH->NSCR &= ~FLASH_CR_SNB_Msk; FLASH->NSCR |= FLASH_CR_SER; FLASH->NSCR |= (sector << FLASH_CR_SNB
I try to use TouchGFX with FreeRTOS, and one of the many problems I found, is thath the screen is nod refreshed because Thread (TouchGFX_Task) is waiting inside OSWrappers::waitForVSync, but VSync is disabled in configuration. I'm missing something? I followed all the steps in the tutorial (https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-configure-rtos) but seams doesn't working. I'm using an SPI display, the project is for M7 core on STM32H755
Hello, I'm looking for an example with TouchGFX and AZRTOS / Azure RTOS (and USB). I'm using a customer board with STM32H7S, LCD and USB. For USB applications, AZRTOS / Azure RTOS seems more suitable to me.Does anyone know of an example or instructions? Dear ST employees, It would be great if TouchFX could optionally generate code without RTOS.
I am working on the NUCLEO-H755ZI-Q, which contains a dual-core STM32H755 (Cortex-M7 + Cortex-M4). I configure the system clocks in CubeMX as follows: SPI1/2/3 Clock MUX: 400 MHz System Clock: Configured for high-speed operation CM7 core frequency: Correctly matches the configured value (e.g., 200 MHz / 400 MHz depending on settings) However, when I debug or read the CM4 core clock, I always see: CM4 clock = 64 MHz It does NOT increase even when I configure higher values in CubeMX. Regards, Prathiksha
Hi all,I'm looking for a way to remotely *flash* a B-U585I-IOT02A | Product - STMicroelectronics eval board using the built-in STLINK-V3.Remotely means over TCP. Can be at the same computer (e.g., to pass-through debuggers to Docker containers), or across computers.This works well with GDB for debugging, but I need this to get running with flashing, too.Questions:Is there a way to make STM32_Programmer_CLI or related ST apps connect via TCP instead of directly to the debugger? I found ST-LINK-SERVER | Software - STMicroelectronics which seems to create the TCP bridge, but do any ST tools actually use it?Are you aware of this working with free tools like openocd?I could also flash via GDB, but I'm concerned about the special parts like trust-zone, option bytes, etc. Plus, I'm evaluating Zephyr, and the default way to flash the board is to use the stm32cubeprogrammer: B-U585I-IOT02A Discovery kit — Zephyr Project DocumentationThanks.
Hy,we are about to create a Proof-of-concept system for a camera application. We want to use STM32N6 Nucleo-144 board (MB1940) Board and add a extension board to CN2, CN3, CN15 and CN16. The project needs Ethernet (which we want to use from Nucleo Board) and PSSI16 Bit (which we want to realize on the extension board).I create a CubeMX project from scratch and select Nucleo Board as starting point.I am not able to configure both, Ethernet and 16 bit PSSI. When I start from the controller itself (no Nucleo) it seems to workWhat do I miss?Best regardsHarald
I am working with the NUCLEO-N657X0-Q and I am looking for a reference project or a pointer to an example that implements USB Host Mass Storage Class (MSC).My Goal: I need to mount a USB memory stick to read test vectors, process them using the Cortex-M55, and then write the output results back to the USB stick.Current Blockers:I have searched through the latest STM32CubeN6 Firmware Package, but I haven't found a ready-to-use USB Host MSC example specifically tailored for this Nucleo board.Given the new architecture of the STM32N6 (including the high-speed USB PHY and the NPU/M55 pipeline), I want to ensure I am using the correct driver implementation for the USB stack.Does anyone have a pointer to a compatible example or a known working configuration for USB Host on the N6 series? Specifically, I'm looking for guidance on integrating ThreadX/USBX (or the classic middleware) with FileX/FatFs for this board.Any help or GitHub links would be greatly appreciated!
Sequent Microsystems designs and sells Automation Systems using Raspberry Pi. All our products use STM processors. We use about 10,000 processors per year in different configurations. Generally we do not have any quality problems, but occasionally we run into a defective lot. On a recent run of 30 prototypes using STM32G431CBT6, 50% were defective. We replaced the processors and all boards worked as expected. We buy all out processors from a Chinese distributor.We saved the defective processors and I would like to know if you would have any interest in inspecting them to find out why they entered the distribution chain, and to advise us how to avoid this problem in the future. Mihai BeffaCEOSequent Microsystems
Hello everyone,I’m working with an STM32F103RCT6 on a custom board, and I’m trying to use the built-in RTC using ST Low-Layer (LL) drivers.When I enter debug mode, the application gets stuck inside LL_RTC_Init(). It neither returns SUCCESS nor ERROR — it keeps looping internally, apparently waiting for a flag that never gets set.Here is the function from my application: void LL_RTC_Init_Custom() { // TODO: RTC clock needs to be set to LSE. On the dev kit, LSE isn't available LL_RTC_InitTypeDef rtcInit = { .AsynchPrescaler = RTC_CLK_PRESCALE, .OutPutSource = LL_RTC_CALIB_OUTPUT_NONE }; ErrorStatus status = LL_RTC_Init(RTC, &rtcInit); if (status != SUCCESS) Error_Handler(); } Inside this function, it stucks here, in this while loop below.ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx) { __IO uint32_t timeout = RTC_INITMODE_TIMEOUT; ErrorStatus status = SUCCESS; uint32_t tmp = 0U; /* Check the parameter */ assert_param(IS_RTC_ALL_INSTANCE(RTCx)); /* Di
From what I can read on this diode it is from ST for sure, and it says G beside the logo, the next line is BEX, and the last line is GP048. Any help would be appreciated
Hi,I want to design a voice announcement system using the STM32F103C8T6.My requirement is to Load WAV audio files from an SD card and play them using the STM32, without using any external DAC.I would like guidance on how to start the project using STM32CubeMX / STM32CubeIDE, including:Peripheral configuration in CubeMXAudio playback method without a DAC (for example, PWM-based audio)Basic coding structure to read WAV files from an SD card and play themAny help or reference projects would be greatly appreciated. I have design hardware also here attachment is there please go through it ...Thank you
Hi for all,I use Cube MX to generate code with CMake and then use Vscode with needed extension to compile my code.My question is : i want to use library that contain multiple folders to drive stepper motor, how to add this library to my project.best regard for all thanks for any reply
Dear Team,We are trying boot Uboot(V2025.04) on a Custom board with STM32MP157AAA3 Processor.But while booting we can see that code hangs at WDT: started Watchdog@5a002000 with servicing every 1000ms (32s timeout) and restart after sometime.We have attached the screenshot for the reference Thanks & RegardsAkshitha Pattem
Bit-banding Alternatives for Modern ARM Cores Background Information: The bit-banding feature available in ARM Cortex-M cores (ARMv7-M architecture including Cortex-M3 and Cortex-M4) provides hardware-level mapping of individual bits within a 1 MB memory region to words in a 32 MB alias region. This mechanism enables atomic bit manipulation without requiring read-modify-write operations. Specific Query: For ARM Cortex cores beyond M7 architecture that do not support the bit-banding feature, could you please provide detailed information regarding: Available alternative methods for atomic bit manipulation Performance implications of these alternatives Recommended implementation strategies for maintaining atomic operations Code examples demonstrating these alternative approaches Request for Documentation
Using latest STM32CubeMX version 6.16.1 on STM32N6570-DK. It is possible to assign peripherals like UART, I2C, etc. into multiple contexts - boot, app, memloader, but I cannot find a way to assign plain simple GPIO's into multiple contexts. CubeMX only allows to pick Free (which means none) or one of them. Needless to say, I would like to use same LEDs and buttons from multiple contexts. I don't think the RIF is the cause, not using it right now. Seems like a missing feature.
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.