Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I’m working with an EVSPIN32G4 demo board and trying to get it running with a Bodine BLDC motor in a sensorless (hall-less) configuration. I’ve got firmware that appears to work initially, but after pressing RESET or cycling the 48 VDC power, I immediately get an “Over Current” fault in Motor Pilot. When I click “Acknowledge Faults” and then press “Start”, the Over Current error comes back right away. I’m still new to this platform, so I’m not sure what’s causing the issue. I’ve attached my Motor Workbench project and the motor datasheet — if someone could take a look and provide some guidance, I’d really appreciate it. Thanks in advance!
Hi everyone . I have timer problem again. I use STM32G431KBT6. I'm using timers. timer 3 for pwm pulse direction servo motor and timer 8 for pwm speed control dc motor. But when start timer8 pwm, timer 3 is starting same time. What could be the reason for this? My timers set:
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hey Folks, I am writing firmware on a STM32U5A5ZJ-Q board, I am using FreeRTOS, and am running into some issues with SysTick, originally noticed when HAL_Delay() would just hang. I was also able to verify that uwTick does not change (this may be strange, because SysTick->Val does change as expected). I read in some other forums that WARNING:When RTOS is used, it is strongly recommended to use a HAL timebase source other than the SysTick. The HAL time base source can be changed from the Pinout tab under SYS. My understanding is that an RTOS that has SysTick_Handler implemented overrides the __weak handler that exists in the generated code and thereby forces things using SysTick as their timing source to a low priority. Since I already have my code written, so can I just updat
I have a question about PVD.I have this main.c file. My interrupt function void TM_PVD_Handler(uint8_t status) won't execute when the power goes off. Why? In this case, I'm sending a message to the UART to see if my computer recieves the message before the CPU dies due to the lack of power. Have I forgot something? According to this example below, it's made for STM32F7, STM32F4 and STM32F0 series. I think this will work for STM32F1 as well. Correct me if I'm wrong.I'm using STM32F1 series. /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with thi
I am using STM32F469I-DISCO interfaced to a custom display operating in DSI-Video Burst mode.I'm using TouchGFX, all compiles ok, however I am getting a HardFault_Handler error relating to TouchGFX::TextProvider as follows. The memory is organised as follows.I think the fault may relate to text object(s) with related wildcards that have been deleted from within TouchGFX designer. I am using TOUCHGFX V4.26.0 but had the same problem with V4.25.0
Hello,I have been trying to setup Ethernet on a NUCLEO-H563ZI to no avail. As recommended I am using the NETXDUO middleware. When setting up my project with CubeMX I enable DHCP but the MCU never seems to send any DHCP packets (Checking through wireshark). This is with completely unmodified code provided by the NX Core Init which generates the nx_app_thread_entry. After some further debugging it seems like the program hangs while waiting for the DHCP Semaphore which says that an IP Address is ready. Specifically this line:tx_semaphore_get(&DHCPSemaphore, TX_WAIT_FOREVER) != TX_SUCCESS Memory is not an issue in this case as those have been previous issues. I now assign well over 20kb for tx_app and nx_app.This sample program was also tested on a fresh board out of the box. I also have another script that seems to work halfway with messages for DHCPDiscover and DHCPOffer.Bellow is the main code for that program. In this case I don't use the pre-generated nx_app_thread. 
Hello everyone, Im trying for along time to try to create a sime UDP server that will handle packets reception on a BSD socket using the api. I took the following example:https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects%2FNUCLEO-H743ZI%2FApplications%2FLwIPAnd then instead of creating a task for the netconn i did one for a udpserver. Also tried to look at: https://github.com/stm32-hotspot/STM32H7-LwIP-ExamplesBut its support only old MX & HAL @Adam BERLINGER maybe can guide of how to integrate to the new MX and HAL? Im able to read packets one by one or only a few when sending in a burst. But if sending lets say 10 packets in a burst from python to the ST.The ST isnt capble of reading these packets. It would be awosome if one can try to help me debug this issue. Thanks alot, Ariel.
Hello! I want to implement secure boot / secure firmware install on my STM32u5A9 custom board. I am starting by trying to modify the SBSFU example code from B-U585I-IOT02A example project to run on my board. I followed the instructions in the README to tailor the project for STM32U5A9. I also made the following changes:My debug terminal is connected to UART5 so I modified the com.h file (attached snippet below)I also changed TFM_TAMPER_ENABLE in boot_hal_cfg.h to NO_TAMPER as I was initially having trouble with that engaging during my testing.I uncommented the MCUBOOT_EXT_LOADER in Linker/flash_layout.h as our custom board has an external flash chip but its pinout is different than the standard dev boards and I have not gotten any of my attempts at a custom loader to work. I’m trying to get secure boot working without an external loader first.Running SBSFU_Update.sh (as is from the B-U585I-IOT02A project) results in successful programming and verification of sbsfu_app_init.b
We have an application running on an STM32WB55M. This user application makes use of standby mode, and the device is able to exit it when the configured pin changes state.However, once the SBSFU is integrated with the BLE_ota application, the user application works correctly, we can perform OTA updates, but when entering standby mode, the device does not wake up/resets.In another different product, where standby mode is not used, everything operates correctly.What could be causing the system not to exit standby mode when the SBSFU is integrated? I know the system restarts upon exiting standby mode, do I need to configure something before entering standby mode? (Restarting the application with the 'NVIC_SystemReset' function, as I do when entering OTA mode, works correctly).Thank you in advance.
Hi everybody,I've two cards with a STM32F446 on them.My first one works very well, the µc starts a each time.On the second card, the µc starts sometimes (I have a LED on my card that blinks at start).I've checked Vcap (2.2µF), the 3V3 rising (1ms), boot is well connected to GND with a 10k resistor.I cannot see what happens in debug mode, because in debug mode , it starts everytime.Is there a mean to check something else ?I don't understand what happens.If you have some ideas...Thank you.
Hi Everyone,I am facing an issue with my MCU entering low-power mode.My code works fine when tested separately. I can successfully put the MCU into STOP 0 mode and wake it up through an EXTI line interrupt, but only when the Window Watchdog (WWDG) is disabled.However, when I enable the WWDG, the MCU seems to get stuck at the WFI instruction when trying to enter STOP mode. It doesn’t proceed further or wake up through the EXTI line Interrupt. The only recovery option is a power cycle.Has anyone faced a similar issue, or know what might cause this behaviour when WWDG is active?I am open to sharing the source code.Any suggestions or pointers would be appreciated!
Does anyone know of an existing external loader for the NUCLEO-H7S3L8 that uses the 4-bit QSPI rather than the more conventional 8-bit. Because of shared pins on the demo board, I needed to use 4-bit QSPI for my build.
Hello STM32 community,I’m working on a project where I need to temporarily disable/enable the watchdog before entering into low-power/sleep modes, but I want to avoid resetting the MCU.Here’s the context:I’m using an STM32U385 MCUI know that watchdog configuration can be changed via option bytes, but changes only take effect after a reset.In my scenario, performing a reset is not acceptable because I need the MCU to resume execution seamlessly after sleep.Problem:The Independent Watchdog (IWDG) starts automatically once configured and cannot be stopped at runtime.I want to enter sleep modes (like Stop or Standby) without being reset by the watchdog, but also in some scenarios watchdog needs to be run in sleep modes.What I’ve considered:Using HAL FLASH option bytes to set IWDG to software mode — works, but requires a reset.Question for the community:Is there a hardware-supported way to enable/disable the IWDG during sleep without resetting the MCU?Any insights, examples,
Hi,I just stumbled upon something interesting (at least for me). For my current project I need to store data from a float array with two elements in an uint8_t array with eight elements. I use the following code to archive this:pnt = (uint8_t*)out; for(i = 0; i < 8; i++) { uart_tx_buffer[i + 3] = *(pnt + i); }While it technically works, the bytes from each float element get stored in the buffer in a reversed order. I can give you an example from what I am looking at in the debug session. The float array has the values out = {0x41bef708, 0x4478a1d7}. So the result I exacted for the buffer is uart_tx_buffer = {xx, xx, xx, 0x41, 0xbe, 0xf7, 0x08, 0x44, 0x78, 0xa1, 0xd7}. But in reality it looks like this uart_tx_buffer = {xx, xx, xx, 0x08, 0xf7, 0xbe, 0x41, 0xd7, 0xa1, 0x78, 0x44}.At first I thought the values in the buffer are completely random because I made a mistake. It took me a while to figure this out. What is the reason why this happens? Can I avoid this, because now
Hi,I am implementing PTP slave on bare metal H743II with firmware 1.12.1 and LwIP 2.1.2.Timestamps for transmitted PTP datagrams can be received by implemented a callback function HAL_ETH_TxPtpCallback(). The callback is called from stm32h7xx_hal_eth.c:HAL_ETH_ReleaseTxPacket(). There was no call to HAL_ETH_ReleaseTxPacket(), so I added a call to it after calling udp_sendto().The callback function was never called because HAL_ETH_ReleaseTxPacket() never found a packet in use with timestamp in the descriptor. I copied the timestamp handling from HAL_ETH_ReleaseTxPacket() to HAL_ETH_Transmit(). That seems to work, but is a workaround that probably conflicts with the design.Any suggestion for a better solution is appreciated.
i am using LoRaWAN_End_Node_FreeRTOS in STM32WL55JCIX in that for send the data i used APP_TX_DUTYCYCLE and set 43200000(12 hours) for send data to gateway there is delay getting of 20 to 25 minutes every data send is there any solution for that ???
Hello Team,I want to store encryption Key - 4 byte into Option Byte OR any other memory Except in-built Flash Memory.Is it possible to write in Option Memory ? If not what could be the other option ?
Hi Michel I am working on an Audio project using STM32H7A3VGH6 and STM32H743VGH6. I am interested in rate conversion from 44.1K to 48K ( I have a float version ) in Int16 and the Multi band DRC mentioned above. I did find the SRC441 in the X-Cube-Audio libray though the documentation mentions support for the STM32F series. Hope this will work for the H series as well. I did not find the MB-DRC though there is a SVC code. Is this the same as MB-DRC ( the document seems to indicate it as a single band only ). Is there a link where I can get the code for this ? Rgds Edit: Moved from X-CUBE-AUDIO-KIT Audio Latency
Message:I have configured PA11 and PA12 pins in input mode, but they are not responding — I’m continuously getting a low level from the MCU side.For testing purposes, I configured the same pins as output, and they work fine in output mode.To verify hardware, I removed the MCU and checked the lines — they remain high, confirming that the hardware is OK.Please suggest the possible reason or solution at the earliest.
Hello together,like many others here, I have the problem that after a short time, the debugger closes with the error message “Failed to get status,..”.The board is the nucleo-F767ZI. It has already been mentioned in the forum that it could be due to the USB cable. But thesame cable works with an nucleo-H755ZI-Q fine.It was also written that it could be due to the settings or by the code self.Therefore i did a test and sets a breakpoint direct after start:When standing at the breakpoint, the debugger still terminates after a few seconds. Stm32Device, pollAndNotify running...Warning: Ignoring a '-' sent by client.... GDB session, device event: 4GDB session, device event: 4GDB session, device event: 2GDB session, device event: 2NVIC_DFSR_REG = 0x0000000B Stm32Device, getHaltReason, code: 4GDB session, device event: 1GDB session, device event: 1ST-LINK device status: Failed to get status, Target not responding, retrying... 3Target is not responding, retrying...ST-LINK device stat
Hello,STSELib development is under progressToday (version 1.1.4), STSELib uses some services from STM32_Cryptographic library instead of interfacing STSAFE-A120 component (for example HKDF)Is there any development planning for STSELib giving availability of next versions and their content ?Thx
I tried to download library from https://www.st.com.cn/zh/embedded-software/stsw-stm32054.html several times but failed.When I clicked download v3.5.0, nothing happened. By the way, we network is fine. Is it forbiden to download this version?
hello, I'm run a STM32H573DK in OEMiROT example.but following errors occured.[INF] TAMPER Activated[INF] BANK 1 secure flash [0, 15] : OB [0, 14][ERR] Unexpected value for secure flash protection so, I find why occurred this error. In the ob_flash_programming.bat file, sec1_end was set to 0x0E. but In the code end value is set to 0x0F end = (S_IMAGE_PRIMARY_PARTITION_OFFSET + FLASH_S_PARTITION_SIZE - 1) / PAGE_SIZE;( end = 0x1E000 / 0x2000 = 0x0F ) what is correct? what do i fix? ps. I'm using STM32Cube_FW_H5_V1.1.1
This is a question related to SPI communication.What is NSSP mode? What does it do?Also is there any documentation that explains all parameters in detail other than this
I'm trying to use 2 timers (TIM1, TIM8) in sync.Everything works OK when using same value for both timers' ARR.But drift occurs when using two different values as ARR (i.g. 3999 for TIM1 & 19999 for TIM8).What could be causing this drift? tim.c/* TIM1 init function */ void MX_TIM1_Init(void) { /* USER CODE BEGIN TIM1_Init 0 */ /* USER CODE END TIM1_Init 0 */ LL_TIM_InitTypeDef TIM_InitStruct = {0}; LL_TIM_OC_InitTypeDef TIM_OC_InitStruct = {0}; LL_TIM_BDTR_InitTypeDef TIM_BDTRInitStruct = {0}; /* Peripheral clock enable */ LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1); /* TIM1 interrupt Init */ NVIC_SetPriority(TIM1_UP_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); NVIC_EnableIRQ(TIM1_UP_IRQn); /* USER CODE BEGIN TIM1_Init 1 */ /* USER CODE END TIM1_Init 1 */ TIM_InitStruct.Prescaler = 0; TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; TIM_InitStruct.Autoreload = 3999; TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; TIM_
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.