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 hope you are well.Background: The SPI bus of MCU has 9 slave devices, with loads of 1pcs x C component, 2pcs x A component, and 6 pcs x B component. The SPI rate of component is 200kbps, the SPI rate of A component is 1Mbps, and the SPI rate of C component is 100kbps. The SPI waveform has ringing, and the SPI communication between C component and A component sometimes reports errors.Request for support: Can you provide SPI multi device bus design materials to evaluate whether MCU can drive multiple SPI slave devices, whether the number of SPI slave devices is reasonable, and whether the capacitive load of slave devices is reasonable?
When I build my project in "Debug" mode all works fine, if I build the project in "Release" mode an error appears: C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.100.202509120712/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -llibarm_cortexM7lfdp_math.a: No such file or directory GCC linkerLibraries (-l): libarm_cortexM7lfdp_math.aLibrary search path (-L): "${workspace_loc:/${ProjName}/Drivers/CMSIS/Lib/GCC}" Any help ?Thank you
When creating a project in STM32CubeMX, ST ARM Clang was selected. Compilation and debugging in VSCode all work, but some variables are optimized out, which seems like the compiler optimization is set too high. However, it's unclear where to set the compile flag -O0.CMakeLists.txt like this, does not work# Define the build typeif(NOT CMAKE_BUILD_TYPE)set(CMAKE_BUILD_TYPE "Debug")set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")endif()
Greetings everyone,Using the C programming language, I'm creating the encryption algorithm AES-256 code for a trusted execution environment and checking to see if the hardware supports it.AES/CRYP enabling is giving me trouble. I can't find it under Connectivity or Security, and I can't enable it with STM32CubeMX.I'm getting this error, so please assist.
Hello, dear colleagues!If my request seems inappropriate to you, I apologise — but I had no other choice.I've been struggling with this for a week now.Please, if anyone has a ready-made working project, share it or give it to me. I need a ready-made project for Nucleo-STM32H753ZI (MB1364-H753ZI-E01) that includes FreeRTOS with USB-CDC or Ethernet support.I have tried many times, but I still cannot get past the FreeRTOS initialisation stage. Thank you all. *This post has been translated from Russian to comply with the ST Community guidelines.
Since the description of the FDCAN controller in the reference manual ofthe STM32G474 was not detailed enough, I looked around for more Informationand found the Application Note AN5348 ("FDCAN peripheral on STM32 devices ").But that didn't make me feel more confused.- but that didn't answer myquestions, I'm even more confused nowAt the moment I am busy sending CAN messages.According to AN5348, the FDCAN has dedicated Tx buffers and optionallya Tx FIFO or a Tx queue (Figure 4. CAN message RAM mapping.)The FDCAN controller on the STM32G474 seems to be like aminimal implementation of the controller described in the AN5348 -obviously 32 Tx buffers are possible, but the STM32G474 has according to.Reference Manuel only 3 of them. And as I understand I understand, they areused as a TxFIFO or a TX queue - therefore there are no "dedicated" Tx buffer !?Or can I simply use the 3 buffers in a detected manner by ignoringthe TXFQS registers and working only with registers TXBRP, TXBAR and TXBTO?I a
HelloIf I use CubeIDE 1.19.0 there was a target board selector after starting a new project. In 2.0.0 I can not find it. Slso the GPIO config.What happens?
Hello,I intend to put LIS3DH and LSM6DSV32X on same SPI bus and use different CS lines to address them separately. But when the CS is desactivated, these components activate their I2C engine, therefore leading to possible conflicts of I2C interface on the SPI bus.For LSM6DSV32X, the datasheet states that I2C can be deactivated by setting to 1 the bit I2C_I3C_DISABLE of IF_CFG register.For LIS3DH, iy is said here (https://community.st.com/t5/mems-sensors/use-lis3dh-on-the-same-spi-bus-as-an-eeprom-is-it-possible/td-p/427285) to write 0x80 on address 0x17 to desactivate I2C on LIS3DH.Question 1: this method for LIS3DH is not officially documented in the datasheet, nevertheless, is it an official and safe way to deactivate the I2C bus ?Question 2 : If I deactivate I2C on LIS3DH and LSM6DSV32X, is it a safe way to make both components coexist on a same SPI bus ?Best regardsPierre Prot
Hi all,I've been working through this tutorial: How-To-Create to bring up LWIP + FreeRTOS on the STM32H735IGK development kit. I'm using STM32CubeIDE 1.18.0, FreeRTOS with CMSIS-v1, and STM32Cube FW_H7 version 1.12.1I noticed that pinging is very sporadic, and the STM32 eventually stops replying to ARP requests. I've attached a couple of pictures(wireshark captures) that describe the problem.For reference, here are relevant screenshots my MPU settings, linker script, ethernetif.c, and lwiopts.h files. However, if I disable D-Cache, then pinging becomes stable (I'm able to ping for > 30 minutes continuously). I don't want to disable D-Cache, as my MPU should be disabling caching for the relevant memory regions.I understand that MPU regions have priority, and I'm overlaying region 2 onto region 1, but both regions disable caching. What's going on here?Please let me know if there additional information that you may need.Thank you!@Piranha, @STea, @Pavel A.
I am running the ADC using a timer trigger and DMA to sample a sinusoidal signal.The captured samples are transmitted to a PC via UART.However, as shown in the attached image, the ADC output appears to be step-like and does not capture smoothly changing values, even though the input signal is a clean sine wave.I have checked the external reference voltage, interrupts, and the microcontroller power supply, but the issue still persist
Suppose I have a project where I have to continuously read and display values from the adc called AD9215BRUZ, I have NUCLEO-H753ZI board , is it possible? Can the STM Hseries read and sample parellel data , if yes then how should I proceed , if no then what are the limitations.Thank you
I'm trying to work with a STM32F4-Discovery board, and previously it connected perfectly okay, but a couple weeks ago something, seemingly out of nowhere, broke and CubeIDE stopped detecting the board and writing programs to it showing this message:I tried reinstalling the IDE, downgraging the toolchain, upgrading the IDE, creating a fresh project and so on.I'm running version 1.19.0 CubeIDE, using EndeavourOS (Arch-based).Here are my udev rules for a relevant device:# stm32 nucleo boards, with onboard st/linkv2-1 # ie, STM32F0, STM32F4. SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \ MODE="660", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1", \ SYMLINK+="stlinkv2-1_%n" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", \ MODE="660", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1", \ SYMLINK+="stlinkv2-1_%n"My user is a member of the plugdev group. But the important detail is that if I run stm32cube
Hello.Due to reasons, I had to completely reset my laptop, and I am setting up STMCubeIDE and STMCubeMX again. That said, I became used to CubeMX being integrated inside of CubeIDE and I want my project generation to include the .ioc file. Hence, I'm choosing to install STM32CubeIDE 1.19.0 (despite the documented issues and reasoning for Version 2, I have yet to encounter a serious problem that would steer me away). That said, after reinstalling STM32CubeIDE version 1.19.0, the code generation is locked behind an error message:`Go to Help -> STM32Cube updates -> Connection to myST`. When I go to `Help->Check for Updates`, the only update available is to STM32CubeIDE 2.0.0. As I've explained above, I've been actively avoiding this version due to the removal of CubeMX integration in CubeIDE. Seeing as this was the only update, I tried to simply go to`Project -> Generate Code`, but nothing happened. This leads me to believe that for new install
Hello,I'm trying DUAL BOOT on STM32L471 and having a problem with SYSCFG->MEMRMP FB_MODE bit.I modified Dual Boot Bank Swap Boot Loader Example for STM32G4 project to fit my board, and everything goes well when the firmware put from the start of BANK1 (0x08000000). It starts from BANK1 and copies itself to BANK2, sets BFB2 of OPTION BYTES and calls HAL_FLASH_OB_Launch(). Then it starts from BANK2 (with address of 0x08000000 since FB_MODE=1) without problem.Then I put it from 0x08070000 (the last sector of BANK1) and adjusted VTOR, so that it's called as a sub-program from main which is positioned at start of BANK1(0x08000000), copies itself to 0x08080000, sets BFB2, and calls OB_Launch() but it doesn't boot from BANK2.VTOR must be set at the beginning of main like this:uint8_t bank = getActiveBank();if (bank == 1) SCB->VTOR=0x08070000;else SCB->VTOR=0x08000000; and modified linker script too.After calling HAL_FLASH_OB_Launch() to set BFB2, FB_MODE is also s
We are using STM MCU MPN : STM32U375VGT6Q for one of our new projects, we are currently using HSE External 16 MHz crystal for system clock.We are trying to configure the STM32U375 MCU to run at 96 MHz using an HSE external 16 MHz crystal. In STM32CubeMX, we are unable to find the PLL option sourced from HSE in the clock tree on the Clock Configuration page.Could you please advise us on below points:Use HSE (16 MHz) as the PLL sourceSet the PLL multipliers/dividers to achieve SYSCLK = 96 MHz
Hi,We are facing the same issue like the below community post. https://community.st.com/t5/stm32-mcus-products/flash-via-i2c-bootloader-problem-for-stm32g0b1kbu6/m-p/636467#M234685 But we are using 'STM32G431RBT6' in our project, kindly let us know if any specific pins need to be handled in this MCU for proper operation.Kindly reply on this as early as possible. Thanks,Ananthu
I created a custom STM32F411 PCB. I can program it and blink a LED for example just fine. I also have a STM32 blackpill board which uses the same MCU. When I run some USB HID code it works fine on the blackpill but once uploaded to my custom PCB and I plug it into my windows PC, it says the usb device malfunctioned and is not working. I followed all the guidelines from the datasheet for the USB design. (I dont need external pull-ups for D+, no need for VBUS sensing). Also I have a 25Mhz HSE clock that is properly configured for the precise 48Mhz USB clock even though its only running at FS. Any ideas to why this might be happening?
I am using a custom PCB based on ST25R3911B + STM32F072C8T6, and I am encountering an issue where FeliCa cards cannot be read.Initially, I used the X-CUBE-NFC5 software package downloaded from ST’s official website, along with the integrated RFAL library (the RFAL version should be V2.0.10). With this version, I was able to correctly implement most of the required functionality, including polling cards using ISO14443 / FeliCa / ISO15693 protocols. However, after running for several hours, the reader would occasionally enter a strange freeze/hang state. Because of this, I decided to upgrade the RFAL library.I then downloaded the STSW-ST25RLIB001 package from ST and ported the RFAL library from it (RFAL version should be V4.0.0). After the upgrade, the problem changed: as soon as a FeliCa card is detected, the system freezes immediately.To isolate the issue, I discarded all my own application logic and ran only demoCycle. In the demo, ISO14443 and ISO15693 cards work correctly, but FeliC
Hello,I’m working with STM32WB55CGU (UQFN68) on a WeAct WB55 board and trying to achieve ultra-low power during BLE idle / non-advertising periods using the STM32 WPAN framework.Expected behaviorAccording to ST documentation and examples:STOP2 mode with BLE stack idle should be in the tens of µA rangeI previously verified 10–20 µA STOP2 current without BLE enabled, so the board itself is capable of low powerActual behaviorWith BLE enabled (advertising):Idle (non-advertising period): ~1.1–1.4 mAAdvertising peak: ~8 mABLE communication works correctlyPB6 debug pin toggles, confirming STOP2 entryRemoving ST-LINK reduces only ~100–200 µAHardwareMCU: STM32WB55CGUBoard: WeAct WB55External LSE presentMeasured using shunt resistor + scope (differential measurement)Software setupBased on BLE_p2pServer exampleCube FW: STM32Cube FW_WB V1.23.0IDE: STM32CubeIDERF firmware loaded correctly (same as NUCLEO examples)USB, ADC, PWM, DMA disabled for low-power testMain loop while (1) { MX_APPE
Here is a more professional and technically concise rephrasing of your post, optimized for a developer forum or technical support ticket:Subject: Clarification on VBUS Sensing and Internal Pull-up Management for STM32WB55Hello,Based on the STM32 USB Training MOOC, it is highly recommended to implement VBUS sensing to distinguish between a "Suspended" state (no bus activity) and a "Disconnected" state (physical cable removal). This prevents back-powering the host via the internal D+ pull-up resistor when the device is self-powered.However, I’ve noticed a few discrepancies regarding the STM32WB55 implementation:Tooling: In STM32CubeIDE (Device Configuration Tool), there is no dedicated "VBUS Sensing" pin option available for the USB peripheral on this specific MCU series.Reference Hardware: Looking at the P-NUCLEO-WB55 schematics, there is no voltage divider or direct trace connecting VBUS to a GPIO for sensing purposes.Could someone please clarify the following for a self-powered
Hi, I have started from a project by Adam Berlinger.I have two UDP sockets, one receiving data max 500 bytes/s one sending data 200 bytes every 5 seconds and one TCPIP sending 4K every 20 ms.Netconn Api I have no problem. With BSD sockets, If I work receiving data from UDP socket from a single or maximum 2 clients the UDP socket works well, but if I have 3 or more clients sending data on that UDP port, after a while the sockets returns no data even if they are.If I ask to print stat at display everything seems to be correct and as I imagined there is full of available memory and of all, no error at UDP level.Do you have any idea on what is happening? I used the same code on LWIP 1.1 on another microcontroller slower with less memory but no dma, and everything worked very well.Best Regards
Just wanted to see if anyone could point me in the right direction regarding a problem I'm having with implementing a USB device using MSC in standalone mode. The code initialises correctly as far as I can tell but as soon as it gets into the main loop, a HardFault is generated - this seems to be because ux_device_tasks_run() is trying to access ux_system_slave->ux_system_slave_dcd which is not initialised. I cannot see a function in the CubeMX (v1.5.1) code base that performs this. I have a reference project for the U385 micro and have confirmed the ioc files for USBX are essentially identical. I can't see a DCD registration function in that project either but apparently it works (I have no way of confirming without the hardware). I think in previous Cube versions, a function called ux_device_stack_dcd_register() was exposed but that no longer seems to be the case. The intention must be for it to be carried out another way but I'm having a hard time working out what this
Hello. I have two setups: one STM32H5 Nucleo eval board and a custom STM32H5 board. The Nucleo runs with the LAN8742 PHY while the eval board runs with the KSZ9567R switch. Both are configured to use RMII. I'm using the NetXDuo stack for both. The Nucleo board works just fine, but the custom does not. The custom board SW is based on the Nucleo SW, except removing the LAN8742 interface. I've checked out the HW on the custom board and it looks fine. I'm trying to do a simple ping from the PC. The first message is an ARP message. I see it on Wireshark and it arrives just fine on the STM32. I see the MAC address and the source and destination IP which look correct in _nx_arp_packet_receivemessage_type : 1sender_physical_msw : 11352sender_physical_lsw : 3116224427sender_ip_address : 3232235781target_ip_address : 3232235787Then the SW creates the ARP reply and calls _nx_driver_packet_send. I can see the RMII Tx lines toggle after the ARP packet is sent, but for
Previous versions of cube had very nice board seelction tools.At the top of the screen was aa complete board descrription that enabled the easy selection of board features when starting a new project and wanting to see what peripherals were available on the board and chipThe current version 2.0 has very, very sparse information, inadequate to find out which boards havee what preipherals. The facility is easyt to provide since it simply references the sales literature available on the ST site.This information is not even available by double clicking on the products offered in the IDE.Furthermore, the online product selector is almost useless, there are 3 columns with identical headings under ADC converters. I presume these refer to differrent ADC capabilities, but am left in the dark as to their meaning.I understand that this might be a seldom used function, occurring once or twice in a product lifecycle, yet it is an invaluable tool.The filters are also very cumbersome when compared to
Good morning, I've been trying to create a simple program for several days that allows me to ping from my laptop to my Nucle F767ZTI board, but to no avail. I'm using CUBE IDE 1.18. I initially followed a tutorial and was able to do it, but only in debug mode, not with the board in running mode (normal operation), without using FreeRTOS but only by enabling ETH and LWIP. Is there a project I can import and then continue making my subsequent changes from there? This is because the ping is only the initial part of my project that I'm about to create. Can you send me a link where I can download and import the project? Thanks in advance.Here some lines codes that I use: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserv
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.