Get ready for the STM32 Summit 2026 | Online, November 3
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
Environment:MCU: STM32WB09KE, Cortex-M0+Board: NUCLEO-WB09KEIDE: STM32CubeIDE 2.1.0STM32CubeIDE Build: 27993_20260219_1630 (UTC)STM32CubeMX Version: 6.17.0OS: Windows 11 HomeFirmware package: STM32Cube_FW_WB0_V1.4.0Example project used: BLE_DirectionFinding_Central_LocatorSetup:I am using the STM32WB09 Direction Finding example project on the NUCLEO-WB09KE board.The project is based on ST’s provided STM32CubeWB0 package and the NUCLEO-WB09KE board files available here: https://www.st.com/en/evaluation-tools/nucleo-wb09ke.html#cad-resources The goal is to use two GPIO pins as antenna-switching control signals for AoA direction finding:RADIO_ANTENNA_ID_0 -> PB0RADIO_ANTENNA_ID_1 -> PB1PB0 works correctly. When configured as RADIO_ANTENNA_ID_0, I can observe the expected switching signal on a Saleae logic analyzer. Screenshot provided here: https://imgur.com/a/uk8L8tq Not much here, but zooming in into each pulse shows rapid switching- you can trust me. PB1
When U-boot is going to startup at the entry point address = 0x84000000, then this happens.IAC ID 137 is RISAF4 - DDR-SDRAM.SERC ID 32 is USART2.I don't know why USART2 seems to write at the Optee address region (0x82000000 - 0x83FFFFFF) and it all lands on 0x83FFFF80. The optee address region is secure and USART2 seems to write on this address.I have attached my complete device tree and I wonder if the ST dev team can help me to find why USART2 is trying to access 0x83FFFF80 in DDR-SDRAM?My processor is STM32MP257FAK.Note 1: The difference between 0x84000000 and 0x83FFFF80 is 128, e.g one byte. So I guess that something is shifted wrongly here?Note 2: I'm using LDO2 as VDDIO_SDCARD and BUCK7 for 3v3 for VDD_SDCARD. Because my PMIC is the STPMIC25A and not STPMIC25D. F/TC:0 0 pmic_get_voltage:192 vddgpu_pmic: get voltage: 800000 uV D/TC:0 0 set_opp:67 set clock to 800000kHz I/TC: Primary CPU switching to normal world boot INFO: BL31: Preparing for EL3
Hi! I am working on a design that uses an SD card and an STM32U5 MCU. In trying to educate myself more thoroughly about SDIO bus design, I've come across LVS (low voltage signaling), which is part of the UHS-I spec and required for reaching SD speeds above 25MB/s. I've not designed for this before, and an interested in examples that demonstrate the level-shifting part of this. I'd be particularly interested in solutions that allow the MCU to run at 3.3V, rather than 1.8V, though it's possible that this is an unusual thing to want (I'm still fairly ignorant about this...but keen to learn!)I'm wondering, then, if there are any ST eval boards that demonstrate this in any form? I found this forum post that suggests a few solutions, but most rely on the MCU being run at 1.8V. (I am further aware of the notion that some MCU's have a VDDIO domain that allows the MCU to run at 3.3V but allow some peripheral to be run at a different/lower voltage. Unfortunately the U5 series uses this
Hello, I am working on an application that uses the SDMMC peripheral to read the contents alternating audio files every 150ms. The buffers i have to store the data are large enough to store the entire file in a single burst within RAM. The problem I am running into is that intermittently, the sound "loops" indicating a lockup on the sound subsytem. I've added a small timer in SysTick in order to quantify how long and often this lockup occurs as the logic is running in a lower priority interrupt. I find that the system locks up between 300ms-1200ms. When I listen for this audibly and stop the code, I find that the code is stuck in:if(BSP_SD_ReadBlocks_DMA((uint32_t*)buff, (uint32_t) (sector), count) == MSD_OK) { ReadStatus = 0; /* Wait that the reading process is completed or a timeout occurs */ timeout = HAL_GetTick(); while((ReadStatus == 0) && ((HAL_GetTick() - timeout) < SD_TIMEOUT)) { } /* in case of a timeout return error */ if (ReadStatus == 0) { res
I normally use 1.19.0 because of the MX sillyness...When compiling you get warnings - let's take stm32h723xx.h as an example.Line 2516 is - #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)In 1.19.0 you get a warning - Description Resource Path Location Type(near initialization for 'output_port[9]') stm32h723xx.h /Cube-Wave-723/Drivers/CMSIS/Device/ST/STM32H7xx/Include line 2516 C/C++ Problem In 2.1.1 you get an error - Description Resource Path Location Typeinitialization of 'long unsigned int' from 'GPIO_TypeDef *' makes integer from pointer without a cast [-Wint-conversion] stm32h723xx.h /Cube-Wave-723/Drivers/CMSIS/Device/ST/STM32H7xx/Include line 2516 C/C++ ProblemAs it is actually your generated code I do wonder how this has slipped through your 'testing' process.I was awaiting a news item reporting on ST employees being treated for burns as their ears caught fire after I found this ;) Andy.
I have a Nucleo-WL33CC1 board which has been working fine, but after starting to work on a DEEP SLEEP implementation I can not connect any longer using SWD neither through Crossworks IDE nor CubeProgrammer. Any possibility to unbrick the board?
Hii everyone,I am designing AC-DC board using STNRG012 IC and used EVL012LED evaluation board for reference purpose and we are facing some isuess1. We design input voltage range from 90-305VAC.2. PFC boost voltage range would be 450V.so which parameter need to be consider while designing for this PFC range .3.Is there similar standard core available for PQ3812 but in your document you mention it NH9 material and in datasheet there no AL value for this core so is there any another simliar core available for it.4.Also want guidance related LLC section because my output voltage is 24V 10A or any reference circuit for it .
I have used a Micro USB cable and it doesn't insert. Help
Hi everyone! I am developing a custom inverter+control board and need to use motor pilot. Would someone please tell that apart from enabling UART TX and RX through Motor Control Workbench and wiring them, what additional hardware do I need for isolated connection to a PC?Thanks and Regards
On line 1695 of stm32h5xx_hal_eth.c ETH_MACTSCR_TSUPDT is used to set the timestamp counter, however page 2934 of RM0481 says this bit is used to add or subtract from the timestamp counter instead:Based on the description of this function, and its use elsewhere, this function should instead use ETH_MACTSCR_TSINIT to overwrite the timestamp counter. As it is at the moment, the current time is added to the counter every time there is a PTP sync meaning the time fluctuates wildly over a century and a half span, and the time is never close enough to use fine adjustment methods.Also consider adding a line to enable PLL1Q's output to the HAL Ethernet init function, that was another fun bug to track down...
Split from Sensor TileBox Pro - orientation of X,Y,Z axes ? - this is a new question.Ok, so I will go with what I measured.I have the output from MEMS Studio for temperature. It says the temperature is 32.18C, which is 0x0c90 There is no such hex value in the entire file and so I am wondering how mems studio got the value file attached
So along time ago I created a very helpful program using an STm32H743ZI nucelo board. Then - STM discontinued that board -- GRRRR The recommended solution was:NUCELO-H755ZI-Q - so I purchased 4 of these. PROBLEM there are no usable examples in the STM32 cube suite that works with this board. I need to port my old STM32H743 code to this new chip GRRR Ok that should be easy. Turns out there is a huge problem with using this board because of the power supply, the key feature I need is exactly the ETHERNET interface. BUT - cubesuite does not have a ETHERNET example I can start from.. ie: that properly initializes the board to run at "some fast speed (i do not really care, speed is not important, I just need the 100mbit ethernet to work). The specific problem I had was I programed my board and evidently it locks the board up hard, jtag no longer works. The solution is to use a jumper force the chip into "BOOTLOADER MODE" then JTAG works again and I can flash-erase the chip via JTAG. I do no
Hello, I was using CubeMX with CubeIDE and since the release of CubeMX2, VSCode is promoted as the go-to.At the same time, CubeIDE got an update to importe Cmake project. What are the plans ?Will MX2 continue to support CubeIDE with Cmake only ? Will CubeIDE project exports be added to MX2?Or will VSCode be the main target for MX2?In sumary, which workflow will be the best for future dev since ST seems to refactor its whole ecosystem ?
This software has started reporting memory issues and wanting to close every few minutes. This never used to happen until I updated to 2.0.0 and I wrote a bunch of code in a fairly large project this week. I have tried all the suggestions that I could, ending in updating to 2.1.1 and it doesn't go away.I tried updating the memory usage to 6GB of RAM (in steps) in the file stm32cubeide.ini (-Xms and -Xmx). I deleted a bunch of folders in the /Users/xxxxx/ directory that started with .stm which worked for another person on this forum.I can't do my work anymore. This software has become unusable! I really don't know what to do to get it back to the way it has worked for the past decade.Any advice would be greatly appreciated. If I need to contact IT about something they might have installed on this computer that is breaking this program, I could use some direction as to what that might be. Thanks! Michael
HI,as we understand, TouchGFX does not provide support for mulitple layers, even though many targeted STM32 controllers do.We need to display a live image from the camera (at maximum possible frame rate) and overlay some gaphics on the top of it. Kind of OSD. What is the best/recommended way to achieve this task with TouchGFX? Is it feasible to do so with TouchGFX at all or the resulting performce will suffer too much?What do we do with StemWin - the hardware LTDC Layer 0 is used for the camera live image, while Layer 1 is for any graphics over the latter. Neither of two get affected by each ohter and very high frame rate is achievable without visible performance degradation.What solution TouchGFX may offer for similar tasks? Thanks.If it is matter:The display resoltion is 800x600, the camera image is a standard grayscale PAL 720x576
Hi, I am using STM32G491 with 2 FDCAN channels. FDCAN1 is working normally for sending and receiving data. FDCAN2 is sending out data normally, but it can't receive any data, not able to generate any receiving interrupts. Here is the initialization code. Can anyone have any ideas what could be the issue? Thanks. void MX_FDCAN2_Classic_Init(void) { FDCAN_FilterTypeDef sFilterConfig; __HAL_RCC_FDCAN_CLK_ENABLE(); hfdcan2.Instance = FDCAN2; hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1; hfdcan2.Init.FrameFormat = FDCAN_FRAME_CLASSIC; hfdcan2.Init.Mode = FDCAN_MODE_NORMAL; hfdcan2.Init.AutoRetransmission = DISABLE; hfdcan2.Init.TransmitPause = DISABLE; hfdcan2.Init.ProtocolException = DISABLE; //CAN 500kbps hfdcan2.Init.NominalPrescaler = 16; hfdcan2.Init.NominalSyncJumpWidth = 1; hfdcan2.Init.NominalTimeSeg1 = 2; hfdcan2.Init.NominalTimeSeg2 = 2; hfdcan2.Init.DataPrescaler = 1; hfdcan2.Init.DataSyncJumpWidth = 1; hfdcan2.Init.DataTimeSeg1 = 1; hfdcan2.Init.D
Environment:MCU: STM32WB09KE (Cortex-M0+)Board: NUCLEO-WB09KESTM32CubeIDE Version: 2.1.0STM32CubeIDE Build: 27993_20260219_1630 (UTC)STM32CubeMX Version: 6.17.0Operating under Windows 11 Home.The project previously built successfully before updating CubeIDE @ approx. 23 February 2026. The "Installation History" tab in CubeIDE poorly reflects this update action however.Toolchain / IDE: STM32CubeIDESetup:In this page, ST generously provides us a .zip folder containing existing application projects that STM32WB0-series users can import, edit, and build directly. Version: 1.4.0.After extraction, the project "BLE_DirectionFinding_Central_Locator" (inside ..\<unzipped_folder>\STM32Cube_FW_WB0_V1.4.0\Projects\NUCLEO-WB09KE\Applications\BLE) is what I've been using.Error: After updating CubeIDE, the following output appears on console:13:43:14 **** Incremental Build of configuration Debug for project BLE_DirectionFinding_Central_Locator **** make -j16 all arm-none-e
I am working on an STM32F746G-Discovery board using LwIP (2.1.2) and FreeRTOS (CMSIS-RTOS V1) generated via STM32CubeMX. I am facing a persistent issue where the gnetif.ip_addr.addr field is populated with a garbage/static value before DHCP can complete, specifically 0xf44fd102. The Issue: Even after performing a memset(&gnetif, 0, sizeof(struct netif)) before MX_LWIP_Init(), the debugger consistently reports the following for the IP address variable: Hex: 0xf44fd102 Decimal: -196095742 Translated IP: 244.79.209.2 (Multicast) It appears the Ethernet DMA is writing multicast network traffic into the memory space allocated for gnetif, or I am facing a D-Cache coherency issue where the CPU is reading "stale" data from a previous boot/session. Current Configuration: CPU: STM32F746NGH6 (Cortex-M7) Cache: I-Cache and D-Cache enabled in main.c. PHY: LAN8742A (RMII mode). Clock: 216MHz (HSE used as source). MPU: I have attempted to configure the MPU to set the SRAM1 regio
Hello, I am using the STM32H7B3I-EVAL board with STM32H7B3LIH6Q controller. I downloaded and flashed the official demo HEX files from the STM32H7B3I-EVAL package provided on the ST website. Programming is now successful, but I am facing an issue with the TFT display. Problem: TFT backlight turns ON No graphics, logo, GUI, or display output appears on screen Screen remains blank/black In some demo files (for example: STemWin-STM32H7B3I-EVAL_V1.0.1.hex), all 4 user LEDs PG13(1) LED1 MFX IO11 LED2 MFX IO12 LED3 MFX IO13 LED4 turn ON after boot I already checked: TFT ribbon/cable connection Successful flashing through STM32CubeProgrammer Multiple demo HEX files from the package Power supply and ST-LINK connection Still, nothing is displayed on TFT. Could anyone please suggest: Whether external memory (OSPI/QSPI SDRAM) initialization may be failing? Whether this i
Hello,i did the OEMiROT examples following How to start with OEMiRoT on STM32C5 using CMake by converting the EWARM project config. I would like to give that CMake config back as well as some fixes to the provisioning script / example_config. Where/How do I that?I know the GitHub Repo, however since there are no open/close tickets, I wounder if that is the right place.
I am trying to run this demo, but I am receiving an error.How should I program this board? Should I use an ST-LINK or a USB-to-TTL adapter, or is a direct USB Type-C connection sufficient? I am trying to program it via TouchGFX Designer. I have read the following guide, but I couldn't quite understand the process: https://www.st.com/resource/en/brochure/guide-how-to-get-started-with-tsd-knob-display-and-touchgfx.pdf"Error message :"Serial Port COM26 is successfully opened.Port configuration: parity = even, baudrate = 921600, data-bit = 8, stop-bit = 1.0, flow-control = offTimeout error occured while waiting for acknowledgement.Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration. Reset your device then try again...Failed connecting to target. Try unplugging and replugging the device and try again.If the problem persists, please check that the option byte nBOOT_SEL is set to false. Refer to readme.md for more information."
Hello,I use the STM32 Motor Control Software Development Kit (MCSDK version 6.4.1). I created a new project with the STM32G474E-EVAL microcontroller board, the two IHM07M1 motor-drivers (power boards), the two modified X-NUCLEO-IHM09M1 adapter (connector) boards, and two gimbal 12V 3-Phase BLDC motors with encoder AS5048A. The project code was generated. By the way, I have not bought all the hardware yet. Our project is specific. For all microcontroller boards and their software, which I know, it is true that setting zero speed holds a motor's rotor in a fixed position. We need to accelerate two motors' rotors for 180 degrees and let them rotate by inertia for next 180 degrees. In this way, a rotor makes one full 360-degree circle path. It seems that the MCSDK Motor Pilot makes a rotor in a fixed position if the motor speed is set zero. Hence, we need to depower the motors while the rotors make the 180-degree path by their inertia. I doubt that the MCSDK Motor Pilot can completely
Hi, I wanted to set up time keeping on my Discovery board for testing something. I see the following in the documentation for the larger STM32F769-EVAL: https://github.com/STMicroelectronics/STM32CubeF7/blob/master/Projects/STM32F769I_EVAL/Examples/RTC/RTC_InternalTimeStamp/readme.txt - This example runs on STM32F779xx/STM32F777xx/STM32F767xx/STM32F769xx Devices.- This example has been tested with STMicroelectronics STM32F769I-EVALboard and can be easily tailored to any other supported device and development board. - STM32F769I-EVAL Set-up- Make sure that JP15 is in position 2-3 to connect 3V battery to VBAT pin. At first I didn't know -EVAL and -DISCO are two different things and kept searching through the manual for the -DISCO where JP15 seems to have a different role. But the first line from the docs makes me think there has to be an RTC on the -DISCO board. I take it I need to put a 3.3V battery somewhere. In the diagram I see a number of 3.3V conne
Hello, I ran into an issue when testing a UART application on a STM32C562RE in loopback mode with RTS and CTS enabled. The app does the following:1. Start receiving 1 character at a time by using HAL_UART_Receive_IT.2. Send a string 3. After the received character is printed out I issue another call HAL_UART_Receive_IT.Everything works fine; the app prints out the string I sent. I wanted to make sure the hardware flow control was running correctly so I placed a HAL_Delay(1) after I print out the character received and before I issue a new call to HAL_UART_Receive_IT. This should stop the transmitter due to the CTS -> 1 (no more room in the Rx buffer) and it should restart it after I issue the HAL_UART_Receive_IT CTS -> 0 due to available room in the Rx buffer; and, it does. All the characters are received as expected however HAL_UART_Receive_IT returns HAL_ERROR. Everything seems normal except the error returned by HAL_UART_Receive_IT.I de
Hello Everyone,I'm checking the STM32WL5MOCH6TR MCU of a custom board that i made a few years ago, and I don't understand something : - On the datasheet, it says that its frequency range supported is 864–928 MHz- When I open a CubeIDE project, I'm able to set a much wider range : LoraWAN example : SubGHz_Phy example : Is that intentional ? Maybe those Middlewares are general-purpose?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.