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.5. When selecting microcontrollers in the STM32H7 series

The function `HAL_HSEM_IRQHandler()` is wrongly called in the `HSEMx_IRQHandler()` scope after performing the following scenario on STM32CubeMX 6.15.0 with the STM32H745ZIT3 product:

- Enable the HSEM1 global interrupt on the context Cortex-M7 and the HSEM2 global interrupt on the context Cortex-M4.

- Select LL instead of HAL in Project Manager → Advanced Settings and choose STM32CubeIDE as toolchain.

- Generate the code.

To prevent the `HAL_HSEM_IRQHandler()` function from being generated, navigate to the NVIC IP, select the Code Generation tab, and disable the Call HAL handler option.

When creating a new STM32H7RS 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 by copying that folder from the firmware under this path:

    Users\<User_name>\STM32Cube\Repository\STM32Cube_FW_H7RS_Vx.y.z\Utilities

A linker file mismatch after project regeneration may occur when regenerating an STM32CubeIDE project for the STM32H7S78-DK board using the X-CUBE-AZRTOS-H7RS pack. The system incorrectly selects `STM32H7S7L8HXH_default.ld` as the linker file. The expected linker file is `STM32H7S7L8HXH_ROMxspi2.ld`. This issue occurs after any STM32CubeIDE project has been removed and subsequently regenerated.

For STM32H7RS OEMiROT projects in STM32CubeMX 6.14.0, the execution of `provisionning.bat` might fail due to wrong file path settings. To fix this failure, the user should either keep the default boot path configuration in STM32CubeMX, or edit `env.bat` and set `oemirot_boot_path_project` to `%~dp0..\`.

For the projects using STM32H7B product lines, when activating the SAI feature the parameters are not displayed in the Configuration tab.

During the migration from an older STM32H7 project to STM32CubeMX V6.13.0, the following files are not automatically updated: - `system_stm32h7xx.c` - `startup_stm32h7nnxx.s`

These files are needed for the correct initialization of the system power supply.

This limitation may cause an early RAM access prior to the configuration of the system power supply, which is not allowed.

For new projects created by STM32CubeMX v6.13.0 and later, these files are correctly updated. The system power supply configuration is also kept in `SystemClock_Config()` to avoid runtime issues with existing projects.

The workaround is to: - Copy the new files from the firmware and ensure that they are correctly included in the project. - Verify the compiler compatibility and use the appropriate `startup_stm32h7nnxx.s` file for the chosen compiler.

For the STM32H7Sx microcontrollers in the STM32H7 series, when using the NUCLEO-H7S3L8 board, the boot path is not supported. It is only supported for the STM32H7S78-DK board or custom boards with the same flash and same pin mapping.

For the STM32H7Rx microcontrollers in the STM32H7 series, the boot path is not supported and Debug authentication is disabled.

MDMA and HSEM are not supported in LL. Only HAL is supported.

When activating any mode under SPDIFRX, the alternate function configuration code is not generated in the `HAL_SPDIFRX_MspInit` function in the `stm32h7xx_hal_msp.c` file.

Add the workaround code in the user section after `GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;` as described below depending on the channel and selected pin.

    Channel  Selected pin  Workaround code

    IN0      PD7           GPIO_InitStruct.Alternate = GPIO_AF9_SPDIF;
    IN0      PG11          GPIO_InitStruct.Alternate = GPIO_AF8_SPDIF;
    IN1      PD8           GPIO_InitStruct.Alternate = GPIO_AF9_SPDIF;
    IN1      PG12          GPIO_InitStruct.Alternate = GPIO_AF8_SPDIF;
    IN2      PC4           GPIO_InitStruct.Alternate = GPIO_AF9_SPDIF;
    IN2      PG8           GPIO_InitStruct.Alternate = GPIO_AF8_SPDIF;
    IN3      PC5           GPIO_InitStruct.Alternate = GPIO_AF9_SPDIF;
    IN3      PG9           GPIO_InitStruct.Alternate = GPIO_AF8_SPDIF;