Ask questions on STM32CubeMX. Discuss code generation and configuration challenges, among other topics.
Most recent activity
I used version 6.14 beforeand could choose OrCAD's package There is no option for "Cadence" in version 6.16.1
I'm trying to use dual layers in LTDC of STM32N657X0HxQ controller. In the STM32CubeMX, I tried to set the Secure bit of RISUP for LTDC_L2 in RIF setting view, but the box is in gray color and is not selectable as follows.When I generate code with this box unchecked, my program does not work. So I manually changed the Secure bit in source code, which made LCD display work fine.How can I change the Secure checkbox in STM32CubeMX?My STM32CubeMX is version 6.16.1 for Windows 11.I've attached the ioc file.
STM32CubeMX standalone hangs on File → New Project (infinite loading, no error message). The problem is fully reproducible.I have tried:– reinstalling CubeMX– different CubeMX versions– Java reinstall– offline mode– clearing STM32CubeMX cache/AppData STM32CubeIDE (latest) works normally but I can not generate projects with CubeMX. OS: Windows 11 pro Has anyone experienced this issue recently or knows a workaround / fix?Any advice from ST would be appreciated.
In the version of cube mx 6.4.0 you can set parameters and advanced parameters, but in the version of cube mx 6.16.1 you can only select the chip in the platform setting in the LWIP in middleware. I configured the firmware by installing the KSZ8863RLLI LAN driver in the STM32F407VET6 MCU. Cube IDE used version 1.18.1. Ping test went well in the version of cube mx 6.4.0 and it doesn't work in the version of cube mx 6.16.1. Is there a way to do it in the version of cube mx 6.16.1? What are the problems?The 00.ETH file is the firmware created in the version of cube mx 6.4.0 and the 02.ETH_16.1 file is the firmware created in the version of cube mx 6.16.1
Reporting that this bug is sitll present in CubeMX v6.16.1Solved: We found a bug while using Hardware JPEG. - STMicroelectronics CommunityStill JPEG_SWAP_RG, not JPEG_SWAP_RB.I wish there would be user defined section in jpeg_utils.conf.h to workaround it.And there's another bug:Every time I regenerate code, CubeMX erases Utilities/JPEG folder. So the package code has to be manually restored.
I am developing with STM32CubeMX and generating initialization code for an STM32N6 device. In my FSBL (First Stage Boot Loader), I use USART10 to connect to the ST-LINK V3’s Virtual COM Port (VCP). However, it seems that CubeMX does not correctly generate the peripheral clock initialization code for USART10.After a series of investigations, I found that when generating USART10’s clock initialization code, only the kernel clock for USART10 is set to IC14, but the PLL source and divider for IC14 are missing. This happens with both LL and HAL libraries. For USART6, there is no such problem — its clock configuration is generated correctly.This behavior is very strange. During debugging, I also encountered an issue where PLL2 was not initialized, but that problem disappeared later.To work around this, I manually added IC14 configuration code for USART10 following the pattern used for USART6, setting IC14 = 96 MHz. After that, USART10 worked normally at the maximum baud rate of 12 Mbps.Has a
Hello.I'm working on setting up a brand new Nucleo STM32U5A5Z development board and have some issues.My project is a completely bare-bones default with no security or BSP enabled. The application fails in SystemClock_Config() and enters the error handler. The issue seems to be related to the HSE as SystemClock_Config returns HAL_TIMEOUT here: /* Check the HSE State */ if (pRCC_OscInitStruct->HSEState != RCC_HSE_OFF) { tickstart = HAL_GetTick(); /* Wait till HSE is ready */ while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) { if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) { return HAL_TIMEOUT; } } }Thanks!
Hi,I'm using the NUCLEO-U083RC board.I wish to use the TOUCHSENSE library on STM32U083 (or STM32U073) that has the TSC, but STM32CUBEMX 6.16.1 doesn't allow me to enable it.Why ?
I want to create a new expansion pack. During adding the bundles and components I've got a problem to leave the "Subgroup" empty.Using a dash "-" will be able to apply the component but it raises an validation error during "save and pack". Editing an old expansion package ( I had made a few years ago) , the Subgroup is still optional. What kind of "switch" makes the Subgroup as mandatory?
Dear ST Support Team,We are using the STM32N657X0H3Q1 microcontroller with the XSPI1 interface and have connected two external memory devices, each with an 8-bit data bus.As described in the STM32N6 reference manual (XSPI dual-octal configuration), the two 8-bit memories are connected in parallel and together form a 16-bit wide external memory interface, sharing a single NCS signal.In STM32CubeMX, what we have configured the XSPI peripheral as attached below.And XSPI clock we set as 140mhz.Could you please confirm whether this STM32CubeMX configuration is correct? If there are any additional settings or recommended , kindly let us know.Thank you for your support.Best regards,siddu marka.
Not always, but sometimes syscalls.c file is removed upon generating code for X-CUBE-AI middleware.I'm using STM32N6570-DK board and the version of STM32CubeMX is 6.16.1 for Windows 11.
I downloaded CubeMX and I followed the instructions on the attached Readme.html.I run it by ctrl-click and then select Open to mark the author as trusted, but then nothing happens. Does anyone encountered the same problem? How did you solve it?
Hello, I'm having trouble getting the CubeMX code generation to work reliably with X-CUBE-AI package.After first adding X-CUBE-AI to the project, and adding one of the models from the ST model zoo, i get this warning:If i click Yes, the code generation takes about 5 minutes and works.Note that in the above picture, X-CUBE-AI ExtMemLoader is selected. This is also where the warning comes from. AFAIK, i don't need X-CUBE-AI ExtMemLoader, just the Application. If i remove the checks from the checkboxes "Artificial Inteligence X-Cube-Ai" and "Device Appliccation", and then reopen MX, the X-CUBE-AI ExtMemLoader will disappear, and just the X-CUBE-AI Application remains. However, after trying to generate code with that setup, the code generation hangs to the below phase of code generation: At that state, the OpenJDK Platform binary uses over 6000 MB of RAM, and about 10% of my CPU but seemingly nothing happens. I waited over the weekend to see if the genera
It is very inconvenient to have regenerated C files in C++ project.Problem is not main.c only, *_it.c as well. In C++ project one have to call methods of class from interrupt handlers.It is not possible to make directly from *_it.c. Indirect call chain is lost of time.I renamed main.c to main.cpp in C++ project, made call from main.cpp to method of class. All is OK.Flashed microcontroller with main.cpp, all is working.ST done great work to support C++. And made it useles by generating new code to C files. Why not to generate code in C++ project to CPP files?
Hi,I have some CubeMX-generated code which works properly. Originally it was created to run from default address 0x08000000.Now I have a bootloader at address 0x08000000 which is responsible for handling updates and other stuff and then jumps into the target-code, so I moved that code via linker script to 0x08020000. This also works fine, the code works as desired.In a next step I decided to have some additional information stored in flash prior to the CubeMX generated code to make it easier for the bootloader to manage firmware versions, so I shifted the code by additional 128 bytes and now have the following section in my linker script:MEMORY { FLASH_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x08020080, LENGTH = 1024K - 128K - 128 EEPROM_EMUL (xrw) : ORIGIN = 0x080E0000, LENGTH = 128K DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K RAM_D1_DMA (xrw) : ORIGIN = 0x24000000, LENGTH = 64K RAM_D1 (xrw) : ORIGIN = 0x24010000, LENGTH = 320K - LEN
hello,now I am using stm32f030cct6 to design a simple program. i used all the 6 uarts of this chip. it works fine, but the interrupt code generated by STM32CubeMX has a simple bug. the code as below.for the uart6, there is a useless (&huart6); i think it is no effect to the function, but when building, there is a warning.stm32f0xx_it.c:172:33: warning: statement with no effect [-Wunused-value][build] 172 | HAL_UART_IRQHandler(&huart6);(&huart6);[build] | ~^~~~~~~~ I dont like the warning. so i think you can simplly fix this bug. thanks.
Hi everyone,I am encountering an issue with the "Access to MCU Selector" feature.The Problem: After installing X-CUBE-AI packages version 10.2 (or any version later than 10.0), the MCU Selector fails to open. It gets stuck in an infinite loading loop. Additionally, the "Output" view remains empty, showing no error logs.Troubleshooting: I found that if I uninstall the versions newer than 10.0 and revert to X-CUBE-AI version 9.0.0, the MCU Selector works perfectly fine.Has anyone faced this issue? Is there a known workaround or solution to use the 10.2 version without breaking the MCU Selector?Thanks in advance.
I made a support pack for better support of CAN connections.But there is no possibility to create a "Platform Setting" for CAN connections I tried to edit the "Modes.xml" manually. Than the PackCreator shows the correct IP, but STM32CubeMX doesn't accept it. Additional: if I create a not usable platform setting there will be "unsovlable" warning.
I select a new project and select the STM32L100C6U6A. STM32CubeMX says it has 4 kBytes of RAM.I generate the project for EWARM.But when I generate the project for EWARM it puts stm32l100xba_flash.icf file in the project and that files says RAM is 16384 bytes.And the datasheet for STM32L100C6U6A says 4 kByte.Is this a bug in STM32CubeMX?My application still seems to run without errors. IAR reports 9511 bytes of readwrite data memory used.Why does it still work? Is the datasheet wrong and this device is actually delivered with 16 kBytes RAM?
The STM32N6 reference manual shows that IC18 drives the CSI2Host and CSIPHY IP blocks at a maximum frequency of 200 MHz. CubeMX generates this clock configuration code but does not show the clock path in the clock configuration window. Additionally, it does not provide any error checking and will allow IC18 to be configured above 200 MHz.Clock tree diagram:Maximum clock rate spec:CubeMX generated code in HAL_DCMIPP_MspInit:PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_DCMIPP|RCC_PERIPHCLK_CSI; PeriphClkInitStruct.DcmippClockSelection = RCC_DCMIPPCLKSOURCE_IC17; PeriphClkInitStruct.ICSelection[RCC_IC17].ClockSelection = RCC_ICCLKSOURCE_PLL4; PeriphClkInitStruct.ICSelection[RCC_IC17].ClockDivider = 1; PeriphClkInitStruct.ICSelection[RCC_IC18].ClockSelection = RCC_ICCLKSOURCE_PLL4; PeriphClkInitStruct.ICSelection[RCC_IC18].ClockDivider = 2;
I'm considering migrating from STM32F469NIH6 to STM32F769NIH6. From data sheets it is apparant that these two MCU's have compatible pinout, however the pinout compatibility tool of STM32CUBEMX V6.15.0 doesn't show these MCU's as compatible, why is this?
When using the memory management tool (MMT) on the STM32H573 to set the backup RAM as secure it generates an invalid secure attribution unit (SAU) config:#define SAU_INIT_REGION5 1 #define SAU_INIT_START5 0x40000000 /* start address of SAU region 5 */ #define SAU_INIT_END5 0x400373FF /* end address of SAU region 5 */ #define SAU_INIT_NSC5 0The above code is the last region the MMT defines for the SAU.Typically the tool would define the region 0x40000000 to 0x4fffffff (the non-secure peripheral address space) as non-secure. However 0x40036400 is the start of the backup RAM address space which shouldn't be made non-secure.Since this is the last SAU region, there is nothing configuring the region 0x40037400 to 0x4fffffff as non-secure, and so hard faults occur when e.g. trying to access the non-secure RCC address space.I believe correctly generated code should look like the below:#define SAU_INIT_REGION5 1 #define SAU_INIT_START5 0x40000000 /* start address of SAU region 5 */ #d
CubeMX version 6.16.1 I found STM32WBA55CG project with ThreadX, the parameter of "TX_LOW_POWER_USER_ENTER" and "TX_LOW_POWER_USER_EXIT" will be reset to default after the ioc re-open.This bug can be 100% reproduce.
Ports definition in main.h forced to include too mutch in dependend source files when one needs ports definition only.More convenient dedicated header file with ports definition only. Something like ports.h.It would be nice to have more layered structure.
do the example of LPGPIO,why show this error.Getting started with LPBAM - stm32mcu
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.