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'm looking for an ST microcontroller that can do I2S receiving while remaining low power, presumably by keeping the core asleep and using DMA to copy I2S chunks to a buffer. I think I saw a video demo of this at some point somewhere on the website, but now I cant find it. When I say low power, I mean <1mA, preferably <200uA if possible. I assume this would be something like an M0 or M4 core.
I am new to STM32 programming.I am doing an stm32 project with STM32F407VET6 MCU, I want to implement a music player that can read a list of wav files from sd card and stream the music data to a external DAC chip (PCM5012a) using double buffering apporach. I have configured SDIO and FATFS with DMA enabled for perfrming the sd card interfacing and read files, which should be working normally. But the main problem is comming from I2S3 with DMA, as it doesnt continue stream subsequent audio chunks after the 1st one. Here is my i2s3 ioc configurations:I tested the playback in my main.c file, this is an abridged version:/* Includes ------------------------------------------------------------------*/ #include "main.h" #include "fatfs.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "lcd.h" #include "touch.h" #include <stdio.h> #include "sd_interface.h" /* USER CODE END Includes */ /* Private define -----------
I have purchased the STM32F469-DISCO development board. If I want to replace the chip or design my own development board, how can I use ST-Link or a serial port to flash the code?
When using SPI6 in Slave mode with TX DMA in Circular mode, the SPI FIFO is not updated with data from the DMA buffer for the first SPI FIFO size (8 bytes). Both the SPI Master and SPI Slave were debugged: The SPI Master transmits one frame. On the SPI Slave board, after checking the reception using LL_BDMA_IsActiveFlag_TC1(BDMA), the MISO data is updated. The SPI Master then checks the received data on the SPI Slave side using a breakpoint. static void MX_SPI6_Init(void) { LL_SPI_InitTypeDef SPI_InitStruct = {0}; LL_GPIO_InitTypeDef GPIO_InitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI6; PeriphClkInitStruct.Spi6ClockSelection = RCC_SPI6CLKSOURCE_D3PCLK1; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { Error_Handler(); } LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_SPI6); LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOA); LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERI
Hi all,Im using STM32F410 uart 1 to transmit and receive.I use DMA to transmit bytes. I then use TC interrupt to send a break,then push an event to an event queue to signal that the transmitter is free.void interface_uart_tx_eot_isr(if_uart_t* p) { if (p->tx_last_in_chunk) { // Transmit break at end of tx work LockFromISR(); p->uart_dev->usart->CR1 |= USART_CR1_SBK; UnlockFromISR(); // register event for more tx data p->transmit_empty_handlerI(p->event_source); } }On the same uart I use DMA in circular mode to dump incoming bytes.Im using framing error interrupt to wake up a worker to deal with the received data.For the sake of this explanation, I have three stm32f410 devices connected in a ring1Tx -> 2Rx, 2Tx -> 3Rx, 3Tx -> 1Rx.So it is possible for, eg, device 2 to be recieving data as it is sending data.This is working well except:I find occasionally that I am missing a break interrupt and I'm pretty lost figuring it out.Oscilloscope shot uart_brea
Hi; I'm trying to come up to speed with CubeMonitor. I found this video:https://www.youtube.com/watch?v=YWjvHhgqvm4and there is a third video:https://www.youtube.com/watch?v=taiRu-wZmmYbut I can't seem to find the second video, which seems kind of important to just understanding how to set up the basic project and orient onesself to the UI. Is this video online anywhere?
Has anyone had any success getting this to install into STM32CubeIDE?I get the following error Cannot complete the install because one or more required items could not be found. Software being installed: Assist AI 1.0.6.202509261754 (com.github.gradusnikov.eclipse.assistai.feature.group 1.0.6.202509261754) Missing requirement: Assist AI 1.0.6.202509261754 (com.github.gradusnikov.eclipse.plugin.assistai.main 1.0.6.202509261754) requires 'osgi.bundle; org.apache.commons.lang3 3.17.0' but it could not be found Cannot satisfy dependency: From: Assist AI 1.0.6.202509261754 (com.github.gradusnikov.eclipse.assistai.feature.group 1.0.6.202509261754) To: org.eclipse.equinox.p2.iu; com.github.gradusnikov.eclipse.plugin.assistai.main [1.0.6.202509261754,1.0.6.202509261754]I've tried finding the offending org.apache.commons.lang3 (found at maven.apapche.org) and dropping in to my plugins folder but after stopping and restarting CubeIDE the plugin is not listed in the About-Installation Detail
Hello, I have a problem with a STM32L431CC generating a circular PWM burst with the DMA. I am using the Timer1 to generate 4 PWM signals on the Pins PA8, PA9, PA10, PA11. The systemclock of the Timer 1 is 80 MHz. The frequency of the PWM signal should be 20kHz. I have attached the code snipped were i configured the GPIO, Timer and DMA in the software. I get no PWM signal from the GPIO pins. When I manipulate the CCRx registers of the Timer1 with the ST Link debugger, I am able to generate PWM signals with the correct frequency and duty cycle. I suspect that the Timer1 do not make a DMA request and I am not able to find the failure. The DMA do not set any interrupt flags. Also when I manipulate the DMAR register of Timer1, I can see a valid PWM signal. Would be great when someone can support me Thanks Patrick #define TIM1_PSC_INIT 0u #define TIM1_ARR_INIT 3999u /* ~20 kHz at 80MHz systemclock frequency */ #define TIM1_RCR_INIT 0u uint16_t volatile tim1_dma_buffer[] = {
I want to connect my STM32MP257 eval board to the M.2 (WiFi) slot of a mini computer. I'm having a hard time finding the correct adapter and cable setup. Any help greatly appreciated.
I am looking for information about iNemoEngine sensors in the latest STMicroelectronics HAL for Android.I successfully integrated the STMicroelectronics HAL framework into Android 11. I am using the LSM6DSOTR gyroscope/accelerometer and the LIS3MDLTR magnetometer. These sensors are correctly detected and can be accessed from an Android application. However, the STMicroelectronics HAL also creates iNemoEngine sensors, which do not return any values.The previous STMems_Android_Sensor_HAL_IIO framework used several proprietary STM libraries, including SENSOR_FUSION, GEOMAG_FUSION, GBIAS, MAGCALIB, and ACC_CALIB, to generate the game_rotation_vector, orientation, and rotation_vector sensors. Are these libraries still required for the latest STMicroelectronics HAL framework? What is needed to gain access to these libraries?What is required to make the fusion sensors work in the latest STMems_Android_Sensor_HAL_IIO?
rm0456 describes CKDIV belonging to the FDCAN register structure, However the actual header in the cmsis_device_u5 repo make it a member of the FDCAN_Config_TypeDef. This is missleading! Probably FDCAN_Config_TypeDef. is some structure found in the MCAN IP. There is no description of FDCAN_Config in the reference manual. A description is welcome,
Hello,Thee kernel compilation fails with the yocto (mickeldore) due to patch "0001-v6.1-stm32mp-r2.patch". The issue is with this snippet of the patch:@@ -3716,6 +3718,7 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, hprt0 &= ~HPRT0_TSTCTL_MASK; hprt0 |= (windex >> 8) << HPRT0_TSTCTL_SHIFT; dwc2_writel(hsotg, hprt0, HPRT0); + hsotg->test_mode = windex >> 8; break;Since "test_mode" is only available when CONFIG_USB_DWC2_PERIPHERAL and/or CONFIG_USB_DWC2_DUAL_ROLE are set, the build fails with the following configuration:CONFIG_USB_DWC2_HOST=yCONFIG_USB_DWC2_PERIPHERAL=nCONFIG_USB_DWC2_DUAL_ROLE=nThis is a valid configuration. The patch should be amended as follows:@@ -3715,7 +3717,14 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, "SetPortFeature - USB_PORT_FEAT_TEST\n"); hprt0 &= ~HPRT0_TSTCTL_MASK; hprt0 |= (windex >> 8) << HPRT0_TSTCTL_SHIFT; - dwc2_writel(hsotg, hprt0, HPRT0); +
Hello,I would like to build a project using a STM32WL33 µC on IAR Embedded Workbench IDE v9.30.1. Unfortunately, this version of IAR does not support this µC and I would like to import it but i cannot find any package suitable for IAR. Do you have an easy solution? Best regards, Schaeffer Guillaume
Hello,I use a STM32F777 with FreeRTOS and LwIP. I also run a display control with TouchGFX and partial framebuffer via SPI. I have configured the Ethernet and LwIP as shown in the following link: https://community.st.com/t5/stm32-mcus/implementing-a-lwip-and-freertos-v1-udp-echo-server-on-the/ta-p/780261 .The Ethernet works so far after booting. However, there are always artifacts on the display, as LwIP seems to write to the areas of the frame buffer.However, I have created the Linkerscript configuration as in the tutorial from the link and also added a LwIP heap section. Unfortunately it still does not work stable.What do I have to adjust so that it works without errors?Here is my configuration:
We are using the STM32H7R7L8H6H microcontroller in our product design.During firmware initialization, we observed inconsistent behavior related to the USB voltage detector on different boards that share the same hardware design and firmware.Specifically, the following code auto generated by STM32Cube ide (stm32h7rsxx_hal_msp.c), this causes the MCU to halt on certain boards:if (HAL_PWREx_EnableUSBVoltageDetector() != HAL_OK) { Error_Handler(); } On some boards, the code runs normally, but on others, it enters Error_Handler() immediately after executing this function.Both boards have identical hardware configuration — USB is not used, and VDD33USB and VDD50USB are tied to 3.3 V.- Advise whether disabling the USB voltage detector is the recommended workaround when USB is not used.- Provide any official ST guidance or firmware-level / Hardware level workaround for this behaviour. - Should we modify the voltage level on the VDDUSB pin, or
I flashed firmware that sets. Now STM32Cubeprogrammer refuses to connect to the STLINK portion.How to recover from this / debrick the boards ? I tried pulling up PA14 / boot0 pin with a pull-up to CN7 pin 7, but no such luck...
HelloThe link provided on this solution is brokenST Visual Developer says ''out of memory'' and cra... - STMicroelectronics CommunityMy tool is crashing every time I open Tool->ProgrammerAlso tools are greyed in MCU selectionI'm testing on Nucleo board NUCLEO-8L152R8Drivers are installed and STVP can see the programmer. I have problem only on STVD.I saw many post of it, is there any conf file for the workaround?Thanks
I'm implementing "User defined skeleton" application. I correctly join to gateway and server chirpstack is logging 'join accept', 'join_request. When i can send some data to server i get 2 errors from library Lorawan, 'LORAMAC_HANDLER_ERROR' in function 'OnJoinRequest' and 'LORAMAC_EVENT_INFO_STATUS_RX2_TIMEOUT'. Server says that join request is OK, and accepts Join.Gateway is working Ok because it works with another node.MCU: STM32WLE5CCU6,Params Lorawan: #define ACTIVE_REGION LORAMAC_REGION_EU868#define APP_TX_DUTYCYCLE 10000//#define APP_TX_DUTYCYCLE_RND 1000#define LORAWAN_USER_APP_PORT 2#define LORAWAN_SWITCH_CLASS_PORT 3#define LORAWAN_DEFAULT_CLASS CLASS_C#define LORAWAN_ADR_STATE LORAMAC_HANDLER_ADR_ON ///LORAMAC_HANDLER_ADR_ON#define LORAWAN_DEFAULT_DATA_RATE DR_0#define LORAWAN_DEFAULT_TX_POWER TX_POWER_3#define LORAWAN_DEFAULT_ACTIVATION_TYPE ACTIVATION_TYPE_OTAA#define LORAWAN_DEFAULT_CONFIRMED_MSG_STATE LORAMAC_HANDLER_UNCONFIRMED_MSG#define LORAWAN_DEFAULT_PING_SLOT_
I cannot get STM32WLE5 (on a RAK3172 module) to exit from stop mode on either RTC timer or rising EXTI pin. I'm using STM Cube HAL functions and the stm32_lpm_if.c library. I have tried pin PB3 as either EXTI3 or as PWR_WKUP3. If I use EXTI3, I set an interrupt handler. The handler gets called when the pin goes high in normal running, but when in stop2 mode, it does not wake up. Does anyone have example code using this chip/module to do a wakeup on timer OR external pin?
Hi there,I was trying to generate a STSPING4 project with MCSDK 5.Y.4.All the config and pin checks are successful.However, there is an error in the attached picture; also, the full LOG is attached.Seems some paths are incorrect, but I don't know how to fix them.Maybe I need to install something more? Or need to copy some folder somewhere?Thank you very much.
Hello ST Community,I am currently working on integrating the LSM6DSV16X accelerometer with an STM32H7 series MCU over I²C. Our main goal is to detect the tilt angle of the system. Hardware SetupMCU: STM32H7Sensor: LSM6DSV16X (mounted on a custom board)Interface: I²CSA0 Pin: Pulled high → I²C address = 0x6BPower Supply: 3.3 VPull-ups: 4.7 kΩ on SDA and SCL linesI²C Speed: Tested at both 100 kHz and 400 kHz The setup is straightforward — the sensor is connected to the STM32H7’s I²C1 bus, and it can be successfully detected using an I²C scanner. I’m using the official STMicroelectronics driver from this repository:https://github.com/STMicroelectronics/STMems_Standard_C_drivers/blob/master/lsm6dsv16x_STdC/examples/lsm6dsv16x_self_test.c However, I’m facing an unusual issue during normal operation. Issue DescriptionWhen I try to read the WHO_AM_I register using the official LSM6DSV16X driver, I get inconsistent results. Case 1 – Normal Run (no breakp
I have a few screenshots from a slide deck about the STSPIN32F0,but I can’t find the original presentation.It looks like it’s about PCB layout guidelines.Does anyone know where to get the full slide?
Hi, I have a doubt. I made some changes in the secure bootloader to achieve certain functionality, but I am unsure whether the code in the secure bootloader is developed by ST (such as drivers or APIs), or if it is intended for user modifications. Specifically, I modified the sfu_interface_crypto_scheme.c file to achieve my functionality.As far as I understand, apart from the Secure Engine project and the we can't modify Bootloader project HAL and LL APIs, CMSIS APIs, and middleware like Secure Engine, KMS, and Crypto. Please correct me if I am wrong.For reference, I am using the STM32WLE5CC controller.
Hello, I am trying to use a HighTec Free GCC license with AutoDevKit Studio 2.6.1, but I cannot compile my project. Setup: OS: Windows IDE: AutoDevKit Studio 2.6.1 License: Free GCC Installed compiler: Only VLE compiler (ppc-vle-gcc.exe) is present; ppc-free-gcc.exe is missing Problem: AutoDevKit shows “No license for product (-1)”. Project’s Toolchain Editor only lists the VLE compiler. I am unable to add the Free GCC compiler manually because the executable is not in the installation. Request: Please provide instructions or a link to obtain the PowerPC Free GCC compiler (ppc-free-gcc.exe) compatible with my license. Guidance on installing and configuring it in AutoDevKit Studio so the license is recognized. Thank you.
Hello, We are looking to use the Wlc38 in Bi-directional mode alternating between RX and TX digital pings. We are wondering how much power consumption the digital ping takes and for what duration so we can calculate power consumption of pinging at various intervals. Thanks,RJ
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.