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
Hi, I use the stm32f103 to read the IMU(BNO055) via I2C to get the Quaternion data, I use this library from ivyknob, https://github.com/ivyknob/bno055_stm32 The AR Anchors result is well (Head Mount Display application), I use the USB VCP to Transmit the BNO055 Quaternion data to PC or SBC, using the function CDC_Transmit_FS. But I face a problem immediately, the transmit speed is 100Hz, it will caused the USB_BUSY(race condition), I try some methods, such as add delay in the while loop, using timer interrupt and flag to limit the transmit speed, avoid using sprintf function, it could not solve this problem. As the picture shown below, Tx could write the data from STM32 to PC, but Rx could not write the data from PC to STM32 Files include the main.c and usbd_cdc_if.cCould you give me some advices to resolve this problem. Thank you Best Regard Steve
Hello,I am working on a USB Audio streaming project using an STM32F407 Discovery board. I am using the USB Device (Audio Class) and I2S3 to output audio to the onboard CS43L22 DAC (I plan to move to MAX98357 later).Problem:The PC recognizes the board as an "STM32 Audio Class" device. However, when I play audio, there is a very high level of noise/distortion. While I can faintly hear the music behind the noise, the output is dominated by a harsh "buzzing" or "crackling" sound. Any guidance or suggestions would be greatly appreciated!I2S Parameter SettingsClock configuration
Split from the Implementing a LwIP and FreeRTOS™ v1 UDP echo server on the STM32F7 series Tutorial;Moved to the forum for better visibility & discussion.@mƎALLEm Hi Sir,I am using the same code that works correctly on the development board. However, when I run the same firmware on the custom board, I am encountering an error.Is there any issue in the schematic related to Ethernet?Can I use the same libraries that are used in the Nucleo-H755ZI-Q board for this LAN?If I use the same library and it gets stuck at netif_add() what could be the issue?
Hi, I am using CubeMX 6.16.1 to work on a STM32F777ZIT6 target. However, the generated code does not have the Macro definitions of the GPIO pins in main.h. The GPIO init part IN MX_GPIO_Init() is also empty, as follows:/** * @brief GPIO Initialization Function * None * @retval None */ static void MX_GPIO_Init(void) { /* USER CODE BEGIN MX_GPIO_Init_1 */ /* USER CODE END MX_GPIO_Init_1 */ /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOE_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); /* USER CODE BEGIN MX_GPIO_Init_2 */ /* USER CODE END MX_GPIO_Init_2 */ } I also tried CubeIDE 1.19.0, have the same issue.Did I do anything wrong? I think it is really important to get this function work, as it would be cumbersome to manually init the GPIO pins. I attached the .ioc file, thanks in advance for your help.Thanks,Xiankun
Hi all! What event is generated if the MCU receives a data packet equal to the buffer value passed to the HAL_UARTEx_ReceiveToIdle_IT (or HAL_UARTEx_ReceiveToIdle_DMA) function? There will essentially be two events: HAL_UART_RXEVENT_TC and HAL_UART_RXEVENT_IDLE . But which of them will be available in the HAL_UARTEx_RxEventCallback ?
From what i've seen the Rust programming language is becoming more and more popular and since it does not rely on a virtual machine, like java or python, it could be a good option for embedded development and other low-level programs. I know that there are ways to get Rust on STM32 MCUs running, but without official support its really hard to start a series project using those tools. At this point i see it as something fun to try out and benchmark and compare with a traditional C program + FreeRTOS.Does anyone know if there are any official plans from ST to have a Rust wrapper on the existing C HAL or a complete ground-up Rust HAL? Maybe support in CubeIDE for both C and Rust?
Hello,I'm on a custom H75x board and I want to implement a stack (+ RTOS heap) overflow detection using the MPU.I placed stack, heap and RTOS heap into DTCM like this:; ____________________ __ 0x20000000 ; | | ; | ^ | -> 0x4000 = 16KB ; | C-Stack / \ | ; | | | ; |_______________|____| __ 0x20004000 ; | | | ; | | | ; | \ / C-Heap | -> 0x10000 = 64KB ; | v | ; |____________________| __ 0x20014000 ; | | | ; | | | ; | RTOS-Heap \ / | -> 0xC000 = 48kB ; | v | ; |____________________| __ 0x20020000I intend to supervise memory access above and below the DTCM memory via MPU.For stack overflow test, I call a function which allocates an array in the stack with size > stacksize, e.g.static void fTest(uint32_t len) { int8_t abFill[len]; abFill[0] = (uint8_t)0xCD; abFill[len-1] = (uint8_t)0xAB; : }If I step-debug thru these lines I can see that the SP is outside of stack memory and the array write ends up in a bus fault. If I configure the MPU then the mem fault handler is fired. Se
Hello,I am working on the stm32mp257f-ev1 board and attempting to switch from the default USART2 early crash console output to USART6. I've successfully switch TF-A and U-BOOT console to USART6 but my OP-TEE console continuously outputs on USART2.I've made sure to change the serial0 alias from USART2 to USART6 in the OP-TEE device tree (as I've successfully done in the TF-A device tree) and I've also followed the directions to change the header file stm32mp2_def.h For USART6, I've changed the early crash console in stm32mp2_def.h to the following:#define STM32MP_DEBUG_USART_BASE USART6_BASE#define DEBUG_UART_TX_GPIO_BANK_ADDRESS GPIOF_BASE#define DEBUG_UART_TX_GPIO_BANK_CLK_REG RCC_GPIOFCFGR#define DEBUG_UART_TX_GPIO_BANK_CLK_EN RCC_GPIOxCFGR_GPIOxEN#define DEBUG_UART_TX_GPIO_PORT
Im trying to use the HAL_Delay function but it seems like to code does not get passed this function. I have no clue what to even check to figure out what the problem is. I have attached the main fail to this post.
On AN4879, STM32N6 is marked as Type E (Universal serial bus full-speed host/device interface) But actually it has 2 HS OTG with phy as high-end line up (2* Type D)
Hi! I’m starting design of a new board, on which I’d like to use an stm32h7 device. My board will also include an audio codec and usb hs phy.Historically I’ve used crystals to drive HSE of the mcu, but some reference designs I’ve been studying show the use of cmos oscillators to drive the clock. I am curious about the trade offs of this, or how/when I should prefer a crystal over an oscillator?thank you!
I am designing a 4 layer PCB which uses an STM32L433 and working on the layout for the LSE and HSE crystals. I referred to the application note AN2867 for guidance, but I am confused by the isolated ground plane underneath the crystals as shown in Figure 14... https://www.st.com/resource/en/application_note/an2867-guidelines-for-oscillator-design-on-stm8afals-and-stm32-mcusmpus-stmicroelectronics.pdf 1. How is the isolated ground plane supposed to be connected to the ground net ? 2. Do all inner layers need an isolated ground plane ? At the moment, the isolated ground plane is only on inner layer 1 and its ground connection is made by the vias on the guard rail to inner layer 2. Below are screenshots of the current implementation. The screenshot below shows the top layer (signals in red) and inner 1 layer (ground in green).... The screenshot below shows the top layer (signals in red) and inner 2 layer (ground in orange).... The
Hello,I am returning to STM32 development after about two years and I am preparing a new project that will handle multiple tasks using several peripherals.I have installed STM32CubeIDE version 2.0.0. The installation completes without errors, and I am able to create a new STM32 project. However, after the project is created, the .ioc file does not open
I have added an external watchdog STWD100 to an STM32L433, but want to check that I have implemented it correctly. See schematic below.... The STM32 reset pin has a reset button circuit (copied from the Nucleo development board) and an ST Link programming connector (tag connect).The watchdog needs to work in combination with the reset button and programmer.The STM32 uses standby and shutdown low power modes, so I cannot use the STM32 internal watchdog as I need to disable the watchdog when in these low power modes.
Hi,I am trying to understand and test secure boot on STM32MP1. I was able to compile and boot unsigned tf-a. boot failed as expected as it is not verified.generated keys.Now how to burn these below hash file? can we burn into flash and test without using OTP for development and POC?publicKeyhash.binThank you.
Hello STM community, I am currently working on a project that involves connecting a PS5 controller to an STM32 microcontroller. I would like to inquire about the feasibility and potential approaches for achieving this integration. Specifically, I am interested in: Whether the STM32 microcontroller supports USB host mode and is capable of communicating with USB HID (Human Interface Device) peripherals such as the PS5 controller.Any available libraries, examples, or resources that could help with implementing USB host communication and interfacing with the PS5 controller on the STM32 platform.Any considerations or challenges to be aware of when connecting and communicating with the PS5 controller, such as protocol compatibility, power requirements, and data handling.If anyone has experience or insights regarding this topic, I would greatly appreciate your input and guidance. Thank you in advance for your assistance. Best regards,Hirani Bhavik.
Hi!In version 4 of the reference manual for STM32U0, it is suggested that BOR is enabled and on Level 3 from the factory.Is that correct?I'm currently working on an construction running @ 2V, so it would never start up, if so. And when I read out the Option Bytes on a new MCU, BOR is disabled? https://www.st.com/resource/en/reference_manual/rm0503-stm32u0-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
利用Opus在STM32WB上实现BLE全双工语音流 | 新闻中心 | STM32/STM8 | MCU单片机 | 意法半导体STM | STMCU中文官网 The project in this link is encountering compilation errors. *This post has been translated from Chinese to comply with the ST Community guidelines.
I have some text that should not be translated.If a translation field in the table is empty, is there a way to make it automatically display the text from the first translation box, instead of having to copy and paste the same text into every box?
Edited you post for the Book title in French. Hello, We are pleased to inform you of the publication of a new technical book dedicated to STM32 microcontrollers. Written by three professors at INSA Toulouse (engineering school, France), this book is available in French and English: Programmation des systèmes embarqués. Application aux μcontrôleurs STM32F10x Microcontrollers - Vincent Mahout, Thierry Rocacher, Guillaume Auriol – ISBN 13: 978-1-83612-004-9 – ISTE Editions – 2024 Programming of Embedded Systems: Applications to SM32F10x μControllers - Vincent Mahout, Thierry Rocacher, Guillaume Auriol – ISBN 13: 978-1786309518 - John Wiley & Sons Inc, 2025 Designed with an educational approach built on 20 years of experience in the field of embedded systems, this book combines essential theoretical foundations with structured and rigorous practical application. It uses a common thread example to illus
I generated a project using STM32CubeMX for the STM32N6570-DK board.Steps performed:Generated code using CubeMX (default configuration)Imported project into STM32CubeIDEBuilt the project successfully (no build errors)Attempted to run/debug the applicationDuring programming / start of execution, the debugger stops with the following message:Break at address “0x18003A1A” with no debug information available, or outside of program code
Hi,hope you doing good.We are currently using NUCLEO-L412RB-P along with X-NUCLEO-60K1A1 for testing. We are attempting to perform USB tunneling with the following sequence:1.NUCLEO-L412RB-P is connected to X-NUCLEO-60K1A12. X-NUCLEO-60L1A1 part and peripheral lines are connected to NUCLEO-L412RB-P.3.X-NUCLEO-60R1A1 part of board is powered up.4.A pen drive like device is connected to the X-NUCLEO-60R1A1 part of board.We tried debugging the sequence for USB TUNNELING using the example code, however we are unable to achieve the expected result.could you please give us resolving for this issue?Thank you.
I am using EVSPIN32G4 DUAL and observed the following behavior.When calling:LL_OPAMP_Enable(OPAMPx); the OPAMP output immediately shows about 208 mV.I measured this voltage at TP25.This behavior occurs even though DAC3 is completely disabled.After calling LL_OPAMP_Enable(), I checked the DAC3 registers and confirmed that: All related DAC_CR and DAC_DHR12R registers remain set to zero. I checked these registers because DAC3 Channel 2 is configured as the OPAMP minus (−) input, as shown in the configuration below. My questions are:1. Why does the OPAMP output show approximately 208 mV when the OPAMP is enabled ,even though DAC3 has no value configured and is fully disabled?Thank you.Best regards,Pelino
Hello,I've developed custom hardware using the STSPIN32G4 MCU and I'm encountering an unusual motor behavior that I'm hoping to get some insight on.Issue : When running the motor for the first time, it begins vibrating after approximately 2-3 minutes of operation. I'm using the Motor Control Pilot application to manage the motor and control its speed.Observation: If I stop and restart the motor after this initial vibration occurs, it then runs continuously for 24+ hours without any issues. Additionally, when I test with the ST development board (EVSPIN32G4), the motor operates perfectly from the very first start—no vibration issues at all.Question: Could you provide any insights into what might cause this type of behavior? I'm particularly curious why the issue only appears on the initial startup with my custom hardware, but not on subsequent runs or with the official dev board.Any guidance would be greatly appreciated!
Dear Team,I am currently working on a motor control project using the STEVAL-IPMM15B, NUCLEO-G474RE, and X-NUCLEO-IHM09M2 evaluation boards.After referring to the user manuals, I connected the boards as per my understanding and powered the system with the following supplies:375 VDC and 20 VDC to the STEVAL-IPMM15B12 VDC to the VIN pin of the NUCLEO-G474REUpon powering the setup, I observed that the NUCLEO-G474RE was drawing approximately 0.9 A, and the onboard LDO temperature rose to around 95°C, as observed using a thermal camera. To prevent any potential damage, I immediately powered off the system and disconnected all the boards.Subsequently, I tested the NUCLEO-G474RE independently using STM32CubeProgrammer, and the board programs and operates normally when used standalone.At this stage, I would appreciate your guidance on:The correct interconnection between STEVAL-IPMM15B, NUCLEO-G474RE, and X-NUCLEO-IHM09M2The recommended power supply scheme, including appropriate voltage levels
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.