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
The STM32Cube CMake Support extension blocks the VSCode UI when multi-root VSCode workspace are opened. Specifically, if a multi-root workspace is opened, the STM32Cube CMake Support extension continuously shows the Select hardware window. Even if the user closes the window by pressing Esc, it immediately reappears, preventing the user from doing anything, since that window has the highest priority.This happens because the extension detects the CMakeLists.txt file in the sub-workspace another_generic_cmake_project (see attached project) and, for some reason, attempts to configure the sub-workspace as an STM32Cube project, even though it is not an STM32 project but a generic CMake project.Currently, as a workaround, I have to add the setting: "settings": { "stm32cube-ide-build-cmake.ignoreCubeProjectDiscovery": true, }to the multi_root_project.code-workspace file, which prevents the STM32Cube CMake Support extension from attempting to detect the main workspace and any
Hello everybody, I am new here so please let me know, if there is important information missing. Thank you already for you time! I set up a STM32U575I-EV board for communication with CAN. The STM Board, a PCAN-USB dongle and an Oszilloskope are connected to the bus. The Bus is terminated correctly with two 120 Ohm resistors. I use the HAL libraries to interface with the FDCAN peripherie. The jumpers from the eval board are set to connect PB9 and PB8 with the CAN transceiver and to disconnect PB8 from the USB-C PD-interface. To test the setup I send dummy frames (ID: 0x000, DLC: 1, Data: 0x00). The frame is visible on the Bus and also the ACK from PCAN is visibile. PCAN USB has a 200mV higher voltage on CAN High 0 level. Here is the dummy frame on the Oszi: As you see on the the screenshot, the ACK is there and even though I put only one message in the Tx-Buffer of the FDCAN, it retransmitted. Here is my code: main.cint main(void) { /* MCU Configurati
Hi,programing NBOOT_SEL and WRP in the firmware leads to strange behavior of the MCU. After running the code below and reseting the MCU, I can still debug with CubeIDE to some extent by connecting without downloading the firmware, but I can only see that the MCU is stuck in a hard fault. CubeProgrammer cannot read either flash or option bytes. If I try to reset the option bytes anyway, I lose the connection to the MCU completely and it is no longer recognized by CubeProgrammer.The behavior is not always the same either. On my first attempt, I was able to debug the code several times and see that it works correctly in principle. Resetting the WRP with CubeProgrammer also worked. However, I have now lost my second MCU.I develop a minimal bootstub for STM32C011J6 and therefore do not use the HAL. Is there an error in the code, that can lead to such a behaviour? Thank you in advance for any hints or guidance. typedef struct { volatile uint32_t ACR; uint32_t RESERVED1; vo
In the update to CubeMX version 6.17, the SD card initialization (in my case, SDMMC2) was changed, and the software goes into "Error_Handler()". In my project I use STM32H7B0VBT6, FATFS, not RTOS.Specifically, version 6.17:static void MX_SDMMC2_SD_Init(void) { /* USER CODE BEGIN SDMMC2_Init 0 */ /* USER CODE END SDMMC2_Init 0 */ /* USER CODE BEGIN SDMMC2_Init 1 */ /* USER CODE END SDMMC2_Init 1 */ hsd2.Instance = SDMMC2; hsd2.Init.ClockEdge = SDMMC_CLOCK_EDGE_RISING; hsd2.Init.ClockPowerSave = SDMMC_CLOCK_POWER_SAVE_DISABLE; hsd2.Init.BusWide = SDMMC_BUS_WIDE_4B; hsd2.Init.HardwareFlowControl = SDMMC_HARDWARE_FLOW_CONTROL_DISABLE; hsd2.Init.ClockDiv = 10; if (HAL_SD_Init(&hsd2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN SDMMC2_Init 2 */ /* USER CODE END SDMMC2_Init 2 */ } In previous versions:static void MX_SDMMC2_SD_Init(void) { /* USER CODE BEGIN SDMMC2_Init 0 */ /* USER CODE END SDMMC2_Init 0 */ /* USER CODE BEGIN SDMMC2_Init 1 */
Hi all, I’m confirming whether the ST LSM9DS1 provides any on-board sensor fusion output (for example quaternion/Euler), or if fusion must be done on the host MCU. If anyone has definitive guidance from ST docs/support, please share. Thanks.
Version 6.16.1I have identified a number of bugs - collecting them here. Note that these are time wasters, but there are workarounds - so they are not critical but would definitely aid in the usability/productivity of users.-If you use the XCube.AI software package to generate a template application, the template application will not build. To fix it you have to add #include "ai_platform.h" at the top of the file under the other existing includes.-In the configuration for the individual networks for the XCube.AI, if you select the first profile "internal-memories-only--default" it will hang when analyzing and never complete. The workaround is to use the n6-noextmem option which appears to accomplish the same thing-When first starting up CubeMX, when you select the XCube.AI option (the actual selection of the components for inclusion), even if you have "FSBL" selected for the context, many times it will add it with ExtMem context in
quectel bg96 does not reply to messages from stm32l496ag on kit board p-l496g-cell02 but since I bought it. I could not even start blink the led on bg96 so I assume there is something missing to me. I use usb cable to stlink com and debug from the software but never had a response from bg96 after sending at commands. What I can do about? thank you. Marcello
I used CubeMX to generate the "LoRaWAN_AT_Slave" example for the B-WL5M-SUBG1 board.I had some issues with it waking up from sleep and upon a few hours of debugging i found that the LSE Driver Config was set to LOW in the example application, but the datasheet recommends HIGH.Just letting other people with the same issue know and hopefully the ST-Team can fix the example configuration in future releases.
Hi, I am using the STM32L4 B-L475E-IOT01A board with Wi-Fi module Inventek system ISM43362-M3G-L44.I have seen the example WiFi projects but they do not have the .ioc file. So my question is, is there any middleware available in STM32CubeMX which can help me implement WiFi connectivity via USART? The communication interface between the stm32 board and the WiFi module is SPI3 by default but the documentation says that use of USART3 is also possible, and USART3 is what I want to use.So any easy ways to do that? Any available middleware in CubeMX? Or is any example project available online?Thanks!
Hello everyone.I'm working on a bare metal project for STM32MP135D using FreeRTOS (V10.6.2) and LwIP (V2.1.0).I write a custom TCP server that work together with a custom UDP client. Both this use raw API. I'm experimenting strange problems:sometime the TCP server not ack the respective client or not provide resoinse to it.I've notice that if putting around tcp_output() and udp_send() a LOCK_TCPIP_CORE/UNLOCK_TCPIP_CORE the problem seems disappear. You think there is a problem on this LwIP implementation or in my lwipopts.h settings?At follow my "lwipopts.h" Thanks in advance for your help #ifndef __LWIPOPTS_H__#define __LWIPOPTS_H__/*** NO_SYS==1: Provides VERY minimal functionality. Otherwise,* use lwIP facilities.*/#define NO_SYS 0/* ---------- Memory options ---------- *//* MEM_ALIGNMENT: should be set to the alignment of the CPU for whichlwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2byte alignment -> def
I am currently evaluating microcontroller options for our project and need your support in identifying a suitable MCU.Our key interface requirements are as follows: 2× MDIO interfaces,3× I2C bus interfaces If you could recommend an MCU that supports these features or share any relevant technical details/datasheets, it would be very helpful.If not, please also suggest alternate part numbers that can meet this requirement.
As mentioned in the title already, the file core_cm4.h is not contained in the recent version of https://github.com/STMicroelectronics/STM32CubeG4 anymore.Selecting the v1.6.1. in that repo the file is contained. Looks like there was an error genererating the new version.
I am experiencing issues powering the STM32H755ZIT6 MCU on our custom board. The schematic has been derived from the NUCLEO-H755ZI-Q development board reference design, and we have verified that there are no apparent design or assembly errors. However, the MCU fails to power up as expected. All VDD pins are connected to an external 3.3 V supply (VDD_MCU). For the power supply configuration, we selected the default internal SMPS-only configuration, identical to the NUCLEO-H755ZI-Q board, as detailed below: VDD_MCU is connected to VDDSD (pin 16).VLXSD is connected through a 2.2 µH inductor to the VDDLDO pins (70, 105, 143) and the VCAP pins (68, 103, 140).In CubeIDE, PWR_DIRECT_SMPS_SUPPLY is selected under RCC > Power Parameters > Supply Source.Power Regulator Voltage Scale 3 is selected under RCC > Power Parameters > Power Regulator Voltage Source. When powered from the external 3.3 V source, both VDD_MCU and VDDSD are at 3.3 V; however, there is no voltage present a
I am a fan of STM32, especially the peripheral sets offered are great. Over the years however, one type of peripheral is missing which would be a great help for many projects, this is a programmable logic cell.Such a cell would contain elements like Flip-Flops, Look Up Tables and such that can be configured for specific functions. For instance using the LUT's, it would be possible to create all kinds of logic operations like AND, OR, XOR gates.Using the Flip-Flops, I would be able for instance to create a clock gate, which I needed in my last project. There I needed an external clock signal to propagate to other peripherals and be able to enable/disable this. In the end I manage to create this function with a timer but this unfortunately generates something like 9 clock cycles of latency limiting the maximum frequency of the external clock signal. A basic Flip-Flop solution would probably introduce a much smaller latency.Competing products offer this kind of functionality more and more
Hi ST Community,I am new to ST and hope to find a fast solution on this way. Background:I am working on a hobby project and want to drive a BLDC Motor. Once I flash the SW on the target, Overcurrent Protection is hit immediately (can see on debugger and Motor Pilot (in MCSDK). Target: Custom Board based on EVSPIN32G4 Schematic (EVSPIN32G4)Chip: STM32G431VBx3. Workflow: 1.) Board Designer done over Motor Control Workbench2.) New Project created and .ioc file generated3.) Generating the Code over MX Cube (without touching any config)4.) Start Motor Pilot or Debugger -> results in overcurrent protection (PWMC_OCP_Handler() is triggered immediately and OverCurrentFlag is set to true.) My Assumption:1. It is not an HW issue because I removed the Motor from the Board so there can no big current flowing.2. I can see in MX Cube that not all of the Pins are configured from MC SDK, is that normal? Do I need to configure the missing pins (only related to motor con
I have unrecoverable errors building on STM32CubeIDE a project generated by STM32CubeMX.The errors arise compiling assembly .s sources for ThreadX.Versions:STM32CubeMX 6.17.0STM32CubeIDE 2.1.0Error (excerpt from build console):arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -DDEBUG -c -I../Core/Inc -I../AZURE_RTOS/App -I../Drivers/STM32L4xx_HAL_Driver/Inc -I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32L4xx/Include -I../Drivers/CMSIS/Include -I../Middlewares/ST/threadx/common/inc/ -I../Middlewares/ST/threadx/ports/cortex_m4/gnu/inc/ -I../Middlewares/ST/threadx/utility/low_power/ -x assembler-with-cpp -MMD -MP -MF"Middlewares/ST/threadx/ports/cortex_m4/gnu/src/tx_thread_interrupt_disable.d" -MT"Middlewares/ST/threadx/ports/cortex_m4/gnu/src/tx_thread_interrupt_disable.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Middlewares/ST/threadx/ports/cortex_m4/gnu/src/tx_thread_interrupt_disable.o" "../Middlewares/ST/threadx/ports/cortex_m4/gnu/sr
Environment DetailsMicrocontroller: STM32C091CBTx (LQFP48)STM32CubeMX Version: 6.14.1LL-DriverConfiguration: An STM32CubeMX project is configured for an STM32C091CBTx MCU, with DMA channel 6 assigned to a peripheral (ADC).Generated Code (stm32c0xx_it.c): Upon code generation, CubeMX creates the shared interrupt handler for DMA channels 4, 5, 6, and 7 in the stm32c0xx_it.c file. The function is defined as:void DMAMUX1_DMA1_CH4_5_6_7_IRQHandler(void)Startup File Vector Table (startup_stm32c091xx.s): However, the default startup file provided with the project contains an incorrect entry for this interrupt vector. The handler name in the vector table is listed as:DMAMUX_DMA1CH4_5_IRQHandlerConsequently, the `DMAMUX1_DMA1_CH4_5_6_7_IRQHandler` function is never invoked when an attempt is made to trigger DMA Channel 6.Confirmed WorkaroundThe issue can be resolved by manually editing the startup file:In the `startup_stm32c091xx.s` file,Search for the incorre
Hello I found this issue, I drop you my report (with IA helping to write it :) )**Component/Tool:** STM32CubeMX (code generation)**MCU:** STM32C071KBT3 (STM32C0 family)**FW Package:** STM32Cube FW_C0 V1.4.0**Configuration:** USB Device with USBX CDC-ACM class, bare-metal (no RTOS / no ThreadX)**Description:**When generating code for a USB Device project using USBX middleware (CDC-ACM class) in bare-metal mode (without RTOS), STM32CubeMX generates the peripheral initialization calls in `main()` in the wrong order:Generated code (incorrect):MX_USB_PCD_Init(); // Called FIRST MX_USBX_Device_Init(); // Called SECOND**Expected code (correct):**MX_USBX_Device_Init(); MX_USB_PCD_Init(); **Root cause analysis:**`MX_USBX_Device_Init()` calls `ux_system_initialize()` and `ux_device_stack_initialize()` which set up the USBX system memory and device stack. The `MX_USB_PCD_Init()` function's USER CODE section then calls `_ux_dcd_stm32_initialize()` which registers the STM32 DCD driver with the USB
Hello All,I am current testing STM32U375RGT6Q at 80 degrees and I see that there is significant increase in the average current consumption at 80 degrees C. Average Current consumption increases from 290uA to 1mA. Also note that1) Pull up and Pull down are 1Mega2) MCU is in sleep mode for 50 percent of the time.3) Internal oscillator MSI is used at 3MHz4) Flash memory is 1MB5) SMPS mode is used to reduce the current consumption.Is there a way out to reduce the current consumption at high temperature. I know that STM32L4 series are more stable over temperature but they dont suite the current budget of 300uA
Hi,I just noticed that CubeProgrammer v1.21.0 always shows me an update notification, but it is already the latest.Restarting the Cubeprogrammer or the operating system does not make any difference. Environment:- Windows 11- I have installed v1.21.0 alongside v1.20, but that should not make any difference, or would it?
Dear all,we're creating a camera application and have successfully run and modified some of the demos available. ( State at time of writing: 800x600 30 fps full-frame encoding to SDCard).We have full-frame double-buffering code running but this is consuming extensive memory; from the documentation I saw that there is a hardware-linked mode available chaining DCMIPP and VENC cores. From the code, I see there is one implementation in VENC_USB example.The camera and venc middlewares on github miss the slice aka "HW Handshake mode" so I wonder which code-base is recent and will be supported in the future, especially as CubeMX does not (yet) support VENC configuration.We're trying to go beyond a proof of concept, so I'd like to base our project on a maintained code-base but that is hard to spot, could you give some indications?Many thanks,Simon
Hello STM32 friends!I've previously used USB on an STM32G474RET6, and it was initialized with the function:MX_USB_Device_Init()The goal is to use it as a USB serial port to communicate with my device, and that worked.Now I'm using the STM32U5G7VJT6, and this time, the USB is initialized with the function:MX_USB_OTG_HS_PCD_Init()But this function hangs.I've enabled USB interrupts in the STM32CubeMX, but that doesn't help.I haven't been able to isolate the problem yet, but it's probably something very simple.Is this another new USB library?As requested, I attached my IOC file.What could be the problem?Sincerely, Jack
The STM32Cube CMake Support extension treats workspaces as STM32Cube projects when a folder higher up in the directory tree (above the workspace folder) contains the files .settings/bundles.store.json and .settings/bundles-lock.store.json.For example, given a tree like this:/ ├── .settings │ ├── bundles.store.json │ └── bundles-lock.store.json │ └── path └── to └── generic_cmake_project ├── CMakeLists.txt ├── generic_cmake_project.code-workspace └── lib.cIf the user opens the workspace generic_cmake_project.code-workspace, the STM32Cube CMake Support extension automatically creates the file .vscode/settings.json with the following content:{ "cmake.cmakePath": "cube-cmake", "cmake.configureArgs": [ "-DCMAKE_COMMAND=cube-cmake" ] }and modifies the generic_cmake_project.code-workspace file by adding the following settings: "settings": { "stm32cube-ide-clangd.path": "cube" },On the other hand, if the user opens the workspace in "folder mode" (File > Open Folder...), the STM3
I am currently designing an NFC reader PCB based on the ST25R3916B. Could you kindly share the recommended PCB stack-up configuration and the routing guidelines for the NFC antenna? I have also attached images of the PCB layer stack-up that I am currently using. Could you please review them and confirm whether it is appropriate?
Hi,In STM32MP25x Reference manual(RM0457), the HSEM_(S)Cnxxx registers all have the description of global access attribute except HSEM_CnIER, as shown of HSEM_CnICR,22.5.4 HSEM non-secure interrupt clear register (HSEM_CnICR)Address offset: 0x104 + 0x010 * (n - 1), (n = 1 to 3)Reset value: 0x0000 0000Register global access: When CID filtering for processor[n] is enabled inHSEM_CnCIDCFGR, this register can be accessed only by the processor CID. An illegalCID access to this register generates a CID illegal access event. When CID filtering forprocessor[n] is disabled this register can be accessed by any bus master.the HSEM_SCnIER also have the description of global access attribute, and the bits of HSEM_CnIER register also have CID filtering access attribute, and all bits maybe could be used by one CID , So if HSEM_CnIER also have the global access attribute?
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.