Ask questions on STM32CubeMX. Discuss code generation and configuration challenges, among other topics.
Most recent activity
Hi!I have an issue with the upgrade process of the X-CUBE-FREERTOS plugin. It happened upgrading to 1.3.0 and to 1.3.1 as well: the list of tasks defined in CubeMX seems to be retained in the CMSIS RTOS2 tab as well as the other settings, but when regenerating the code the definitions disappear, and they have to be entered again,Is there anybody else with this issue? Could this be a bug? Configuration:STM32CubeIDE 1.18.1STM32CubeMX 6.14.1X-CUBE-FREERTOS 1.3.1
Hi, I’m working with the STM32N6 board and need to configure the FDCAN1 parameters. I’m using the 64 MHz internal clock, and I calculated the bit rate using the Bit Rate Calculator. I want to set a baud rate of 500 kbps, but I’m unable to do so. The configuration always shows a default value of 1000 bps, and it does not change even when I modify Nominal Time Segment 1 & 2 or the Prescaler. In the clock configuration, the FDCAN1 frequency is set to 200 MHz. Here are the steps I have already tried: Changing the APB clock. Changing the FDCAN1 clock frequency to 100 MHz. Checking both the FSBL and application layers. Using the STM32 example code from the repository. Testing on an N6 Nucleo board — the baud rate still does not change I have also attached the project file for the reference. If anyone has encountered this issue before or has any suggestions, please let me know. Thankyou.
Hi,I am running into thread exception while running CubeMx on MacOs M4 Pro.Platform: MacOs M4 ProCubeMx (About): Java (21.0.8 (9)) [STM32CubeMX 6.16.0 Mac ARM]When I try to open Airoc-Wi-Fi-Bluetooth Pack under Middleware, I get following exception and call stack.Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: column must be valid, was-1 at org.jdesktop.swingx.JXTreeTable.isHierarchical(JXTreeTable.java:2022) at org.jdesktop.swingx.JXTreeTable.getEditingRow(JXTreeTable.java:1162) at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleChild(JTable.java:7222) at java.desktop/javax.swing.JTable$AccessibleJTable.getAccessibleAt(JTable.java:7612) at java.desktop/javax.swing.JTable$AccessibleJTable.valueChanged(JTable.java:7133) at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:231) at java.desktop/javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:20
The environment I tested is as follows.IDE: STM32CubeIDE 1.5.1Package: STM32F767IIPackage software version: 1.16.1JPEG settings are as below.However, there is a typo in the config file that is actually generated.[ jpeg_utils_conf.h ]#ifndef __JPEG_UTILS_CONF_H__ #define __JPEG_UTILS_CONF_H__ /* Includes ------------------------------------------------------------------*/ #include "stm32f7xx_hal.h" #include "stm32f7xx_hal_jpeg.h" /* Private define ------------------------------------------------------------*/ /** @addtogroup JPEG_Private_Defines * @{ */ /* RGB Color format definition for JPEG encoding/Decoding : Should not be modified*/ #define JPEG_ARGB8888 0 /* ARGB8888 Color Format */ #define JPEG_RGB888 1 /* RGB888 Color Format */ #define JPEG_RGB565 2 /* RGB565 Color Format */ /* * Define USE_JPEG_DECODER */ #define USE_JPEG_DECODER 1 /* 1 or 0 ********* Value different from default value : 1 ********** */ /* * Define USE_JPEG_ENCODER *
Hi, I have been using NUCLEO-H755ZI_Q board for initial software development and evaluation. I wanted to use STM32H755IIK3 but as nucleo version was not available, I have been working with LQFP144 version. I want to switch MCU model to this BGA and make custom hardware. What is the best practice for MCU model switch? I was looking this: https://community.st.com/t5/stm32-mcus/how-to-switch-from-one-stm32-to-another-using-stm32cubemx/ta-p/49884 But CubeIDE seems to be different.
Hi, I'm facing a problem with the Clock Configuration tab with the latest version of the STM32CubeIDE. In fact, every time I open the ioc file, there is an error with the SMPS Clock Mux on the STM32WB board I'm using. I correct and generate code and saved but when I open the file again the error is still there. I'm using the latest version of the Cube.Thanks.
Dear STM32CubeMX Support Team,I would like to report two issues encountered while using X-Cube-AI version 10.2.0 during model analysis and training on the N6 series MCU with NPU support.Bug 1: Memory Pool View Cannot Be Horizontally Scrolled in Netron GraphAfter analyzing a model and clicking "Show Graph", the generated Netron visualization displays the memory pool section with a very long vertical axis that extends beyond the visible area. However, the view cannot be horizontally dragged or scrolled, which prevents full visibility of the memory pool details. This makes it difficult to inspect memory allocation information, especially when working with complex models.Expected Behavior: The memory pool section should allow horizontal scrolling or panning to fully view all data.Current Behavior: The graph is truncated; no scroll or drag functionality is available for the memory pool axis.Bug 2: Inconsistent Unit Display Between External Flash and Memory PoolsIn the X-Cube-AI configration
Hello,If DCMIPP parallel mode is selected then CubeMX do not generate HAL_DCMIPP_MspInit function to initialize and enable DCMIPP CLK, pinout, IRQ, there is only weak empty declaration in stm32n6xx_hal_dcmipp.c, without initialization settings nothing works...I do not checked other modes.
I pulled down the latest CubeMX (v6.15.0) to do a parametric search for a new part. Needing > 70 GPIOs and USB device function but not much else, I narrowed in on the STM32G0B1 series.When I start CubeMX, I'm told there are 4801 items in the parts list, When I filter on "STM32G0B1", that drops to 103 items. However... if I then filter on either "USB FS" or "USB Type-C", that number drops to 97 parts. I exported a before and after and diffed the lists, and found that the 7 parts that fell out of the list were all STM32G0B1VE parts. The 'VB (128K flash) and 'VC (256K flash) parts were in both lists, only the 'VE (512K flash) parts appeared to lack the "USB FS" and "USB Type-C" attributes.This is a mistake, correct? The 'VE parts have all the same peripheral features as the 'VB and 'VC parts, yes?Dana M.
ST moderator edited the title to give more visibility on the issue/subject Hello, I have a board with an STM32C092KCU6 where the main clock is using the HSI48 internal oscillator but I also have an 8MHz crystal for the HSE oscillator to use for FDCAN for higher precision. When the HSE is clocking just the FDCAN module the CAN does not work. I can get the CAN to work by using HSI48 as the FDCAN clock source. I can also get the CAN to work if I use HSE as the main clock (but it is too slow) or if I enable the clock output MCO2 with HSE as its source or also if I enable the RTC module and set HSE as its source. So it seems that the HSE oscillator will only work if it is being used on FDCAN + one other place. Osc for core CAN clk RTC clk MCO2 CAN working? HSI48 HSE - - No HSE HSE - - Yes HSI48 INT - - Yes HSI48 HSE HSE - Yes HSI48 HSE - HSE Yes HSI48 HSE - HSI48 No I first thought this was a gain margi
I am using STM32CubeMX in version 6.14.1 with STM32U585OIY6QTR selected.Trying to Setup VREFBUF Mode I can not set anything since it is greyed out.VREF should be supported by this MCU.
Hi,I'm experiencing an issue with the X-Cube-AI Pack (version 10.2.0) on Windows 10.After using the X-Cube-AI Pack, the syscalls.c file is either not generated at all, or if it already existed in the project, it gets deleted during the process.This is causing build failures since the file is required for proper compilation. I've tried this on multiple projects and observed the same behavior consistently.Could you please investigate this issue? It would be helpful if you could confirm whether this is a known problem or if there are any workarounds in the meantime.Thanks in advance for your support!Best regards
We are pleased to announce that STM32CubeMX 6.16.0 release is available. What is new in 6.16.0: Added support for new microcontrollers across the STM32WBA, STM32N6 and STM32H5 series and the STM32WL3x product line. The related new boards include the NUCLEO-WL3RKB1 and NUCLEO-WL3RKB2. Implemented the "Start from Board" feature for NUCLEO-WL3RKB1 and NUCLEO-WL3RKB2: Preconfigured board setup through the Start From Board feature simplifies project creation and significantly reduces development time. Released a new installer that natively supports Apple® Silicon : Native support of ARM64 for mac computers. Implemented the memory management tool for STM32N6: This feature is designed to assist developers in configuring and optimizing the memory layout of their STM32N6 projects efficiently. Enhanced the build process using CMake: Default configuration: ST ARM CLANG with its own linker instead of GCC linker. Picolib is selected as default library for the b
Hey, I want to open a project from my peer, but i cant because the version for STMCubeMX with which it was generated is newer then mineI then do that and 'Check for Updates', which doesn't work and gives me an error. When i try to manually access the website, it doesn't work. I really don't understand what chatgpt.com has to do with any of this either. I can't seem to find any other post mentioning this, but I apologies if I'm wrong.Thanks for the help!
Hello, I'm using TouchGFX on an STM32L452RET6 with an SPI screen. The screen has integrated GRAM, so I selected the partial buffer option in STM32CubeMX. STM32CubeMX generated the partial buffer code as expected, but it also generated code for a full frame buffer, which exceeds the MCU's RAM. I need to comment out this code to reduce RAM usage. How can I prevent STM32CubeMX from generating the full frame buffer code?STM32CubeMX version: 6.15.0X-Cube -TouchGFX package and TouchGFX Designer version: 4.25.0STM32L4 Cube package version: 1.81.1
Hi I have used STMCubeIDE 1.11.0 (Cube 1.6.1) to generate the code for USB CDC interface for STM32G0B1.The code is as CubeMX would generate. I have not modified the code at all.When I plug the device into a PC I get "USB device not recognized" I have increased the heap and stack to be 0x1000. without any luck. What can I try to try to figure out what the issue is.Thanks,
IntroSTM32CubeMX supports CMake since 6.11.0 as a tool chain option. Sometimes you want to customize your project, but you don't want generated files to be overwritten. I will reply to this post how to do these things and this will be the accepted answer. It's like a knowledge base article. Please expand it with more ideas and I will add it to that answer.Generated filesSTM32CubeMX generates:./CMakeLists.txt:This file can be customizedcmake/stm32cubemx/CMakeLists.txt: file with all cube generated source files and defines. It's an interface library. This file can not be modified as it will be overwritten when regenerating with STM32CubeMXcmake/touchgfx/CMakeLists.txt: if you have touchgfx in your project this will be added too. It's an interface library. This file can not be modified as it will be overwritten when regenerating with TouchGFX Designerpotentially more subfolders with CMakeLists.txt filesgcc-arm-none-eabi.cmake: toolchain file for gcc. Used if you use gc
Browsing the STM32CubeMx Docs&Resources page for information.The section "Application Notes for related Tools and Software" includes couple of links to documents targeting a specific MCU different from the currently viewed one.I.e. browsing for STM32H5, or STM32G4 there are also shown "Getting started with STM32N6 MCUs in STM32CubeIDE". And it's the same with WL, L5, MP1, ... CubeIDE ANs.
Dear all!i'm try to set up STM32H562RIT6 project, i use STM32cubeMX6.4, but it seem didn't support, i try to instal H5 package but still can't find MCU. some one know how to fix it, pls help me
The first case concerns the DAC, by setting "Output Buffer" = Disable in CubeMX, it is enabled in code generation instead, i had to add "DAC1->MCR = 0x03" in the initializations. /** * @brief DAC1 Initialization Function * @PAram None * @retval None */ static void MX_DAC1_Init(void) { /* USER CODE BEGIN DAC1_Init 0 */ /* USER CODE END DAC1_Init 0 */ LL_DAC_InitTypeDef DAC_InitStruct = {0}; /* Peripheral clock enable */ LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_DAC1); /* USER CODE BEGIN DAC1_Init 1 */ /* USER CODE END DAC1_Init 1 */ /** DAC channel OUT1 config */ DAC_InitStruct.TriggerSource = LL_DAC_TRIG_SOFTWARE; DAC_InitStruct.WaveAutoGeneration = LL_DAC_WAVE_AUTO_GENERATION_NONE; DAC_InitStruct.OutputConnection = LL_DAC_OUTPUT_CONNECT_INTERNAL; DAC_InitStruct.OutputMode = LL_DAC_OUTPUT_MODE_NORMAL; LL_DAC_Init(DAC1, LL_DAC_CHANNEL_1, &DAC_InitStruct); LL_DAC_DisableTrigger(DAC1, LL_DAC_CHANNEL_1); /* USER CODE BEGIN DAC1_Init 2 */ /*
Hi, I started a new project with STM32U031C6. When I enabled Independent watchdog (IWDG), STM32CubeIDE generated the following line in the MX_IWDG_Init function: __HAL_RCC_IWDG_CLK_ENABLE();When compiling the project, an error is generated: undefined reference to '__HAL_RCC_IWDG_CLK_ENABLE'I could not find such a function either in the drivers included by STM32CubeIDE in the project or in the repository in the STM32CubeIDE installation directory.This function should enable the APB peripheral clock to the Independent Watchdog (IWDG), but I couldn't find anything for this purpose anywhere in the Reset and Clock Control (RCC) registers.Does this mean that the APB peripheral clock is always active for the Independent Watchdog (IWDG) and should not be enabled? In other words, is this function unnecessary and can I comment it out?I would be grateful for any help
I saw some older threads regarding this issue, but no way to fix this?
Hello everyone,I'd like to report some issues I encountered while using NetXDuo to create a UDP server with a Nucleo-N657X0-Q board:There's no option to select a network interface other than the custom one — I had to manually add all the libraries related to the Ethernet interface and the LAN8742 driver.The folder ../../Drivers/CMSIS/Device/ST/STM32N6xx/Include/Templates needs to be added manually.Enabling NX_ENABLE_VLAN has no effect in the nx_user.h file.The linker script STM32N657X0HXQ_AXISRAM2_fsbl.ld is missing the tcp_sec and nx_data sections.After addressing all the issues above, I was finally able to get the UDP server working correctly!
I don't use the code-generation features of the STM32CubeMX, but rather use it just for pin-planning purposes when designing hardware. I've noticed that when enabling the Ethernet MAC, that the SMI / MIIM peripheral is automatically enabled and allocated pins. There are many cases where this is inappropriate (e.g., some other device is managing the interface, no management is possible, or another bus type is used) and it would be lovely for STM32CubeMX to treat these two things as the fully-unrelated peripherals that they really are.The workaround is to manually assign each Ethernet pin individually, but this is brutally unpleasant. Could ST please divorce these two peripherals within the STM32CubeMX software?
You flipped the power on and… nothing. USB won’t enumerate. The device resets intermittently. Or ADC samples at the wrong rate. Before blaming the hardware, check the clock tree and flash latency. CubeMX gives a helpful UI, but you must interpret the numbers — PLL inputs/outputs, AHB/APB prescalers, timer clock doubling, and flash wait states or subtle configuration mismatches will bite you.The big pictureSYSCLK (system clock) drives the CPU and the AHB bus.AHB/APB prescalers split SYSCLK into peripheral bus clocks (APB1, APB2). Peripherals (UART, SPI, I2C, ADC, timers) use these derived clocks.PLLs are used to multiply/divide crystal or internal oscillator frequencies to reach the target SYSCLK and special 48 MHz domain for USB, RNG, etc.Flash latency (wait states) must be configured so the CPU can read Flash at the chosen SYSCLK. If flash latency is too low the CPU will fetch wrong instructions → crashes or strange behavior.Voltage scaling / power range often limits maximu
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.