STM32CubeMX

Table Of Contents

- STM32CubeMX documentation
- CubeMX User Manual
  - 1 STM32Cube overview
  - 2 Getting started with STM32CubeMX
  - 3 Installing and running STM32CubeMX
  - 4 STM32CubeMX user interface
  - 5 STM32CubeMX tools
  - 6 STM32CubeMX C Code generation overview
  - 7 Code generation for dual-core MCUs (STM32H7 dual-core product lines only)
  - 8 Code generation with TrustZone enabled (STM32L5 series only)
  - 9 Device tree generation (STM32MPUs only)
  - 10 Support of additional software components using CMSIS-Pack standard
  - 11 Tutorial 1: From pinout to project C code generation using an MCU of the STM32F4 series
  - 12 Tutorial 2 - Example of FatFs on an SD card using STM32429I-EVAL evaluation board
  - 13 Tutorial 3 - Using the Power Consumption Calculator to optimize the embedded application consumption and more
  - 14 Tutorial 4 - Example of UART communications with an STM32L053xx Nucleo board
  - 15 Tutorial 5: Exporting current project configuration to a compatible MCU
  - 16 Tutorial 6 - Adding embedded software packs to user projects
  - 17 Tutorial 7 - Using the X-Cube-BLE1 software pack
  - 18 Creating LPBAM projects
  - Appendix A STM32CubeMX pin assignment rules
  - Appendix B STM32CubeMX C code generation design choices and limitations
  - Appendix C STM32 microcontrollers power consumption parameters
  - Appendix D STM32Cube embedded software packages
  - Revision history
- Release Notes
  - Release details
  - Release fixes
  - Known limitations
    - Miscellaneous
    - 2.1. When selecting microcontrollers in the STM32C0 series
    - 2.2. When selecting microcontrollers in the STM32G0 series
    - 2.3. When selecting microcontrollers in the STM32G4 series
    - 2.4. When selecting microcontrollers in the STM32H5 series
    - 2.5. When selecting microcontrollers in the STM32H7 series
    - 2.6. When selecting dual-core microcontrollers in the STM32H7 series
    - 2.7. When selecting microcontrollers in the STM32L5 series
    - 3.4. How to improve the wake-up from Stop sequences without relying on the global SystemClock_Config()
    - 3.3. List pinout-compatible microcontrollers
    - 3.2. DDR binaries for the STM32MP1 boards
    - 3.1. Command line authentication required
    - 2.21. Symbolic links on Ubuntu
    - 2.20. User manual
    - 2.19. DDR test suite
    - 2.18. STM32CubeIDE toolchain
    - 2.13. When selecting microcontrollers in the STM32WL series
    - 2.11. When selecting microcontrollers in the STM32WB series
    - 2.17. When using additional software packs
    - 2.16. When using the Example Selector
    - 2.15. When using the Memory Management Tool
    - 2.14. When selecting microprocessors in the STM32MP1 series
    - 2.11.1. When selecting microcontrollers in the STM32WB0 product lines
    - 2.12. When selecting microcontrollers in the STM32WBA series
    - 2.13.1. When selecting microcontrollers in the STM32WL33 product lines
    - 2.10. When selecting microcontrollers in the STM32U5 series
    - 2.9. When selecting microcontrollers in the STM32U3 series
    - 2.8. When selecting microcontrollers in the STM32N6 series
- Running STM32CubeMX in command-line mode
- FAQ
- Community

# 2.8. When selecting microcontrollers in the STM32N6 series

For STM32N6 projects using the VENC feature, video can be compressed before sending it over UVC either by using the “VENC (Video Encoder)” option or the “standalone JPEG peripheral” option. Since the VENC middleware stack is not supported by STM32CubeMX and therefore not generated, customers who want to use VENC (H264/JPEG) must manually copy this middleware from the firmware to their projects.

When creating a new STM32N6 project, enabling the JPEG peripheral and generating the code, the `Utilities/JPEG` folder containing the JPEG source files is not generated. To avoid this issue the user should add the missing folder manually, copying it from this path:

    Users\<User_name>\STM32Cube\Repository\STM32Cube_FW_N6_V1.3.0\Utilities

During migration from an older STM32N6 project to STM32CubeMX V6.16.0, the `system_stm32n6xx_fsbl.c` file will not update automatically. To update it, the user needs to replace the file in the project with the latest version found in the STM32CubeN6 firmware package under:

    \Drivers\CMSIS\Device\ST\STM32N6xx\Source\Templates

An issue may occur when building an STM32N6 project in STM32CubeIDE where the AppS context is added incrementally. Specifically, if the project is initially created with components enabled only in the EXTMEM and FSBL contexts, and later these components are activated in the AppS context by modifying the `*.ioc` file and regenerating the code, the AppS project fails to build due to missing files in the `STM32CubeIDE\Appli\Application\User\Core` directory.

When using USBPD with STM32N6 projects and generating code with the MDK-ARM toolchain, a compilation error may occur due to inconsistent compiler flags. To fix this error, the compiler option Short enums/wchar in the MDK-ARM project under Options for Target -> C/C++ (AC6) should be unchecked.

For the full configuration of the FMC feature with STM32N6xx products, the `stm32n6xx_ll_fmc.c` file is not automatically included in the project. Manual inclusion is required to avoid compilation errors.

Warning messages appear after building a project that configures ThreadX with the “Low Power Support” mode, regardless of the toolchain.

In full LL mode, the function `LL_PWR_EnableVddIOx()` is missing from STM32CubeMX generated code. To fix the issue, the user should add it manually in `main()` after calling `SystemClock_Config()`.

When generating a project with EXTMEM_MANAGER middleware enabled and two memories configured, and EXTMEM_LOADER middleware enabled with Memory 2 selected, the generated code incorrectly targets only the first memory instance. As a result, external memory data cannot be read correctly for Memory 2 configurations.

> Workaround: If possible use Memory 1 as selected memory in EXTMEM_LOADER. Or Manually update the generated ExtMemLoader files so that the configuration array size in `stm32_extmem_config.h` is driven by `EXTMEMORY_NUMBER` or the equivalent generated count, and the memory configuration assignment in `extmem_manager.c` uses the proper symbolic memory index, which is `EXTMEMORY_2` by replacing `extmem_list_config[0]` with `extmem_list_config[EXTMEMORY_2]`.