Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,I am working on the NUCLEO-WB55RG. I have updated the FUS to v2.1.0.0 and then loaded the stm32wb5x_BLE_Stack_full_fw v1.23.0. This worked fine.After that, I wanted to load the stm32wb5x_BLE_Stack_full_extended_fw.bin, but now I always get the : Warning: FUS_STATE_IMG_NOT_FOUND message. I have this message when trying to update the FUS and the stack. I also have an error when trying to use the "Firmware delete" option:I already tried to mass erase the chip, already tried to flash previous FUS version, nothing worked... I always have the FUS_STATE_IMG_NOT_FOUND warning.This is my current state: I have no read protection (option byte set to AA). I am using CubeProgrammer v2.14.0 and STM32Cube_FW_WB_V1.23.0. Support would be appreciate to unlock my device ... Already saw some similar posts, but none of them were helpful for me.Thanks :)
So, the situation has been pretty uncomfortable and frustrating.I'm trying to implement the code to make the USB-C on the STM32U5A9J-DK work so that my PC recognizes the board as a Device.I first started to try to implement it with my currently running code with ThreadX and TouchGFX, but it didn't work.So, I started with a clean project, directly from CubeMX with just the USB OTG switched ON. No custom code, just the one generated by CubeMX.Tried to attach the board to my PC, no device appeared on my PC, and, despite the breakpoint set on the only line of code inside OTG_HS_IRQHandler, when attaching the board to the USB, the interrupt doesn't fire.I've checked step by step if the initialization and HAL_NVIC_SetPriority(OTG_HS_IRQn, 0, 0); HAL_NVIC_EnableIRQ(OTG_HS_IRQn); are executed, and everything seemed ok.So, my question is, because there's no real documentation on how to implement the USB handling with the STM32 microcontroller, how am I supposed to make it work?This is
Hello, I use MCWB 6.4.0 & Motor Pilot 6.4.0, STLINK V3 MINIE. Motor Pilot can not discover STEVAL-CTM010V1 board. And I find that MCU can receive datas at buadrate 1200 to 14400, but failed at 19200 or more fast . Does the STEVAL-CTM010V1 support 115200 baudrate ? Or PC817B doesn't support this baudrate? this issue seems like this one, https://community.st.com/t5/stm32-mcus-motor-control/steval-ctm010v1-board-can-not-work/m-p/241708#M4301
Hello, I'm facing some weird problem that I can't solve myself. I'm trying to get to work a TCP client using LwIP. Now the weird part: Everything works just fine in debug mode when I run the program. Connection is being established, and communication works as intended. But when I run the program without debug mode, I get ERR_RTE error. I searched the internet and couldn't find an answer to my problem. I suppose the code is fine due to the fact it works in debug mode. Program generates error in tcp_connect function at netif = ip_route part. Here is the code: uint8_t TCP_ClientInit() { struct tcp_pcb *tpcb = {0}; err_t res = 0; tpcb = tcp_new(); if(tpcb != 0) { ip_addr_t sourceIPAddr; IP_ADDR4(&sourceIPAddr, 192, 168, 0, 111); res = tcp_bind(tpcb, &sourceIPAddr, 1500); ip_addr_t destIPADDR; IP_ADDR4(&destIPADDR, 192, 168, 0, 15); res = tcp_connect(tpcb, &destIPADDR, 1400, tcp_client_connected); // this returns error ERR_RTE } else { return HAL_ERROR; } if(re
I have a Nucleo F746ZG board and I've implemented a small UDP echo server in LwIP standalone mode. (No RTOS)If I hit 'debug' and as soon as the code stops on the first instruction hit 'continue' then it works perfectly.If however I just run the code, (no debugging) or reset the board it does not work. It sits in a loop patiently waiting for a DHCP address. I know this because I use the three LEDs to show status. Here is my main loop code: int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* Enable the CPU Cache */ /* Enable I-Cache---------------------------------------------------------*/ SCB_EnableICache(); /* Enable D-Cache---------------------------------------------------------*/ SCB_EnableDCache(); /* 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 sys
Hi, I have created a program to send UDP using NetXDuo on a Nucleo-H755ZI.I used the URL below as a reference.Creating a dual IPv6 & IPv4 NetXDuo UDP application for STM32H7 using CubeMX I checked the operation in debug mode and could see that it is sending UDP with Wireshark.However, when I unchecked “Set breakpoint at:main” in the debug properties and checked without breakpoints, no UDP was sent.The version of STM32CudeIDE is 1.18.0, X-CUBE-AZRTOS-H7 version is 3.3.0.How can I send UDP in debug mode without breakpoints or send UDP in RUN mode?If anyone has a solution, please let me know. STM32H755ZITX_FLASH.ld could not be uploaded, but the following memory is allocated. .tcp_sec (NOLOAD) : { . = ABSOLUTE(0x24030000); *(.RxDecripSection) . = ABSOLUTE(0x24030080); *(.TxDecripSection) . = ABSOLUTE(0x24030200); *(.NetXPoolSection) } >RAM_D1 AT> FLASH
I'm attempting to use I2S to drive the WM8978 for audio recording (the SAI pins are already occupied, so please don't suggest switching to SAI). I've ported the well-tested WM8978 driver code from the F4 series and configured I2S DMA to receive data. However, I haven't been able to receive audio data—there's only clean background noise. I've tested the waveforms at the I2S interface, and here's how I've configured I2S in my code:<i2s config> hi2s3.Instance = SPI3; hi2s3.Init.Mode = I2S_MODE_MASTER_RX; hi2s3.Init.Standard = I2S_STANDARD_PCM_SHORT;//I2S_STANDARD_PHILIPS; hi2s3.Init.DataFormat = I2S_DATAFORMAT_16B; hi2s3.Init.MCLKOutput = I2S_MCLKOUTPUT_ENABLE; hi2s3.Init.AudioFreq = I2S_AUDIOFREQ_8K; hi2s3.Init.CPOL = I2S_CPOL_LOW; hi2s3.Init.FirstBit = I2S_FIRSTBIT_MSB; hi2s3.Init.WSInversion = I2S_WS_INVERSION_DISABLE; hi2s3.Init.Data24BitAlignment = I2S_DATA_24BIT_ALIGNMENT_RIGHT; hi2s3.Init.MasterKeepIOState = I2S_MASTER_KEEP_IO_STATE_DISABLE; <wm8978 config>
Hi,I am connecting ESP32 with STM32G474RET6 Nucleo board via SPI. I have configured SPI in DMA mode to transfer data. With NSS pin enabled for chip select I can see the pin remains low always during transmission of data and also in idle. So that I could not communicate with ESP32. Because of that I have to do manual GPIO write high and low in the code and that works. How to automate this NSS pin (chip select) to work, Kindly help me with this. Thanks in Advance
I am on an H573 and trying to rd/wr a file on a fat32-formatted USB memory stick using the mass storage controller. To jump right into the problem (details further below), I am trying to understand what to do about this block when I am running in standalone mode. This snip comes from the example code which is in RTOS mode. I want standalone mode. --Background--As a starting point, I grabbed the Ux_MSC_Host example, and got that working with no difficulties on the H573 dev kit MB1677. That demo uses FileX, UsbX, ThreadX, and some power delivery peripherals. Then I started some changes:I now have hardware that does not have power delivery. There is a 5v rail turned on and powering the memory stick.For various reasons I do not want ThreadX enabled; so: I setup FileX and UsbX, and added some short snips in main.c, to finish initialization and loop on _ux_host_stack_tasks_run.With this, I am able to enumerate and get into the ux_host_event_callback. But... When
On our custom board running STM32U5G7 I have set up a project using the same configurations in the .ioc file of the STM32U5G9J-DK2 but obviously with our pinout and package. The project compiles and runs, it does display correctly on the sim but there is no image on the LCD (I have previously verified the working LCD by writing to the framebuffer in board bring up. (https://support.touchgfx.com/docs/development/board-bring-up/board-introduction). I can see with the debugger that the hal.taskEntry() is called. But setting breakpoints in touchGFX designer code such as screen setup does not run. void touchgfx_taskEntry() { /* * Main event loop. Will wait for VSYNC signal, and then process next frame. Call * this function from your GUI task. * * Note This function never returns */ hal.taskEntry(); // <-- this line does get executed } The FreeRTOS wrappers are generated by TouchGFX and I have enabled the relevant interrupts for the LTDC and GPU2D.How would I go
Hello community!On March 18, we launched a TouchGFX Contest that had for goal for us to see our community's skills and creativity. This contest ended on May 2.We received several interesting projects, and it is now time to announce the winners! Our heartfelt congratulations to : @HTD : Keyboard @Glaglagluglu : Password @unsigned_char_array : screensaver_moving_logo_widget @Noutoi89 : Keyboard @u_2man : TouchGFX_MessageBox Prizes have been sent and should arrive soon (if they have not already ;)). To determine if this type of event interests you, we would appreciate your feedback. Please take a moment to answer this short survey (2 minutes).Congratulations to all participants, and enjoy these new containers! :)
My project is using a GPIO to enable/disable a buzzer on a software timer. This boils down to a call to HAL_GPIO_WritePin(), which does GPIOx->BSRR = pinmask (0x80 in this case) to enable the buzzer. This works as expected most of the time. There are multiple calls to this function on the same pin on the same port which work correctly. And then... Boom! I have a very repeatable situation in which the register assignment immediately causes the device MCU to reset. I have implementations for hard faults, bus faults, and so on, but the code doesn't seem to go there (breakpoint instructions in place).It turns out that this fault does not happen unless the debugger is connected. The reset does not disconnect from the debugger. I'm not stepping the code to make this happen.What are possible causes for this error? I previously had an unrelated fault which only happened while stepping the code (a race condition tripped by a missed interrupt). While it was not an issue for the app
I’m currently working with the STM32F746NGH6 Discovery Kit and trying to interface it with the MT25QL128 NOR Flash via the QUADSPI interface, with the goal of creating an external flash loader. I’m using the official STMicroelectronics driver from GitHub: https://github.com/STMicroelectronics/stm32-external-loader/tree/896df94da5fa6dc3532d302c8f942f40bdb22bd1/QSPI_Drivers/MT25QL128AMT25QL128A QSPI Driver – ST GitHub I’ve tried using this code without any changes. When I run my project, the CSP_QUADSPI_Init() function always returns HAL_ERROR.As a result, the flash operations like erase, write, and memory-mapped access do not execute. I’ve confirmed this by adding debug messages through UART – the initialization fails right at the start. #define SECTORS_COUNT 100 #define MEMORY_SECTOR_SIZE 4096 // or as per your flash config uint8_t buffer_test[MEMORY_SECTOR_SIZE]; uint32_t var = 0; unsigned char DisplayBuffer[100]; if (CSP_QUADSPI_Init() != HAL_OK) { sprintf
Hello everyone,Please review the eMMC and LCD interface connections designed using the STM32H7A3ZIT6Q MCU.The schematics are attached. I would greatly appreciate it if anyone could review the schematic and provide feedback. If there are any issues, missing components, or design improvements you can suggest, I’d be thankful for your input.
Hello community, I have thiss board, the first one I'm designing from scratch on stm32 platform. I am able to connect and program just fine to some of the MCUs, but for the vast majority, the chip somehow gets fried before I can program it: I can't detect the MCU at all with cube programmer. Here is the relevant part of the schematic I'm using, is there anything I should add? This board connects to a programming board which is in turn connected to the ST link. MCU is STM32G0B1
Hi, The SPI communication between an ESP(Master) and the STM(Slave) is failing when i configure the SPI clock at 10MHz.I have STM32F429ZIT6 DISC1 board and i have used SPI3 as slave, the SPI3 is on the APB1 bus which is configured at 45MHz PCLK.The communication is well and good at 8MHz SPI_CLK but when i configure it at 10MHz SPI_CLK it is failing, the control is stuck at : if(HAL_SPI_Receive(&hspi3, buf, sizeof(buf), 0xffff) != HAL_OK){ Error_Handler(); } I'm unable to find out what may be the issue, as the slave's PCLK is 2xSPI_CLK, it should work right?
Hello!I just received some custom PCBs with the STM32H747BIT6 MCU, but I’m having trouble connecting to it. I’m using a J-Link V12 and initially tried to establish the connection with jlinkexe. It correctly detects the voltage, but when attempting to connect, I always get the following error: jlinkexe SEGGER J-Link Commander V8.46 (Compiled Jun 26 2025 07:49:05) DLL version V8.46, compiled Jun 26 2025 07:48:31 Connecting to J-Link via USB...O.K. Firmware: J-Link V12 compiled Apr 1 2025 10:02:39 Hardware version: V12.00 J-Link uptime (since boot): 0d 00h 00m 44s S/N: xxxxxxxxx License(s): RDI, FlashBP, FlashDL, JFlash, GDB USB speed mode: High speed (480 MBit/s) VTref=3.335V Type "connect" to establish a target connection, '?' for help J-Link>connect Please specify device / core. <Default>: STM32H747BG_M7 Type '?' for selection dialog Device> Please specify target interface: J) JTAG (Default) S) SWD T) cJTAG TIF>S Specify target interface speed [kHz]. &l
"MotorControlProtocol: ASPEP_RESP ERROR:CMD_NOK" An error code occurs when the ABZ encoder motor runs the Position Control Mode command.1.Software Information:Motor Control WorkBench Version 6.3.2Project generationSETTINGS:STM32CubeMX Version: 6.14.1Target Toolchain: ST STM32CubeIDEFirmware Package Version: STM32 FW V1.11.5 (Recommened)Drive Type: HAL2.Hardware Information:Control Board: NUCLEO-F302R8Power Board: X-NUMCLEO-IHM07M1Motor Type: BLDC Motor with ABZ Encoder3. Error Code Trigger Description:When the Target Position Command is sent for the first time, the motor will rotate and no fault will occur.When the Target Position Command is sent for the second time, this Error Code will be triggered.When the Target Position Command is sent for the third time, this Error Code will be triggered again.
how i am config ethernet in the stm32h753xi6 board ?
我在使用cubeide时一直报错,下面是详细的报错信息:Description Resource Path Location Typefatal error: SDL2/SDL_render.h: No such file or directory HALSDL2.hpp /llwstm32/Middlewares/ST/touchgfx/framework/include/platform/hal/simulator/sdl2 line 26 C/C++ Problemmake: *** [Middlewares/ST/touchgfx/framework/source/platform/driver/touch/subdir.mk:19: Middlewares/ST/touchgfx/framework/source/platform/driver/touch/SDL2TouchController.o] Error 1 llwstm32 C/C++ Problemmake: *** Waiting for unfinished jobs.... llwstm32 C/C++ Problem'destroy' defined but not used [-Wunused-function] genx320.c /llwstm32/Drivers/product-genx-ctrl/src line 188 C/C++ ProblemProject 'llwstm32' has no explicit encoding set llwstm32 /llwstm32 No explicit project encodingProject 'product-genx-ctrl' has no explicit encoding set product-genx-ctrl /product-genx-ctrl No explicit project encoding路径都添加了,不知道是什么原因引起的,使用的是STM32F7146G-DISCO
Hello,I'm working on implementing USB UVC on the STM32N6570-DK board. I generated a project using STM32CubeMX only for FSBL and added the following files manually from the ST USBX example project1 . ux_device_video.c and .h2 . ux_device_descriptors .c and .h3 . app_usbx_device .c and .h4 . app_azure_rtos.c and .hAll files were taken from this example:https://github.com/STMicroelectronics/STM32CubeN6/tree/main/Projects/STM32N6570-DK/Applications/USBX/Ux_Device_Video/Appli However, I did not use USBPD/UCPD in my CubeMX configuration. The ST example uses both USBPD and UCPD and also includes a separate FSBL and Application.Issue:When I flash the my project to the STM32N6570-DK board, the USB device is not enumerating as a UVC device it does not appear in the Windows Device Manager at all.I previously tested a similar setup on an STM32U5 device, and it worked — the UVC device was properly enumerated.Questions:Is UCPD/USBPD required for USB UVC to work on the STM32N6570-DK board?Could
merhaba topluluk. elimde bir adet f303re kartı ve bir adet ıhm08m1 kartı var.foc kontrol ile bir bldc motor sürmem gerekiyor. ancak bazı sorunlarla karşılaşıyorum.1)nominal deviri 1000rpm girdiğim halde motorpilot arayüzünde 2300rpm e kadar çıkıyor ve hızı kontrol edemiyorum.2)elimdeki güç kaynağı max 5A akım verebiliyor. motor max 24A akım çekiyor. overvoltage hatası alıyorum.bu sorunlarımın sebebi nedir?
for this motor controller X-NUCLEO-IHM05A1. i downloaded zip file from website X-CUBE-SPN5. then after i tried implement with the stm32cubeide. i have a STM32Nucleof401RE microcontroller. I don't understand how to use this file can anyone please guide me with this. i know that i can directly control the motor controller with the pwm, and gpio pin. but i have this so i want to use this and make it simple.
Hello ST Community,I am currently using the EVSPIN32F0251S1 inverter board to control a BLDC motor in an elevator door control application.For this use case, I need to obtain precise motor rotation counts using Hall sensor feedback. While working on this, I found that the ST Motor Control Workbench does not provide a direct method or setting to access Hall sensor counts. To work around this, I manually modified the hall_speed_pos_fdbk.c and hall_speed_pos_fdbk.h files and was able to retrieve counts using HALL_M1.RevolutionCounter. However, whenever I regenerate the project through Motor Control Workbench, all these custom changes are lost. (i get reference from this post: bldc-motor-with-hall-sensor-keep-track-of-number-of-revolutions).Could you please advise on the recommended method to implement and retain Hall sensor count functionality, especially in a way that is compatible with project regeneration f
Hello ST Community,I am working on a project using the STM32H753VIT6 and have already successfully implemented CAN FD communication using the FDCAN peripheral and HAL drivers.Now, I would like to implement CANopen FD on this setup.My questions:What libraries or open-source stacks are available for CANopen FD that can be integrated with STM32 (CMSIS/HAL based)?What are the hardware or timing considerations for running CANopen FD at higher bitrates? My transceivers are currently non-isolated.How should I structure the implementation of:Object Dictionary (OD)USDO (Universal Service Data Object)PDO (Process Data Object)Is there a reference example or demo project for CANopen FD (not classic CANopen) with STM32?Any guidance, sample code, or links to documentation would be greatly appreciated.Thanks in advance!—Pavan
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.