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
Dear ST team, STM8S103f3 I need to initialize interrupt but how I can define particular pin of the port for interrupt .Or how to initialize two interrupt in one port.please share example or library RM0016thanks and regardsGuddu
Board: B-G431B-ESC1OS: Windows 11Attempting to use the Motor Pilot or Profiler but unable to connect. I know I am connected because ST-Link can read the MCU and I am able to program it. From previous posts it seems to be related to the version of MCSDK so I attempted to use 5.4.8, 6.2.1, 6.2.0, 6.1.0, and 6.3.1. Done the obvious restart computer, board, run as admin.Generated Firmware using the MC workbench, ensured Motor Profiler was checked in Application Configuration and uploaded to boardDouble checked to make sure UART was initializedAnother post said to set build configuration to release, didnt work Not sure how to diagnose from here From the Motor Profiler (Any of them)[INFO] - UART worker: Successfully open port COM6 @ 115200[INFO] - : try to configure the board'From the Motor Profiler (Any of them)[ERROR] - : Failed to discover Board at 1843200 Bauds and 115200 Bauds[INFO] - : disconnect UART START[INFO] - : Disconnected from board[INFO] - : disconnect UAR
I want to measure current draw on a Nucleo-WBA65RI board using a Nordic PPK2 power profiler. I put the PPK2 in ammeter mode across JP2 of the Nucleo board, and loaded the BLE_Power_Central example in IDE. The Nucleo board is being powered by the USB connection st-link. This is following STM32WBA Bluetooth® Low Energy – Power consumption applications - stm32mcu When the firmware runs, I see around 4mA drawn for the first 10s setup time. The the red led goes out, as it enters the measurement time, and yet I still see a current draw of 4mA.What do I need to do to truly measure the current draw of the stm32wba65?
Hi all,I'm currently designing a board that requires using an stm32h723 with USB HS (I need more bandwidth than FS allows). The stm32h723 I'm using doesn't expose pc2 or pc3, which are needed for ULPI DIR and NXT respectively. Instead, pc2_c and pc3_c are exposed as pins on the chip. These are internally connected to pc2/pc3 internally with an analog switch, but is this really sufficient for ULPI? The datasheet doesn't seem to be clear.The stm32h747 datasheet does specify using ULPI over pc2_c/pc3_c, which makes me think it's at least been considered. I'm curious why it doesn't seem to be specified in the stm32h723 datasheet (either specifying whether it will or won't work)I did find a few forum posts of people using pc2_c/pc3_c with USB, although it seemed like this had issues (including hardware damage, possibly of the analog switch itself).Thanks!
Hello, I am very heravily struggling setting up my ADC in continmous conversion mode with HPDMA with multipkle channels. The DMA seems to stay idle, while the SFRs are saying the ADC is running. Is there a issue in the config of the ADCs? /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file adc.c * @brief This file provides code for the configuration * of the ADC instances. ****************************************************************************** * @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 this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------
Hi, I have a problem with my CubeIDE installation that is that I cannot create a stm32 project(the option that integrates with CubeMX) I can only create the followingI've installed it from the shell script from the generic Linux download, I'm using arch Linux(btw).I've reinstalled it at least 3 times now, also went to Help -> Install New Software, used this site: And installed everything down the STM32CubeIDE section.
When I use an STM32WB55 as a Central to connect to another STM32WB55 acting as a Peripheral, I find via a sniffer that the Window Size in the connection parameters is 3 (3.75 ms). However, when I connect the same Peripheral with a mobile phone, the sniffer shows the Window Size is 1 (1.25 ms). How can I modify this parameter in the STM32WB55?
I am designing a compact, low power device using the STM32L433.The device is powered by a 1S battery and I use a buck-boost converter (TPS63070) to generate the 3.3V supply.However, at the moment the buck-boost converter is permantely powered (enable pin permentatly pulled high).I use both shutdown and standby power modes, which use WKUP2 (pin PC13) and RTC to wake the STM32. But I have just noticed the VBAT pin which could potentially reduce power consumption drastically. In both shutdown and standby power modes, I use RTC and LSE.However, there are two issues I am not sure how to resolve.1. The WKUP2 pin currently uses the 3.3V from the buck-boost converter (I copied the same circuit used on the Nucleo develpment board). But if I disable the buck-boost converter then there will be no 3.3V supply to the switch for the WKUP pin, so the STM32 would never wake. The circuit is shown below.. 2. The battery is 1S so could be up to 4.2V, but t
I have a project in which I try to sync my assembly code on a signal on a GPIO, using WFE for minimum latency and jitter.I use a Rust HAL ony for initialisation of the clock and to put some GPIOs into input mode, and one in output mode that I use to check the timings of my assembly code with an oscilloscope.The synchronization works (PA15 in input mode, using EXTI line 15 to send the wake-up event), but the WFE also wakes up at regular interval. Apparently every second when no debuger is connected, and maybe a bit slower when openocd / gdb is connected.I try to understand why it does wake-up, but really can't find anything. Here are the sources of wake-up I checked:- Interruptions:SEVONPEND is zero (gdb) x/t 0xE000ED10 0xe000ed10: 00000000000000000000000000000000 and if I replace the stack with $AAAAAAAAs, I see no trace of an interruption being called when the core wakes up.- Event on EXTI lines:EXTI_EMR1 and EXTI_EMR2 only activate Px15 (gdb) x/t 0x40010404 0x40010404: 00000000000000
Hi, The STM32G474CEU6 LQFPN48 was previously used in our projects with a 3.3 V supply, where we successfully operated a 25 MHz FL2500326 crystal using 6.8 pF load capacitors, and the crystal oscillation was stable.In the current design, the same controller is powered at 1.8 V for all VDD, VDDA, and VREF+ pins, while using the same crystal and the same load capacitors. However, under this configuration, the crystal oscillator does not start, and no crystal output is observed.As an alternative, we are currently using HSI clock (16 MHz) as system clock in our application. It is observed in other posts that HSI cannot be used for high speed peripherals like USB and Ethernet due to it's low accuracy, and also it varies with temperature. In our application, we are using 2 - UARTs, 2 - I2Cs and one SPI along with few GPIOs. Is it recommendable to run the STM32g474 with 1.8V VDD? Also can someone give advice on the HSI system clock mode? Please let us know how to sol
Hello,I am using an STM32H747I-DISCO with the MB1166-A09 display and a standard TouchGFX project.I want to run the board as USB Host on CN1 (USB OTG HS, ULPI PHY) and connect a USB Full-Speed device (STM32H503 Nucleo running in device mode).VBUS is forced ON via ULPI_D0 and works fine in a non-TouchGFX project.However, as soon as I add USB Host to a TouchGFX project:The display becomes blackTouchGFX no longer rendersCubeMX reports conflicts with FMC (SDRAM) when USB OTG HS is enabledTouchGFX works without USB, and USB works without TouchGFX, but not together.It looks like USB HS (ULPI) and TouchGFX (DSI + SDRAM) conflict, possibly due to clocks or FMC being partially disabled.Question:Are there any reference projects or examples where TouchGFX and USB Host on CN1 coexist correctly on STM32H747I-DISCO?Is this a known limitation?Thanks in advance.
We are using the STM32N657Z0H3Q (142-pin TFBGA package).CSI behavior in STM32CubeMX is inconsistent across versions:In older CubeMX versions(1.64), CSI lanes (CSI_D0P/N, CSI_D1P/N, CSI_CKP/CKN, CSI_REXT, etc.) are displayed in the Pinout view, but these signals are not actually assignable to physical pins. They appear as virtual pins only.In newer CubeMX versions(1.65), CSI is still listed in the peripheral view, but no CSI lane pins are shown at all. In case, the generated .ioc file contains only virtual signals:VP_CSI_VS_CSI.Mode=CSI VP_CSI_VS_CSI.Signal=CSI_VS_CSI VP_DCMIPP_CSI.Mode=SerialInterface VP_DCMIPP_CSI.Signal=DCMIPP_CSIOn hardware, when connecting a CSI-2 camera, the following is observed:DCMIPP and CSI registers initialize correctly,no LP-to-HS transition on the supposed CSI pins,ClkAct remains at 0,CSI interrupts never trigger.This behavior strongly suggests that the CSI-2 D-PHY pins are not bonded out on the STM32N657Z0H3Q package, even though CubeMX and the
Hi, I tried to set up and use HPDMA with ADC on my Nucleo-H7S3L8,but I have some questions about how to use it.I could not find documentation on using HPDMA with STM32 MCU, only for GPDMA.I found an HPDMA example for the Nucleo-H7S3L8 (ADC_SingleConversion_TriggerSW_HPDMA), but I don't get the logic. Why are both HAL_ADC_Start_DMA() and HAL_ADC_Start() used together? Normally, you'd just use HAL_ADC_Start_DMA(), right? Continuing from my previous question, if I want to modify this example to support multiple channels, Continuous Conversion Mode, and DMA circular mode, how should I do it?I tried modifying the ADC parameters to Continuous Conversion Mode and DMA circular mode, but it still only runs once.Then I tried enabling Circular Mode in HPDMA, but it gets stuck at HAL_ADC_Start_DMA.If possible, could you teach me how to modify it for multiple channels? I'm not sure whether to use End of single conversion or End of sequence of conversion. I have 9 channels.I'm also not sur
Hi everyone,I’m looking for the latest condition-based predictive maintenance kits or devices with the following features:1. Vibration monitoring2. Acoustic sensing3. Temperature monitoring4. Battery Powered, Low Voltage5. Wi-Fi connectivity6. AI-based anomaly detection/failure prediction7. Cloud connectivity. Could you please let me know the latest and best recommended product that meets these requirements? Any details on specs, AI capabilities, and cloud integration would be greatly appreciated.Thanks!Sajid
HiI have recently purchased the STEVAL-STWINBX1 (STWIN.box) board, and I’m exploring its use for predictive maintenance applications.I already know that FP-AI-PREDMNT2, together with DSH-PREDMNT, is available for the STEVAL-STWINKT1B kit.Could anyone let me know if a similar cloud application/dashboard (like DSH-PREDMNT) is officially available or supported for the STWINBX1 board?Any guidance or references would be much appreciated.Thanks.
Hello everyone,I’m looking for any Wi-Fi connectivity implementation examples for the STEVAL-STWINBX1 (STM32U5). Ideally, I’m searching for a solution that integrates with the eLooM framework, or at least a reference on how to properly add Wi-Fi tasks within eLooM.Specifically, I’m trying to find:Wi-Fi driver/task examples compatible with STWINBX1Any eLooM-based implementation of Wi-Fi or network communicationExample projects that connect to AWS IoT using Wi-Fi (HTTP)Documentation or sample code showing recommended methods for enabling Wi-Fi cloud communication on STWINBX1So far, I haven’t found a clear reference project for STWINBX1 + Wi-Fi, especially one supporting cloud connectivity or integrating with the eLooM architecture.If anyone can share links, example projects, or guidance on how to implement this, it would be greatly appreciated.Thank you!Sajid
Hello,I am looking for help debugging an issue with both ADCs running in continuous conversion mode with multiple channels, using DMA on an STM32H7 device.Hardware / ToolsBoard: NUCLEO-H7S3L8MCU family: STM32H7RSPeripherals: ADC1 and ADC2Mode: Continuous conversion, multi-channel (scan mode)Data transfer: DMAConfiguration OverviewBoth ADCs are configured in continuous conversion modeEach ADC scans multiple channelsDMA is used to transfer conversion results into memory buffersDMA buffers are statically allocated and placed in DMA-accessible memoryD-Cache is enabled on the H7Problem DescriptionBoth ADCs are running and DMA transfers are occurring, but the sampled data in the buffer is always 0In the SFR it shows that the ADC is working, but the DMA is idle/not set up correctly. Also the DMA buffers are in a non-cacheble region protercted by my MPU.static void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Disables the MPU */ HAL_MPU_Disable(); /* Disables all MP
I am using two UARTs simultaneously.The CPU is STM32H743. One UART is on UART 4 that transmits information to pc uartAnd the other UART on UART 5 receives information from pcIf these UARTS function alone, they function well.I am using the DMA idle function on the receive and the DMA function on the transmitWhen they function together, the information is not properly received from the PC on UART 5.Please help me resolve this issue
Hello Everyone, I am following below tutorial to create an ai application from scratch on my custom board.https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502I am able to run inference following the tutorial. Now, Instead of using UART for transmitting inference results, I want to use USB CDC to transmit the inference results. I have to enable USBX and ThreadX and move MX_X_CUBE_AI_Init() and MX_X_CUBE_AI_Process() from MAIN to app_ux_device_thread_entry. I have given below pool sizes:USBX_MEMORY_STACK_SIZE 1024*35TX_APP_MEM_POOL_SIZE 1024*8UX_APP_MEM_POOL_SIZE 46080When I run the application, I can see the device enumurates as USB serial device. Once I run MX_X_CUBE_AI_Process(), ux_device_class_cdc_acm_write() no longer works. If I comment out MX_X_CUBE_AI_Process(), I am able to continously write data to ux_device_class_cdc_acm_write and view in PC terminal. Further If dont invoke&nbs
Hello, I am trying to use SAES with a wrapped key to decrypt firmware updates on an stm32u5g9vjtxq. I am not sure how I should be changing the InitVect in CRYP_AES_CBC mode after hcryp is already initialized with HAL_CRYP_Init. To elaborate on what I am trying to do I have created a wrapped key that is being stored in OTP memory along with the IV used to encrypt / decrypt that wrapped key. My bootloader calls HAL_CRYPEx_UnwrapKey using the OTP memory address of the wrapped key and the IV also stored in OTP. I then want to change the IV to match that of what was used to encrypt the new firmware image, the unwrapped key is what was used to encrypt the firmware image. I am not sure how to accomplish this without having to call HAL_CRYP_Init again...I think the second call to HAL_CRYP_Init looses the unwrapped key and replaces it with whatever is defined in hcryp.Init.KeySelect which I have set to CRYP_KEYSEL_HW.To summarize I need to be abl
I created a 10Hz sine function with phase of pi/4, amplitude of 1000, bias of 2000, a sampling rate of 1kHz, and 2048 samples (20 periods in total) and saved it into q15_t input[2048].I created a fft stract by arm_rfft_init_q15(&S, 2048, 0, 0)I entered the input into arm_rfft_q15: arm_rfft_q15(&S, input, output), while output define as q15_t output[4096]I took the input and output and copied them to Python.I used fft in Python on the input data.In addition, I arranged in Python the output of arm_rfft_q15 by calculating the magnitude of the numbers (where each pair of consecutive indexes represents the real and imaginary parts of a number) and then I applied fftshift on the data.The input, and the fft from python and arm_fft_q15 are attached.I don't understand why I do not get the same result from python and from arm_fft. Python's result seems logical (one peak at the oscillation frequency) and arm_fft's result are not make sense. Why do I get a lot of peaks and how do I convert
Since I use Linux and am accustomed to Python scripts, I decided to create a script that generates file systems with all the contents of a directory.I was inspired by the work of Jim Pettinato and Simon Goldschmidt, with no difference in the result, only changing the language.I am also finalizing another script that will be in this same repository that will generate endpoints for RESTful, based on a Swagger file that will describe the endpoints requested by the web page or other application.If you have any questions or suggestions, please feel free to ask.These projects are part of my STM32 studies, and I am migrating the tools I use to other processors.
Hello, we intend to implement a time-dependent channel change via the operational amplifier in voltage follower mode, as described in AN5306 - Rev 1 Page 31, 5.1. However, when checking the output, there is an unwanted gain (x2) on channel 2. Any idea where it comes from or what could be set incorrectly? Switching between channels using a timer and MUX works as expected, but the second channel has a gain of 2, although in voltage follower mode this should not be the case.For testing, 1 volt was connected to both channels and it was expected that 1 volt would come out at the output, despite the change via the MUX, but it changes between 1 volt and 2 volts because the second channel has this unwanted gain. CubeMX Configuration: OPATimer:Pins: code settings: /** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main int
I'm planning on moving from STM32F103 for more speed, so in advance of getting a board I thought I would try building an app for the STM32G431... so I found an small example project online that was using an OpAmp feature.Having got that compiled ok in STM32CubeIDE I backported my app source code into the project (which went ok), but compiling it was missing some definitions for HAL UART structures.Looking at "Drivers/STM32G4xx_HAL_Driver" in my original project and comparing it with "Drivers/STM32G4xx_HAL_Driver" in the new project I see that its missing some files like "stm32g4xx_hal_uart.h". Is it possible to force STM32CubeIDE to regenerate the Drivers subfolder from scratch?I always find switching a STM32CubeIDE project between different MCUs a harder job than it should be, e.g. it would be nice if there was a combo box listing MCUs in the project properties.
Hello,I'm researching possibilites to teach DSP undergraduate course using boards STM32H750B-DK, that we alreadyuse in other courses related to low leve programming. So far, I've identified two possible workflows:1. it seems possible to create project for board to act as USB sound card that could be interfaced to GNU octave environment and first steps of audio processing could be done there2. we would like to create first simple audio pass-through app for our board with two inputs (MEMS mic or line-in) and several outputs, but mostly headphone output. 3. after initial example in 2., we could add also audio processing algorithms that could be prototyped in 1. and code in C on the board. We would also love to do some audio analysis (Amplitude response, Spectrograms etc)... I have found quote some starting points, but also a lot of questions raised that there is a lot of non-working examples. My starting points would be BSP package for our board, also some examples for STM32F769
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.