Ask questions on STM32CubeIDE. Discuss how to build, debug, configure, and optimize your project as well as how to use our software tools.
Most recent activity
An issue has been identified in STM32CubeIDE 1.19.0 and earlier versions where a download error pop-up may appear during data updates. This issue does not prevent STM32CubeIDE from functioning properly. To continue: click OK twice. STM32CubeIDE should then operate normally. Optional workaround If this pop-up impacts your workflow, you can disable the Auto-Refresh feature: Go to Window → Preferences In the search field, type Firmware Updater Select: Offline Mode No Auto-Refresh at Application start Notes If Auto-Refresh is disabled, STM32CubeIDE will use the local cube-finder-db.zip file and will not automatically retrieve updates. Manual update If needed, you can manually update the data via: Help → STM32Cube Updates → Check for Target Selector Device Database Updates
We are pleased to announce that STM32CubeCLT 1.22.0 release is now available What is new in 1.22.0: Updated to align with STM32CubeIDE v2.2.0 Updated STM32CubeProgrammer to version 2.23.0 Updated ST-LINK GDB server to version 7.14.0 Updated JRE™ to version 21.0.10+7 Updated STARM-Clang to version 21.1.1+st.7 Updated Ninja to version 1.13.2 Updated CMake to version 4.3.1 Added support for make 4.4.1_st_20260330-0700 Main fixed issues in 1.22.0:Refer to the following Link here Know problems and limitations in 1.22.0: Refer to the following Link here How to get STM32CubeCLT 1.22.0: Download STM32CubeCLT 1.22.0 from here
We are pleased to announce that STM32CubeIDE 2.2.0 release is now available. What is new in 2.2.0: Added support for: STM32H5 microprocessors to the STM32H5 series STM3U3 series microprocessors to the STM32U3 series STM32V8 series Added support for new boards: NUCLEO-H553ZG NUCLEO-U345RC-Q, NUCLEO-U366RE-Q, STM32U366E-DK NUCLEO-V873XJ, and STM32V873J-DK Updated the target Platform to Eclipse 2025-12 and CDT™ 12.3.0 Added Multidrop support for debugging: STLINK-GDB server OpenOCD Segger J-Link Updated CMake to version 4.3.1 STARM-CLANG to version 21.1.1+st.7 Added support for OpenSTLinux 6.2.1 CMake static library template Ubuntu 26.04 and Fedora 44 Dependencies versions updates: Eclipse® 2025-12 and CDT™ version 12.3.0 Bundled JRE™: Adoptium® Temurin® 21.0.10+7 with JavaFX 21.0.10 ST-LINK GDB Server 7.14.0 supporting ST-LINK/V2 and STLINK-V3 SEGGER J-Link GDB Server V9.42 STM32CubeProgrammer v2.23.0 Open On-Chip Debugg
I'm in debug mode in STM32CubeIDE.On the SFRs tab in the upper right corner, I want to enable UART4 and check the register status.But I only see UART-related items: LPUART/USART1/USART2/USART3.Why can't I find UART4?My MCU is an STM32C551RCT6.I'm very certain this IC has UART4
Hello everyone.I will use my MCU to acquire big amounts of analog data and transfer them to a host using UDP.As DTCM is 128K and SRAM1 is 368K I would like to store those data in SRAM1. As an exercice I’m trying to configure LwIP in SRAM1.I’ve followed many tutorials (MPU is, I beleive, set correctly) :with a cache protected region where all the LwIP data should be (normally it should only matter when I’ll run this program) I’ve also configure ETH to point to this area :And Lwip is also configured with this same areaAnd the flash script is also set :But when I compile the code directly after importing from cubeMX, I get :Data are not in SRAM1, they are in the DTCM.Am I missing something ? Do I have to set some options in the compiler ?Also I’m a bit surprised to see that 4 descriptors x 32 bits = 0xa0 (0d160) ??? Or F777 descriptors are 40 bits ?Thanks to anyone who will take some time to help me.Best regards
I am unable to debug my code currently, due to the debugging configurations not being set up - this is from importing the cubemx project into the cubeIDE. an error saying the selection cannot be launched but when attempting to add configs in the debugging properties it does allow me to add any - is there anyway of using default debugging and running settings without having to add custom ones?
Since updating to STM32CubeIDE v2.2.0 (and on a fresh install of v2.2.0), when I program my target STM32 (F413ZH) using a Segger J-Link, the code does not run until I power cycle the target. I’m fairly certain this issue coincided with me switching from CubeIDE 2.1.1 to 2.2.0.I have tried all 3 reset methods in the Debugger settings (Normal, Core, ResetPin), and they all exhibit the same issue. With ResetPin selected, a scope capture of the NRST line shows it asserting only once at the beginning of programming.I also tried STM32CubeProgrammer, with the J-Link dll update to v9.56, and it does work when the “Run after programming” box checked.As far as I can remember I didn’t change anything in the Run configuration when switching from 2.1.1 to 2.2.0. The GBD console log (below) shows “Starting target CPU...” and then right after “Debugger requested to halt target...Target halted” and then it is never resumed or started again. Additionally, I believe the GDB console in v2.1.1 had more a
The new version of CubeIDE is truly terrible.With a new project, there's no way to tell if it was created via the IDE or MX.On top of that, they don't synchronize with each other—an issue that never occurred with the unified versions up to 1.19.
I am trying the NUCLEO545RE-Q. I created a project, imported it to STM32CubeIDE 2.2.0. The build button is grayed out. I found several videos for version 2.0.0 where is easy and straight forward. With this version is not and I couldn’t find any help. What am I doing wrong?
Hi, I have just installed STM32 Cube IDE 2.0.0 for Mac OS Apple Silicon, and then installed the GCC ARM for STM32 10.3-2021.10 toolchain through the toolchain manager. However when I import a project using this toolchain I get the nullgcc error.I also tried creating a new project and setting the toolchain to 10.3-2021.10 but still get the same error.When I look into the eclipse plugins folder searching for the toolchain binaries, I only see a .jar file but not the actual compiler folder with the binaries ls -l /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/ | grep gnu-tools-for-stm32Jul 9 11:22 com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10_1.2.100.202508251041.jarJun 26 11:52 com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1.macosaarch64_1.0.0.202602081740un 26 11:52 com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1_1.0.100.202601091506.jarJun 26 11:52 com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32_2.
This covers two separate problems.unsafe relocation. This is coupled with a “cannot find routine xxx”. The cannot find xxx is explained by a changed #ifdef that did not include a routine. The problem that also cropped up was an “unsafe relocation” which doesn’t seem to mean all that much (I know the explanation) in the way of solving the problem. This is “fixed” by going back to 13.3.rel1. and changing the #ifdef. Interrupts not working FreeRTOS latest primask register goes to 0x80 when default task is created. taskEXIT_CRITICAL() does not change that mask Timer, systick, and any other interrupts remain disabled after the first task. If no tasks are created, then primask may or may not be properly set, but the interrupts do not work FREERTOS insists that interrupts should be disabled (read the documents!) and will be re-enabled when the scheduler runs. with 14.3.rel1 interrupts are not enabled. resetting GNU tools to 13.3.rel1 seems to make it all work (and it had been wo
IF it’s failed to connect, and given an error code of -1, how can that be “No error” ?! Also the suggestion “Please check power and cabling to target” is useless here - it’s not a target connection issue! The focus of this thread is the silliness/unhelpfulness of the messages.Not looking for solutions to the underlying issue here.For that, see:
TL;DR: Right click your project in Project Explorer, click Properties > C/C++ General > Indexer > Enable Indexer if option is not checked. Hi all,I have seen other posts in the community about Autocomplete not working with their projects, with fixing the indexing being a possible solution that does not work for many. I have seen that some go to Window > Preferences > C/C++ > Editor > Content Assist > Advanced and enabled “Parsing-based Proposals”. For me, that did not work either, and I could not get any Autocomplete results for the HAL library or any imported APIs/libraries.However, I finally found a possible culprit when Right-Clicking a HAL_Init( ) call within my code and clicking References > Workspace/Project. A window should pop up and may relay the message “unknown results: indexer is not enabled”).Window is in top right.The solution for this lies in right clicking your project in Project Explorer and clicking Properties > C/C++ General > Indexer
Hello guys, I started a project using STM32C552RET6 and STM32CubeIDE. When I use the autocomplete feature to select a HAL function, I can’t find it. I have to type the function manually.Does anyone know how I can fix this problem?Thanks for your help.
For a long time, on STM32F0, I have been using the RCC_APB2ENR_DBGMCUEN bit as a reliable indication that a debug session is active with CubeIDE - see: But this seems to have broken recently:It now seems that RCC_APB2ENR_DBGMCUEN is not set unless the ‘Debug in low power modes’ option is set in the Debug Configuration. Even when RCC_APB2ENR_DBGMCUEN is set at the start of a debug session, doing a Reset during the session (‘Reset’ button on the toolbar) will clear it.Or was this always the case, and I just happened to be (un)lucky enough never to notice it? PS:As noted in the linked thread, the DEBUGEN bit in DHCSR (the Debug Halting Control and Status Register) is not available on Cortex-M0 - so that cannot be used.
Previously:In that thread, @Pavel A. said:The helpful AI informs that user can define several ranges of ports to exclude from automatic allocation - but this won't prevent other apps to use these ports explicitly. The command is netsh int ipv4 add excludedportrange protocol=tcp startport=<port_number> numberofports=<N(Unfortunately, linking to specific posts within a thread is broken at the moment) The problem has now recurred: and, indeed, it does seem that the mentioned ports - 61235 & 61234 - are in an excluded range C:> netsh int ipv4 show excludedportrange tcp activeProtocol tcp Port Exclusion RangesStart Port End Port---------- -------- 5357 5357 49679 49778 49879 49978 50000 50059 * 50160 50259 59330 59429 59541 59640 59864 59963 61196 61295* - Administered port exclusions.This was working fine this Moring, so the question remains: Why has this range suddenly g
After pressing the ‘Debug’ or ‘Run’ button with no target connected (or the connected target powered down), CubeIDE v2.1.1 immediately gives the “Target no device found” message in the Console window: But the UI is then locked-up for 30 seconds or so before the error pop-up appears:You can’t do anything in this time - you have to just wait for the pop-up. Not having the target connected and/or powered-up when starting a debug session is one of those silly D’oh! mistakes, and it’s immediately obvious the instant the message appears in the Console window - it is frustrating to then have to sit around waiting for the IDE to catch up before trying again. (I’m sure I had posted this before, but can’t seem to find it - maybe it got lost in the forum changeover?)
this is my code ADC real value read and calculation part but ADC real value not real when input drvoid process_adc_averages_and_filter(void){for (uint8_t ch = 0; ch < ADC_CHANNELS; ch++){uint32_t sum = 0;for (uint8_t i = 0; i < ADC_SAMPLES; i++){sum += adc_dma_buf[i * ADC_CHANNELS + ch];}adc_avg[ch] = sum / ADC_SAMPLES;// Apply exponential low-pass filter//float alpha = 0.1f; // Filter strength/// adc_filtered[ch] = (1 - alpha) * adc_filtered[ch] + alpha * adc_avg[ch];// adc_hist[ch] = (adc_hist[ch] * 31 + adc_avg[ch]) / 32;// adc_filtered[ch] = adc_hist[ch];// Fast stable filter// single smooth filter// adc_filtered[ch] = (adc_filtered[ch] * 0.95f) +/// (adc_avg[ch] * 0.05f);adc_filtered[ch] = (adc_filtered[ch] * 31 + adc_avg[ch])/32;}vfb_adc_fixed = (adc_filtered[3] + 2) / 5 * 5;Vref = 160.0f + (adc_filtered[1] * 100.0f / 4095.0f);Gain = 0.5f + (adc_filtered[2] * 30.5f / 4095.0f);Adjust = 0.5f + (adc_filtered[0] * 4.5f / 4095.0f);int32_t difference = (int32_t)vfb_adc_fixed - (i
──────────────────────────────────────────────SUMMARY──────────────────────────────────────────────While porting an existing STM32L4 project to an STM32L562CE target, source-levelbreakpoints are never hit and adding watch expressions fails with "No symbol incurrent context". The target runs normally (no fault), and manual pause resolvesto a plausible source line, but no symbolic debug capability works. Behaviour isidentical across both the ST-Link GDB server and the SEGGER J-Link GDB server,indicating a target/build-side cause rather than a debug-probe cause. ──────────────────────────────────────────────ENVIRONMENT──────────────────────────────────────────────- Target MCU : STM32L562CE (Cortex-M33, ARMv8-M), Device ID 0x472, Rev Z, 512 KB- Target board : External custom/eval STM32L5 board (self-powered, 3.3 V)- Debug probe : On-board ST-Link of a NUCLEO-L476RG, used to program the external L5 target via CN4 SWD (CN2 jumpers removed)- ST-Link firmware : V2J47M34 (ST-L
Hello,How can I configure CubeIDE V2.1.1 to automatically swtch back to C/C++ perspective when GDB connection is lost?Best regardsMich
When the connection fails “unexpectedly”, CubeIDE keeps re-trying for a long time: Although “unexpected” to the IDE, the reason may be obvious to the user - so it would be useful to be able to cancel these retries, exit the Debug Session, and return to the C/C++ perspective. See also:
Hi all,I know there is a newer version of this (v2.2) but I'm still on the old one. I can click the ok button on the "Download has failed, some data may be not updated. Please retry later" window and the target selector shows up but the project I make (TestH7A3VIT6) for STM32H7A3VIT6 has an exclamation point on a triangle in it.BTW I'm using this in my windows 11 laptop and there is no crdb.zip in the repository folder.So is STM32CubeIDE 1.19.0 too old and not supported anymore? I'm trying to avoid some of the early bugs in STM32CubeIDE v 2.x.Thanks
I have created a project and none of the options on my screen seem to do anything. All im trying to do is compile a simple code on STM32CubeIDE and flash a board using the STM32CubePRG software.
I’ve noticced recently that in CubeIDE 2.x, the MXCube program was separated from CubeIDE and is now a standalone app. I’ve also noticed that the extensions download a more recent C standard for STM32 compiler and MCUFinder is now web-only. This to me signifies a pivot in where STM is going with development environment and my guess is that everything will focus on VSCode extensions. Having said that, I’m inclined to port my whole project in VSCode but I want some reassurance that the platform and its MCUs will get future enhanced support for VSCode extensions and better integration.So far, CMake scrips in VSConde aren’t fully fledged, specifically missing out-of-the-box commands and buttons for:- Switching active configuration (Debug or Release)- Flashing the target MCU.- Debugging via line-by-line walkthroughs.- Set debug levels and optimisations.- Set hardware or software floating points.- Output .bin firmwareMy question is. Is this the case and is better for me to port everything to
EDIT: Solved. It seems to just be that one pin that isn’t working. I tried a couple other ones and they work fine.Hello, sorry if this is a silly question, but I'm pretty new to all of this. I've recently picked up Israel Gbati's Bare-Metal Embedded C Programming. It gives a step-by-step walkthrough on how to turn on an LED using pin D12/PA5, but I'm struggling to connect to any of the other pins.I've been trying to connect my LED to pin D0/PA3. My code is below.#define PERIPH_BASE (0x40000000UL)#define AHB1PERIPH_OFFSET (0x00020000UL)#define AHB1PERIPH_BASE (PERIPH_BASE + AHB1PERIPH_OFFSET)#define GPIOA_OFFSET (0x0000UL)#define GPIOA_BASE (AHB1PERIPH_BASE + GPIOA_OFFSET)#define RCC_OFFSET (0x3800UL)#define RCC_BASE (AHB1PERIPH_BASE + RCC_OFFSET)#define AHB1EN_R_OFFSET (0x30UL)#define RCC_AHB1EN_R (*(volatile unsigned int *) (RCC_BASE + AHB1EN_R_OFFSET))#define MODE_R_OFFSET (0x00UL)#define GPIOA_MODE_R
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.