30
Introduction The STM32CubeH7 MCU Package is delivered with a rich set of examples running on STMicroelectronics boards. The examples are organized by board, and are provided with preconfigured projects for the main supported toolchains (see figure below). Figure 1. STM32CubeH7 firmware components Application level demonstrations Utilities Middleware level (1) HAL and LL APIs (1) The set of middleware components depends on the product Series. User application Evaluation boards Discovery boards STM32 Nucleo boards Dedicated boards USB FatFS RTOS Touch Library Graphics Hardware Abstraction Layer (HAL) Board Support Package (BSP) Utilities CMSIS Low-layer APIs (LL) STM32Cube MCU Package examples for STM32H7 Series AN5033 Application note AN5033 - Rev 6 - December 2019 - By STMicroelectronics For further information contact your local STMicroelectronics sales office. www.st.com

STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

  • Upload
    others

  • View
    52

  • Download
    0

Embed Size (px)

Citation preview

Page 1: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

IntroductionThe STM32CubeH7 MCU Package is delivered with a rich set of examples running on STMicroelectronics boards. Theexamples are organized by board, and are provided with preconfigured projects for the main supported toolchains (see figurebelow).

Figure 1. STM32CubeH7 firmware components

Application level demonstrations

UtilitiesMiddleware level(1)

HAL and LL APIs

(1) The set of middleware components depends on the product Series.

User application

Evaluation boards

Discovery boards

STM32 Nucleo boards

Dedicated boards

USB FatFS RTOSTouchLibrary Graphics

Hardware Abstraction Layer (HAL)Board Support Package (BSP)

Utilities

CMSIS

Low-layer APIs (LL)

STM32Cube MCU Package examples for STM32H7 Series

AN5033

Application note

AN5033 - Rev 6 - December 2019 - By STMicroelectronicsFor further information contact your local STMicroelectronics sales office.

www.st.com

Page 2: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

1 Reference documents

The reference documents are available on http://www.st.com/stm32cubefw:• Latest release of STM32CubeH7 firmware package• Getting started with STM32CubeH7 for STM32H7 Series (UM2204)• STM32CubeH7 demonstration platform (UM2222)• Description of STM32H7 HAL drivers (UM2217)• STM32Cube BSP driver development guidelines (UM2298)• STM32Cube USB Device library (UM1734)• STM32Cube USB host library (UM1720)• Developing applications on STM32Cube with FatFS (UM1721)• Developing applications on STM32Cube with RTOS (UM1722)• Developing applications on STM32Cube with LwIP TCP/IP stack (UM1713)• STM32Cube Ethernet IAP example (UM1709)

The microcontrollers of the STM32H7 Series are based on Arm® Cortex® cores.

Note: Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

AN5033Reference documents

AN5033 - Rev 6 page 2/30

Page 3: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

2 STM32CubeH7 examples

The examples are classified depending on the STM32Cube level they apply to. They are named as follows:• Examples: these examples use only the HAL and BSP drivers (middleware components not used). Their

objective is to demonstrate the product/peripherals features and usage. They are organized per peripheral(one folder per peripheral, e.g. TIM). Their complexity level ranges from the basic usage of a givenperipheral (e.g. PWM generation using timer) to the integration of several peripherals (e.g. how to use DACfor signal generation with synchronization from TIM6 and DMA). The usage of the board resources isreduced to the strict minimum.

• Examples_LL: these examples use only the LL drivers (HAL and middleware components not used). Theyoffer an optimum implementation of typical use cases of the peripheral features and configurationprocedures. The examples are organized per peripheral (a folder for each peripheral, such as TIM).

• Examples_MIX: these examples use both HAL and LL drivers. They offer an optimum implementation oftypical use cases of the peripheral features and configuration procedures. The examples are organized perperipheral (a folder for each peripheral, such as DMA2D).

• Applications: the applications demonstrate the product performance and how to use the availablemiddleware stacks. They are organized either by middleware (a folder per middleware, e.g. USB Host) or byproduct feature that require high-level firmware bricks (e.g. Audio). The integration of applications that useseveral middleware stacks is also supported.

• Demonstrations: the demonstrations aim at integrating and running the maximum number of peripheralsand middleware stacks to showcase the product features and performance.

AN5033STM32CubeH7 examples

AN5033 - Rev 6 page 3/30

Page 4: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

• Template projects: the template projects are provided to allow the user to quickly build a firmwareapplication on a given board:– Templates for boards based on single-core STM32H7 microcontrollers (STM32H743I-EVAL, NUCLEO-

H743ZI, STM32H7B3I-EVAL, STM32H7B3I-DK and NUCLEO-H7A3ZI-Q): STM32CubeH7 containsone HAL and one LL template projects.

– Templates for boards based on dual-core STM32H7 microcontrollers (NUCLEO-H745ZI-Q,STM32H45I-DISCO, STM32H747I-DISCO and STM32H747I-EVAL):◦ One LL template project◦ Four HAL template projects:

• BootCM4_CM7:• The Arm® Cortex®-M7 and Cortex®-M4 cores are both running from different Flash

memory banks.• The system configuration is performed by the Arm® Cortex®-M7.• The Arm® Cortex®-M4 cores enters Stop mode after boot, and is then woken up by

Arm® Cortex®-M7 using a hardware semaphore.• BootCM7_CM4Gated:

• The Arm® Cortex®-M4 boot is gated using Flash memory option bytes.• The Arm® Cortex®-M7 and Cortex®-M4 cores are both running from different Flash

memory banks.• The Arm® Cortex®-M7 core boots, performs the system configuration, and then

enables Arm® Cortex®-M4 boot through the RCC.• BootCM4_CM7Gated:

• The Arm® Cortex®-M7 boot is gated using Flash memory option bytes.• The Arm® Cortex®-M7 and Cortex®-M4 cores are both running from different Flash

memory banks.• The Cortex®-M4 core boots , performs the system configuration, and then enables the

Cortex®-M7 boot through the RCC.• BootCM7_CM4Gated_RAM:

• The Arm® Cortex®-M4 boot is gated using Flash memory option bytes.• The Arm® Cortex®-M7 core and Arm® Cortex®-M4 core run from Flash memory bank 1

and from the D2 SRAM, respectively.• The Arm® Cortex®-M7 core performs the following actions at boot time:

• system configuration• loading of the Arm® Cortex®-M4 code into the D2 SRAM• change of the Arm® Cortex®-M4 boot address and then enabling of Cortex®-M4

boot (through the RCC)– Template for the STM32H750B-DK board based on Value line STM32H7 microcontrollers:

◦ ExtMem_Boot: reference boot code with execution from internal Flash memory. It configuresexternal memories, and then jumps to the user application located in an external memory. Twouse cases are possible, XiP and BootROM:• XiP: this use case is intended for eXecution in Place from external Flash memory

(QUADSPI). In this case, the user application code shall be linked with the target executionmemory address in external Quad-SPI Flash memory.

• BootROM: this use case demonstrates how to boot from internal Flash memory, configurethe external SDRAM, copy user application binary from the SDMMC Flash memory or fromQuad-SPI Flash memory to the external SDRAM, and then jump to the user application. Inthis case, the user application code shall be linked with the target execution memoryaddress in external SDRAM.

◦ Template_Project: typical template with execution from external memory. Different configurationsare available depending on the external memory boot capabilities:• XiP from QUADSPI, data in internal SRAM

AN5033STM32CubeH7 examples

AN5033 - Rev 6 page 4/30

Page 5: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

• XiP from QUADSPI, data in external SDRAM• BootROM: execution from external SDRAM, data in internal SRAM

Table 1. STM32CubeH7 firmware examples contains the list of examples provided with STM32CubeH7 MCUPackage:• Examples for boards based on single-core STM32H7 microcontrollers (STM32H743I-EVAL, NUCLEO-

H743ZI, STM32H750B-DK, STM32H7B3I-EVAL, STM32H7B3I-DK and NUCLEO-H7A3ZI-Q):The STM32CubeH7 MCU Package contains one target project configuration per workspace (Arm® Cortex®-M7 core). All single-core examples have the same structure:– \Inc folder that contains all header files.– \Src folder for the sources code.– \EWARM, \MDK-ARM and \SW4STM32 (STM32H743I-EVAL, NUCLEO-H743ZI, STM32H750B-DK),

\STM32CubeIDE (STM32H7B3I-EVAL, STM32H7B3I-DK and NUCLEO-H7A3ZI-Q) folders that containthe preconfigured project for each toolchain.

– A readme.txt file describing the example behavior and the environment required to run the example.• Examples for boards based on dual-core STM32H7 microcontrollers (NUCLEO-H745ZI-Q,

STM32H745I-DISCO, STM32H747I-DISCO and STM32H747I-EVAL ):The STM32CubeH7 MCU Package contains two target project configurations per workspace (one per core),named STM32H7xyI_XXX_CM7 and STM32H7xyI_XXX_CM4. The projects can be configured individuallyby setting the following options: target microcontroller, linker options, read-only (RO) and read/write (RW)zones, and preprocessor symbols (CORE_CM4, CORE_CM7). This allows compiling user code linked andprogrammed separately for each core and generating two binaries: CM7 and CM4.The examples are structured as follows:– Common drivers files, used both for Arm® Cortex®-M7 and Arm® Cortex®-M4 cores, and including:

◦ CMSIS core files◦ CMSIS device files◦ HAL driver files◦ BSP files

– \EWARM, \MDK-ARM and \SW4STM32 folders containing the preconfigured projects– One \Src and \Inc folder per core.– A \Common folder hosting system and shared source files both for Arm® Cortex®-M7 and Arm®

Cortex®-M4 cores.– A readme.txt file describing the example behavior and the environment required to run the example.

Figure 2 and Figure 3 illustrate the organization of the examples and projects within the STM32CubeH7 MCUPackage:

AN5033STM32CubeH7 examples

AN5033 - Rev 6 page 5/30

Page 6: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Figure 2. STM32CubeH7 project tree

Figure 3. STM32CubeH7 project workspaces

To run the example, proceed as follows:1. For single-core project examples (such as STM32H743I-EVAL board)

a. Browse to \\Projects\\STM32H743I-EVAL\\Examples.b. Open \\GPIO, then the \\GPIO_EXTI folder.c. Open the project using your preferred toolchain.d. Rebuild all files and load your image into the target memory.e. Run the example: each time you press the Tamper push-button, LED1 toggles (for more details, refer

to the example readme.txt file).

AN5033STM32CubeH7 examples

AN5033 - Rev 6 page 6/30

Page 7: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

2. For dual-core project examples (such as STM32H747I-EVAL board):a. Browse to \\Projects\\STM32H747I-EVAL\\Examples.b. Open \\GPIO, then the \\GPIO_EXTI folder.c. Open the project using your preferred toolchaind. For each target STM32H747I_EVAL_CM4 and STM32H747I_EVAL_CM7 (based on Arm® Cortex®-M7

and Cortex®-M4, respectively):i. Rebuild all files and load your image into the target memory.ii. After loading the two images, reset the board in order to boot CPU1 (Cortex®-M7) and CPU2

(Cortex®-M4) at once.iii. Each time you press the Tamper push-button:

1. LED1 toggles once when an EXTI interrupt for Cortex®-M7 is detected.2. LED3 toggles once when an EXTI interrupt for Cortex®-M4 is detected.

For more details, refer to the example readme.txt file.3. For Value line project example running on STM32H750B-DK board:

a. Browse to Projects\\STM32H750B-DK\\Templates\ExtMem_Boot.b. Open the ExtMem_Boot project with your preferred toolchain.c. Rebuild all files and load your image into the target internal Flash memory.d. Browse to \\Projects\\STM32H750B-DK\\Examples.e. Open \\GPIO, then the \\GPIO_IOToggle folder.f. Open the project using your preferred toolchain (keep the XIP_QSPI_InternalSRAM default

configuration).g. Rebuild all files and load your image into the external Quad-SPI Flash memory.h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file).

Note: The principle of the STM32H750xx Value line application is to execute the user application from an externalmemory (Quad-SPI Flash memory by default or SDRAM). The Templates\ExtMem_Boot projects boot from theSTM32H750xx internal Flash memory, configure external memories and then jump to the user applicationhosted in an external memory of the STM32H750B-DK board.The examples can be tailored to run on any compatible hardware: simply update the BSP drivers for your board,provided it has the same hardware functions (LED, LCD display, push-buttons, etc.). The BSP is based on amodular architecture that can be easily ported to any hardware by implementing the low-level routines.

AN5033STM32CubeH7 examples

AN5033 - Rev 6 page 7/30

Page 8: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Table 1. STM32CubeH7 firmware examples

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Templates-

BootCM4_CM7

This project provides a reference template that can be used to build any firmwareapplication where both cores are used. It is mainly dedicated for devices whereCPU1 (Arm® Cortex®-M7) and CPU2 (Arm® Cortex®-M4) are booting at once(with respect to configured boot Flash memory options) System Init, Systemclock, voltage scaling and L1-Cache configuration are done by CPU1 (Arm®

Cortex®-M7).

- - - X X X - - X -

BootCM4_CM7Gated

This project provides a reference template that can be used to build any firmwareapplication where both cores are used. It is mainly dedicated for parts whereCPU2 (Arm® Cortex®-M4) is booting and CPU1 (Arm® Cortex®-M7) clock isgated.

- - - X X X - - X -

BootCM7_CM4Gated

This project provides a reference template that can be used to build any firmwareapplication where both cores are used. It is mainly dedicated for parts whereCPU1 (Arm® Cortex®-M7) is booting and CPU2 (Arm® Cortex®-M4) clock isgated.

- - - X X X - - X -

BootCM7_CM4Gated_RAM

This project provides a reference template that can be used to build any firmwareapplication where both cores are used. It is mainly dedicated for parts whereCPU1 (Arm® Cortex®-M7 in D1 Domain) is booting and CPU2 (Arm® Cortex®-M4 in D2 Domain) is gated (with respect to configured boot Flashmemoryoptions).

- - - X X X - - X -

ExtMem_BootThis directory contains a set of sources files and pre-configured projects thatdescribes how to build an application to be executed from external memory usingthe ExtMem_Boot firmware.

- - X - - - - - - -

Starter project This projects provides a reference template that can be used to build anyfirmware application. X X - - - - X X - X

Template_Project

This projects provides a reference template that can be used to build anyfirmware application to be executed from external memory. This projects isconfigured for STM32H750xx devices using STM32CubeH7 HAL and running onSTMicroelectronics STM32H750B-DISCO board.

- - X - - - - - - -

Total number of templates: 23 1 1 2 4 4 4 1 1 4 1

Templates_LL- Starter project This projects provides a reference template through the LL API that can be used

to build any firmware application. X X - X X X X X X X

Total number of templates_ll: 9 1 1 0 1 1 1 1 1 1 1

Examples

- BSPThis projects is configured for STM32H7B3xxQ devices using STM32CubeH7HAL and running on STMicroelectronics STM32H7B3I-EVAL board. It provides adescription of how to use the different BSP drivers.

X X X X X X X X X X

ADC ADC_AnalogWatchdogThis example provides a short description of how to use the ADC peripheral toperform conversions with analog watchdog and out-of-window interruptionsenabled.

- - - - - - X X - X

AN

5033 - Rev 6

page 8/30

AN

5033

Page 9: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

ADC

ADC_DAC_Interconnect This example describes how to configure and connect DAC output to ADC inputand use the analog watchdog to monitor signal behavior. X - - - - - X - - X

ADC_DMA_TransferThis example describes how to configure and use the ADC to convert anexternal analog input and get the result using a DMA transfer through the HALAPI.

X - - - - - X X - X

ADC_DifferentialModeThis example describes how to configure and use the ADC2 to convert anexternal analog input in Differential mode, difference between external voltage onVinN and VinP.

- - - - - - X X - X

ADC_DualModeInterleaved This example describes how to use two ADC peripherals to perform conversionsin Dual interleaved mode. - X - X X X X X X X

ADC_InternalChannelConversion This example describes how to configure and use the ADC to retreive the systembattery level. - - - - - - X - - X

ADC_OverSamplerThis example describes how to configure and use the ADC to convert anexternal analog input combined with oversampling feature to increase resolutionthrough the HAL API.

- - - - - - X - - X

ADC_Oversampling This example describes how to use a ADC peripheral with ADC oversampling. - - - - - - - X - -

ADC_RegularConversion_Polling This example describes how to use the ADC in Polling mode to convert datathrough the HAL API. - - - - - - X - - X

ADC_Regular_injected_groups

This example provides a short description of how to use the ADC peripheral toperform conversions using the two ADC groups: regular group for ADCconversions on the main stream and injected group for ADC conversions limitedon specific events (conversions injected within main conversions stream).

- - - - - X X - - X

CEC CEC_DataExchange This example shows how to configure and use the CEC peripheral to receive andtransmit messages. - - - - - - X - - -

COMP

COMP_AnalogWatchdog

This example describes how to use a pair of comparator peripherals to comparea voltage level applied on a GPIO pin to two thresholds: the internal voltagereference (VREFINT) and a fraction of the internal voltage reference (VREFINT/4),in interrupt mode.

X - - - - - X - - X

COMP_Interrupt This example shows how to configure the COMP peripheral to compare theexternal voltage applied on a specific pin with the internal voltage reference. X - - X - - X X - X

COMP_OutputBlanking This example shows how to use the output blanking feature of COMP peripheral. - - - - - - X X - X

CRC

CRC_Bytes_Stream_7bit_CRC

This example describes how to configure the CRC using the HAL API. The CRC(cyclic redundancy check) calculation unit computes 7-bit CRC codes derivedfrom buffers of 8-bit data (bytes). The user-defined generating polynomial ismanually set to 0x65, that is, X^7 + X^6 + X^5 + X^2 + 1, as used in the TrainCommunication Network, IEC 60870-5[17].

X - - - - - X X - X

CRC_ExampleThis example describes how to configure the CRC using the HAL API. The CRC(cyclic redundancy check) calculation unit computes the CRC code of a givenbuffer of 32-bit data words, using a fixed generator polynomial (0x4C11DB7).

X - - - - - X X - X

CRC_UserDefinedPolynomial

This example describes how to configure and use the CRC calculation unit tocompute an 8-bit CRC code for a given data buffer, based on a user-definedgenerating polynomial. The peripheral initialization is done using LL unitaryservice functions for optimization purposes (performance and size).

- - - X - X X X - X

AN

5033 - Rev 6

page 9/30

AN

5033

Page 10: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

CRYP

CRYP_AESCCM_ITThis example describes how to use the CRYPT peripheral to encrypt/decryptdata (Plaintext/Ciphertext) in Interrupt mode using AES with Combined CipherMachine (CCM) then generate the authentication TAG .

X - - - - - X - - -

CRYP_AESGCMThis example describes How to use the CRYPT peripheral to encrypt/decryptdata (Plaintext/Ciphertext) using AES Galois/counter mode (GCM)and generatethe authentication TAG .

- - - X - - X - - -

CRYP_AESModes This example describes how to use the CRYP peripheral to encrypt/decrypt data(Plaintext/Ciphertext) using AES ECB, CBC and CTR algorithm. - - - - - - X - - -

CRYP_AESModes_DMAThis example describes how to use the CRYPT peripheral to encrypt/decryptdata (Plaintext/Ciphertext) using AES ECB algorithm in DMA mode withswapping.

- - - - - - X - - -

CRYP_TDESModes This example describes how to use the CRYPT peripheral to encrypt/decryptdata (Plaintext/Ciphertext) using TDES ECB and CBC algorithm. - - - - - - X - - -

Cortex CORTEXM_Cache This example provides a description of how to perform data-cache maintenanceon a shared memory buffer accessed by two masters (CPU and DMA). X - - - - - X - - -

DAC

DAC_DualConversion This example provides a short description of how to use the DAC peripheral inDual conversion mode. - - - - - - X - - X

DAC_SignalsGeneration This example describes how to use the DAC peripheral to generate severalsignals using the DMA controller. X X - X - X X X - X

DAC_SimpleConversion This example provides a short description of how to use the DAC peripheral toperform a simple conversion. X - - - - - X X - X

DCMI

DCMI_CaptureModeThis example describes how to use the DCMI to interface with a camera moduleand continuously capture images into a camera frame buffer located in externalSDRAM.

- - - - X - - - - -

DCMI_SnapshotMode

This example describes how to use the DCMI to interface with a camera module,capture a single image in camera frame buffer (320x240 with RGB565 format)and display it on the LCD in ARGB8888 format once the full frame camera iscaptured.

- - - - X - - - - -

DFSDM DFSDM_AudioRecord This example shows how to use the DFSDM HAL API to perform stereo audiorecording. X - - X - - X - - -

DMA

DMAMUX_RequestGenonce full frame camera is captured how to use the DMA with the DMAMUXrequest generator to generate DMA transfer requests upon an LPTIM2 outputsignal, knowing that LPTIM2 is configured in PWM with a 2s period.

X X X X X X X X - X

DMAMUX_SYNC This example shows how to use the DMA with the DMAMUX to synchronize atransfer with LPTIM1 output signal. X - - - - - X - - -

DMA_FIFOModeThis example provides a description of how to use a DMA to transfer a word databuffer from Flash memory to embedded SRAM with FIFO mode enabled throughthe HAL API.

- - - - - - X - - -

DMA_FLASHToRAM This example shows how to use a DMA to transfer a word data buffer from Flashmemory to embedded SRAM through the HAL API. X - - - - - X - - -

DMA2D DMA2D_BlendingWithAlphaInversion This example provides a description of how to configure DMA2D peripheral inMemory-to-memory mode, blending transfer and alpha inversion mode. X X - X X - X - - -

AN

5033 - Rev 6

page 10/30

AN

5033

Page 11: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

DMA2D

DMA2D_MemToMemWithBlending This example provides a description of how to configure DMA2D peripheral inMemory-to-memory mode and blending transfer mode. - - X X X X X - - -

DMA2D_MemToMemWithBlendingAndCLUTHow to configure the DMA2D peripheral in Memory-to-memory blending transfermode and with indexed 256 color images (L8). The examples also show how touse the DMA2D foreground/background CLUT with L8 color mode.

X - - X X - X - - -

DMA2D_MemToMemWithPFCandRedBlueSwapThis example shows how to configure the DMA2D peripheral in Memory-to-memory transfer mode with pixel format conversion and red and blue swap, anddisplay the result on the LCD.

X - - X X - X - - -

DMA2D_MemoryToMemory This example provides a description of how to configure the DMA2D peripheralin Memory-to-memory transfer mode. - - - X X - X - - -

DMA2D_RegToMemWithLCD This example shows how to configure the DMA2D peripheral in Register-to-memory transfer mode and display the result on the LCD. - X - X X - X - - -

DTS DTS_GetTemperature This example shows how to configure and use the DTS to get the temperature ofthe die. X X - - - - - X - -

FDCAN

FDCAN_Classic_Frame_Networking This example shows how to configure the FDCAN peripheral to send and receiveClassic CAN frames in normal mode. - - - - - X X - - -

FDCAN_Clock_calibration This example shows how to achieve clock calibration on an FDCAN unit. - - - - - - X - - -

FDCAN_Com_IT This example shows how to achieve Interrupt Process Communication betweentwo FDCAN units. - - - - - - X - - -

FDCAN_Com_polling This example shows how to achieve Polling Process Communication betweentwo FDCAN units. - - - - - - X - - -

FDCAN_Image_transmission This example shows the gain in time obtained by activating the Bit RateSwitching (BRS) feature. - - - - - X X - - -

FDCAN_Loopback This example shows how to configure the FDCAN to operate in Loopback mode. X - - - - - X - - -

FLASH

FLASH_CoreConfigurationThis example guides you through the configuration steps to copy a dedicatedprogram by CPU1 (Cortex-CM7) in Flash memory bank 2, to be executed byCPU2 (Arm® Cortex®-CM4).

- - - X - X - - - -

FLASH_EraseProgram This example shows how to configure and use the FLASH HAL API to erase andprogram the internal Flash memory. X X - - - - X X - X

FLASH_SwapBankThis example guides you through the configuration steps to program internalFlash memory bank 1 and bank 2, and to swap between both banks by mean ofthe FLASH HAL API.

- - - - - - X - - X

FLASH_WriteProtection This example shows how to configure and use the FLASH HAL API to enableand disable the write protection of the internal Flash memory. X X - - - - X X - -

FMC

FMC_NORThis example guides you through the different configuration steps by mean ofHAL API to configure the FMC controller to access the PC28F128M29EWLANOR memory mounted on the STM32H743I-EVAL evaluation board.

- - - - - - X - - -

FMC_SDRAM This example describes how to configure the FMC controller to access theSDRAM. X - X - - - X - - -

AN

5033 - Rev 6

page 11/30

AN

5033

Page 12: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

FMC

FMC_SDRAM_DataMemory This example describes how to configure the FMC controller to access theSDRAM including heap and stack. - - - X - X X - - -

FMC_SDRAM_LowPower This example describes how to configure the FMC controller to access theSDRAM in low-power mode (SDRAM Self-refresh mode). - - - - - - X - - -

FMC_SRAM This example describes how to configure the FMC controller to access theSRAM. X - - - - - X - - -

GFXMMU GFXMMU_DisplayCircularShape This example describes how to enable and use the GFXMMU functionality todisplay an image with circular shape. X - - - - - - - - -

GPIOGPIO_EXTI This example provides a description of how to configure external interrupt lines. X X - X X X X - X X

GPIO_IOToggle This example describes how to configure and use GPIOs through the HAL API. X X X - - - - X - -

HAL

HAL_TimeBase_RTC_ALARM This example describes how to customize the HAL timebase using RTC alarminstead of SysTick as main source of timebase. X - - - - - X X - X

HAL_TimeBase_RTC_WKUP This example describes how to customize HAL using RTC wakeup as mainsource of timebase, instead of the Systick. X - - - - - X X - X

HAL_TimeBase_TIM This example describes how to customize HAL using a general-purpose timer asmain source of timebase instead of the SysTick. X - - - - - X X - X

HASH

HASH_HMAC_SHA1MD5 This example describes how to use the HASH peripheral to hash data withHMAC SHA-1 and HMAC MD5 algorithms. - - - - - - X - - -

HASH_SHA1MD5 This example shows how to use the HASH peripheral to hash data with SHA-1and MD5 algorithms. X - - - - - X - - -

HASH_SHA1MD5_DMA This example shows how to use the HASH peripheral to hash data using SHA-1and MD5 algorithms when data are fed to the HASH unit with DMA. - - - - - - X - - -

HASH_SHA224SHA256_DMA This example shows how to use the HASH peripheral to hash data with SHA224and SHA256 algorithms. - - - X - - X - - -

HRTIM

HRTIM_Arbitrary_Waveform This example shows how to configure the HRTIM1 peripheral to generate anarbitary signals. - - - - - - X - - X

HRTIM_DAC_ADC_Interconnect This example shows how to use the interconnection feature between HRTIM,DAC and ADC. - - - - - - X - - X

HRTIM_ExternalEvents This example shows how to use the external event as source of set and reset forHRTIM. - - - - - - X - - X

HRTIM_FaultEvent This example shows how to configure the HRTIM peripheral in PWM mode andhow to configure an use the Fault event. - - - - - - X - - X

HRTIM_MultiplePWM This example shows how to configure the HRTIM1 peripheral to generate up tofive PWM signals with different duty cycle for each HRTIM output. - - - X X X X - X X

HRTIM_PWM_DifferentFrequencies This example shows how to configure the HRTIM1 peripheral to generate up tosix PWM signals with different time base configuration for each slave timer. - - - - - - X - - X

HSEM HSEM_CoreNotification This example shows how to use embedded hardware semaphore to sendnotification between cores. - - - X X X - - - -

AN

5033 - Rev 6

page 12/30

AN

5033

Page 13: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

HSEM

HSEM_CoreSync This example shows how to use embedded hardware semaphore to synchronizebetween cores. - - - X X X - - - -

HSEM_ProcessSyncThis example shows how to use a hardware semaphore to synchronize twoprocesses. In this example, hardware semaphore (9) is used to synchronize twoprocesses.

X - - - - - X - - X

HSEM_ReadLock This example shows how to enable, take, then release a semaphore using twodifferent orocesses. - - - - - - X - - X

HSEM_ResourceSharing This example shows how to use embedded hardware semaphore to shareresources between cores. - - - X X X - - - -

I2C

I2C_EEPROM_fast_mode_plus This example shows how to handle I2C data buffer transmission/reception withDMA. In the example the device communicates with an I2C EEPROM memory. X - - - - - X - - -

I2C_TwoBoards_ComDMA This example shows how to handle I2C data buffer transmission/receptionbetween two boards, via DMA. - - - - - - - X - X

I2C_TwoBoards_ComIT This example shows how to handle I2C data buffer transmission/receptionbetween two boards, using an interrupt. - - - - - - - X - X

I2C_TwoBoards_ComPolling This example shows how to handle I2C data buffer transmission/receptionbetween two boards, in Oolling mode. - - - - - - - X - X

I2C_WakeUpFromStop This example describes how to perform I2C data buffer transmission/receptionbetween two intances using an interrupt when one core is in Stop mode. - - - X - - X X - X

IWDG IWDG_WindowModeThis example shows how to periodically update the IWDG reload counter andsimulate a software fault that generates a MCU IWDG reset when a programmedtime period has elapsed.

X - - X X X X - X X

JPEG

JPEG_DecodingFromFLASH_DMAThis example demonstrates how to decode a JPEG image stored in the internalFlash memory using the JPEG hardware decoder in DMA mode, and display thefinal ARGB8888 image on LCD mounted on the board.

X - X X X X X - - -

JPEG_DecodingUsingFs_DMA

This example demonstrates how to read jpeg file from an SDCard memory usingFatFs, decode it using the JPEG hardware decoder in DMA mode, and displaythe final ARGB8888 image on a KoD DSI-LCD mounted on thr board or an HDMImonitor connected through the DSI-HDMI bridge board (MB1232.A).

- - - X X - X - - -

JPEG_DecodingUsingFs_Interrupt

This example demonstrates how to read jpeg file from an SDCard memory usingFatFs, decode it using the JPEG hardware decoder in Interrupt mode, anddisplay the final ARGB8888 image on a KoD DSI-LCD mounted on board or anHDMI monitor Connected through the DSI-HDMI bridge board (MB1232.A).

- - - X X - X - - -

JPEG_DecodingUsingFs_Polling

This example demonstrates how to read jpeg file from an SDCard memory usingFatFs, decode it using the JPEG hardware decoder in Polling mode, and displaythe final ARGB8888 image on a KoD DSI-LCD mounted on board or an HDMImonitor Connected through the DSI-HDMI bridge board (MB1232.A).

- - - X X - X - - -

JPEG_EncodingFromFLASH_DMAThis example demonstrates how to read an RGB image stored in the internalFlash memory, encode it using the JPEG hardware encoder in DMA mode andsave it in an SDCard.

X X - X X - X - - -

JPEG_EncodingUsingFs_DMAThis example demonstrates how to read bmp file from an SDCard memory usingFatFs, encode it using the JPEG hardware encoder in DMA mode and save it onthr SDCard.

- - - X X - X - - -

AN

5033 - Rev 6

page 13/30

AN

5033

Page 14: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

JPEG

JPEG_MJPEG_VideoDecoding

This example demonstrates how to use the hardware JPEG decoder to decodean MJPEG video file located on the microSD and display the final ARGB8888video on a KoD DSI-LCD mounted on the board or an HDMI monitor Connectedthrough the DSI-HDMI bridge board (MB1232.A).

- - - X X - X - - -

JPEG_MJPEG_VideoDecodingFromOSPIThis example shows how to use the hardware JPEG decoder to decode anMJPEG video file located in the external Octo-SPI Flash and display it on theLCD-TFT screen.

X X - - - - - - - -

JPEG_MJPEG_VideoDecodingFromQSPI

This example demonstrates how to use the hardware JPEG decoder to decodean MJPEG video file located in the external Quad-SPI Flash and display the finalARGB8888 video on a KoD DSI-LCD mounted on board or an HDMI monitorconnected through the DSI-HDMI bridge board (MB1232.A).

- - - X X - X - - -

LCD_DSI

LCD_DSI_CmdMode_DoubleBufferThis example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board.

- - - X X - - - - -

LCD_DSI_CmdMode_PartialRefreshThis example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board.

- - - X X - - - - -

LCD_DSI_CmdMode_SingleBufferThis example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board.

- - - X X - - - - -

LCD_DSI_CmdMode_TearingEffectThis example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board.

- - - X X - - - - -

LCD_DSI_CmdMode_TearingEffect_ExtPinThis example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board.

- - - X X - - - - -

LCD_DSI_ULPM_Data

This example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board and manage entry and exit in DSI ULPM mode on data lane only. Inthis mode, the DSI PHY state machine is entering a low power state on data laneand allows to save some power when the LCD does not need to display anyimage.

- - - X X - - - - -

LCD_DSI_ULPM_DataClock

This example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board and manage entry and exit in DSI ULPM mode on data lane andclock lane.

- - - X X - - - - -

LCD_DSI_VideoMode_DoubleBuffering

This example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board or a HDMI monitor Connected through the DSI-HDMI bridge boardMB1232.A.

- - - X X - - - - -

LCD_DSI_VideoMode_SingleBuffer

This example provides a description of how to use the embedded LCD DSIcontroller (using LTDC and DSI Host peripherals) to drive the KoD LCD mountedon the board or a HDMI monitor Connected through the DSI-HDMI bridge boardMB1232.A.

- - - X X - - - - -

LPTIM LPTIM_Encoder This example shows how to configure the LPTIM peripheral in Encoder mode. - - - - - - X - - X

AN

5033 - Rev 6

page 14/30

AN

5033

Page 15: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

LPTIM

LPTIM_PWMExternalClockThis example describes how to configure and use LPTIM to generate a PWMsignal at the lowest power consumption, using an external counter clock, throughthe HAL LPTIM API.

- - - - - - X X - X

LPTIM_PWM_LSEThis example describes how to configure and use LPTIM to generate a PWMsignal in low power mode using the LSE as a counter clock, through the HALLPTIM API.

X - - - - - X X - X

LPTIM_PulseCounter This example describes how to configure and use, through the LPTIM HAL API,the LPTIM peripheral to count pulses. - X - X X X X X X X

LPTIM_Timeout This example describes how to implement a low-power timeout to wake up thesystem using the LPTIMER, through the HAL LPTIM API. - - - - - - X X - X

LTDC

LTDC_ColorKeying This example describe how to enable and use the LTDC color keying feature. X - - - - - X - - -

LTDC_ColorKeying_FromOSPI This example describe how to enable and use the LTDC color keying feature anduse the Octo-SPI memory. X - - - - - - - - -

LTDC_Display_1LayerThis example provides a description of how to configure LTDC peripheral todisplay an RGB image of size 480x272 and format RGB565 (16 bits/pixel) onLCD using only one layer.

- - X - - X X - - -

LTDC_Display_2Layers This example describes how to configure the LTDC peripheral to display twolayers at the same time. - X X - - X X - - -

MDMA

MDMA_DMA2D_Triggering This example describes how to use the MDMA with hardware trigger set to theDMA2D transfer complete flag. - - - X X - X - - -

MDMA_GPDMA_Triggering This example describes how to use the MDMA with hardware trigger set to D2Domain GP-DMA transfer complete flag. - - - - - - X - - -

MDMA_LTDC_Triggering This example describes how to use the MDMA with hardware trigger set to theLTDC line interrupt flag. X - - - - - X - - -

MDMA_LinkedList

This example describes how to use the MDMA to perform a list of transfers. Thetransfer list is organized as linked list, each time the current transfer ends theMDMA automatically reload the next transfer parameters, and starts it (withoutCPU intervention).

X - X - - - X X - X

MDMA_LinkedList_ColorsComp

This example demonstrates how to use the MDMA in Linked list mode to extractRed/Green and blue colors of an ARGB8888 image, resize each sub image (witha decimation factor /2) and display the result Red/green/blue decimated sub-images on the LCD.

- - - X X - X - - -

MDMA_RepeatBlock_Rotation This example provides a description of how to use the MDMA in repeat blocktrigger mode in order to copy an RGB565 image to the LCD frame buffer. X X - X X X X - - -

MDMA_RepeatBlock_ZoomOutThis example provides a description of how to use the MDMA in repeat blocktrigger mode in order to decimate an RGB565 image and copy it to the LCDframe buffer.

- - - X X X X - - -

MMCMMC_ReadWrite_DMA This example performs some write and read transfers to MMC card with SDMMC

internal DMA mode and calculate write and read transfer speed. - - - - - X - - - -

MMC_ReadWrite_IT This example performs some write and read transfers to MMC card in Interruptmode and calculate write and read transfer speed. - - - - - X - - - -

AN

5033 - Rev 6

page 15/30

AN

5033

Page 16: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

OPAMP

OPAMP_Calibration This example describes how to calibrate the OPAMP peripheral. - - - - - - - X - X

OPAMP_Follower This example shows how to configure OPAMP peripheral in Follower modeinterconnected with DAC and COMP. X - - - - - X X - X

OPAMP_PGA_ExternalBias This example shows how to configure OPAMP peripheral in PGA mode with biasvoltage for the non-inverting mode. - - - X - - X - - X

OSPI

OSPI_NOR_MemoryMapped_DTR

This example describes how to erase part of the Octo-SPI NOR Flash memory,write data in Interrupt mode, and performs accesses to Octo-SPI NOR Flashmemory in Memory-mapped mode to check the data in a forever loop.Thememory is configured in octal DTR mode.

X - - - - - - - - -

OSPI_NOR_ReadWrite_DMAThis example describes how to erase part of the Octo-SPI NOR Flash memory,write data in DMA mode, read data in DMA mode and compare the result in aforever loop.

X - - - - - - - - -

OSPI_RAM_MemoryMapped This example describes how to write and read data in Memory-mapped mode inthe Octo-SPI HyperRAM memory and compare the result in a forever loop. X - - - - - - - - -

OTFDECOTFDEC_DataDecrypt

This example describes how to decrypt data located on the Octo-SPI externalFlash memory using the OTFDEC peripheral. The CRYP peripheral can also beused for ciphering any other data. However it is mandatory to uncomment"#define HAL_CRYP_MODULE_ENABLED", in the stm32h7xx_hal_conf.h.USART1 is used to verify that the decryption is done correctly.

X - - - - - - - - -

OTFDEC_ExecutingCryptedInstruction This example shows how to use OTFDEC to decrypt and execute instructionstored in external NOR Flash memory. X - - - - - - - - -

PSSI PSSI_Transmit_Receive_DMA

This example describes how to perform PSSI data buffer transmission/receptionbetween the on-board PSSI configured as a slave and a master simulated byanother board. This project is configured for STM32H7A3xxQ devices usingSTM32CubeH7 HAL and running on an STMicroelectronics NUCLEO-H7A3ZI-Qboard.

- - - - - - - X - -

PWR

PWR_D1ON_D2OFF This example shows how to run the system with only D1 domain in Run modewhile D2 domain is in Standby mode. - - - X X X - - X -

PWR_D2ON_D1OFF This example shows how to run the system with only D2 domain in Run modewhile D1 domain is in Standby mode. - - - X X X - - X -

PWR_Domain3SystemControl

This example shows how to maintain a basic activity of the system in low-powermode with D3 Domain only. This is done by ensuring the communicationbetween the D3SRAM, the BDMA and the LPUART when the system is in Stopmode.

- - - X X X X - X X

PWR_Hold_Mechanism

This example shows how to use the Hold mechanism to enable the system to bere-initialized by a master CPU. This allows the master CPU to be woken up bothby its own wakeup sources and the wakeup sources of the slave CPU, and keepthe slave CPU in hold until it is released by the master CPU.

- - - X X X - - X -

PWR_STANDBY This example shows how to enter the system in Standby mode and wake upfrom this mode using external RESET or WKUP pin. - X - X - X X X - X

PWR_STANDBY_RTC This example shows how to enter Standby mode and wake up from this mode byusing an external reset or the RTC wakeup timer. X X - X X X X X X X

AN

5033 - Rev 6

page 16/30

AN

5033

Page 17: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

PWR

PWR_STOP2_RTCThis example shows how to enter the system in Stop mode with main domain inDStop2 and wake up from this mode using RTC wakeup timer with memory shut-off option enabled.

X X - - - - - X - -

PWR_STOP_DataRetainThis example shows how to retain data in D3SRAM when the system entersStop mode with: D1 domain is in Standby mode to guarantee low-powerconsumption.

- - - - - - X - - X

PWR_STOP_RTCThis example shows how to enter the system in Stop mode and wake up fromthis mode by using the RTC wakeup timer as wakeup source event. This event isconnected to EXTI19.

- - - X X X X - X X

PWR_STOP_STANDBYThis example shows how to enter the system in Stop/Standby mode and wakeup from this mode using an external RESET or a WKUP pin connected to theuser button.

- - X - - - - - - -

PWR_VOS0_480MHZ

This example shows how to over clock the system to 480 MHz with VOS0. In thisexample, when the USE_VOS0_480MHZ_OVERCLOCK define statement (inmain.h) is set to zero, the SystemClock_Config_400MHz() function is used to setthe Flash latency and to configure the system clock: the Arm® Cortex®-M7 at400 MHz - Cortex®-M4 at 200 MHz.

- - - - - - - - X X

QSPI

QSPI_ExecuteInPlace This example describes how to execute a part of the code from the Quad-SPImemory. To do this, a section is created where the function is stored. - - - - - - X - - -

QSPI_MemoryMappedThis example describes how to erase part of the Quad-SPI memory, write data inDMA mode and access the Quad-SPI memory in Memory-mapped mode tocheck the data in a forever loop.

- - - - - - X - - -

QSPI_MemoryMappedDualThis example describes how to erase part of the Quad-SPI memory, write data inInterrupt mode and access to Quad-SPI memory in Memory-mapped dual modeto check the data in a forever loop.

- - X X - X X - - -

QSPI_ReadWriteDual_DMAThis example describes how to use Quad-SPI interface in Dual mode. It erasespart of the Quad-SPI memory, writes data in DMA mode, reads data in DMAmode and compares the result in a forever loop.

- - - - - - X - - -

QSPI_ReadWrite_DMA This example describes how to erase part of the Quad-SPI memory, read andwrite data in DMA mode. - - - - - - X - - -

QSPI_ReadWrite_ITThis example describes how to erase part of the Quad-SPI memory, write data inInterrupt mode, read data in Interrupt mode and compare the result in a foreverloop.

- - - - - - X - - -

RAMECC RAMECC_ErrorCount This example describes how to enable and activate notifications for RAMECCRAMs. - - - - - - - - X -

RCC RCC_ClockConfig This example describes how to configure the system clock (SYSCLK) and modifythe clock settings in Run mode using the RCC HAL API. X X - X X X X X X X

RNG RNG_MultiRNG This example describes how to configure the RNG using the HAL API. Thisexample uses the RNG to generate 32-bit long random numbers. X X - X - X X X - X

RTC

RTC_ActiveTamper This example describes how to program active tampers. X - - - - - - - - -

RTC_Alarm This example describes how to configure and generate an RTC alarm using theRTC HAL API. X X X X X X X X X X

AN

5033 - Rev 6

page 17/30

AN

5033

Page 18: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

RTCRTC_Tamper This example describes how to configure RTC to write/read data to/from RTC

Backup registers and to demonstrate the tamper detection feature. - X - - - - X X - X

RTC_TimeStamp This example describes how to configure the RTC HAL API to demonstrate thetimestamp feature. - X - - - - X X - X

SAISAI_AudioPlay This example describes how to use of the SAI HAL API to play an audio file in

DMA circular mode and handle the buffer update. X - - - - - X - - -

SAI_AudioPlayback This example shows how to use the SAI to playback audio data coming from twomicrophones. - - - - - X X - - -

SD

SD_ReadWrite_DMA This example shows how to support DMA mode for microSD cards. X - - - - - X - - -

SD_ReadWrite_DMADoubleBuffer This example performs write and read transfers to SDcard using SDMMCinternal DMA mode and calculate write and read transfer speed. X - - - - - X - - -

SD_ReadWrite_DMA_HS This example shows how to support DMA mode for microSD cards. X - - - - - X - - -

SD_ReadWrite_IT This example performs write and read transfers to SDcard in SDMMC internalDMA mode and calculate write and read transfer speed. X - - - - - X - - -

SPDIFRX SPDIFRX_AudioPlay This example shows how to use the SPDIFRX HAL APIs to receive audio dataand then play them through the Codec by using the SAI interface. - - - - X - - - - -

SPI

SPI_FullDuplex_ComDMA Data buffer transmission/reception between two boards via SPI using DMA. - - - - - - - X X X

SPI_FullDuplex_ComIT Data buffer transmission/reception between two boards via SPI using Interruptmode. - - - - - - - X X X

SPI_FullDuplex_ComPolling Data buffer transmission/reception between two boards via SPI using Pollingmode. - - - - - - - X - X

TIM

TIM_6Steps This example shows how to configure the TIM1 peripheral to generate six steps. X - - - - - X - - X

TIM_Asymetric This example shows how to configure the TIM peripheral to generate anasymmetric signal. - - - - - - X X - X

TIM_Combined This example shows how to configure the TIM1 peripheral to generate threePWM combined signals with TIM1 channel 5. - - - - - - X - - X

TIM_ComplementarySignalsThis example shows how to configure the TIM1 peripheral to generate threecomplementary TIM1 signals, to insert a defined dead time value, to use thebreak feature and to lock the desired parameters.

- - - - - - X - - X

TIM_DMA Use of the DMA with TIMER Update request to transfer data from memory toTIMER capture compare register 3 (TIMx_CCR3). - X - - X X X X - X

TIM_DMABurst This example shows how to update the TIMER channel 1 period and the dutycycle using the TIMER DMA burst feature. - - - - - - X - - X

TIM_InputCapture This example shows how to use the TIMER peripheral to measure the frequencyof an external signal. - - - - - - X - - X

TIM_OCToggle This example shows how to configure the TIMER peripheral to generate fourdifferent signals with four different frequencies. - - - - - - X - - X

TIM_OnePulse This example shows how to use the TIMER peripheral to generate a single pulsewhen a rising edge of an external signal is received on the TIMER input pin. - - - - - - X - - X

AN

5033 - Rev 6

page 18/30

AN

5033

Page 19: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples

TIM

TIM_PWMOutput This example shows how to configure the TIMER peripheral in PWM (pulse widthmodulation) mode. X - - X - - X - X X

TIM_Synchronization This example shows how to synchronize TIM1 and TIM3 and TIM4 timers inParallel mode. - - - - - - X X - X

TIM_TimeBase This example shows how to configure the TIMER peripheral to generate atimebase of one second with the corresponding interrupt request. - - X - - - X X - X

UART

LPUART_WakeUpFromStop This example shows how to configure a LPUART to wake up the MCU from Stopmode when a given stimulus is received. X - - - - - X - - -

UART_HyperTerminal_DMA This example describes an UART transmission (transmit/receive) in DMA modebetween a board and an Hyperterminal PC application. X - - - - - X - - -

UART_HyperTerminal_IT This example describes an UART transmission (transmit/receive) between aboard and an Hyperterminal PC application by using an interrupt. X - - - - - X - - -

UART_Printf Re-routing of the C library printf function to the UART. X X - - - - X - - -

UART_TwoBoards_ComDMA UART transmission (transmit/receive) in DMA mode between two boards. - - - - - - - X - X

UART_TwoBoards_ComIT UART transmission (transmit/receive) in Interrupt mode between two boards. - - - - - - - X - X

UART_TwoBoards_ComPolling UART transmission (transmit/receive) in Polling mode between two boards. - - - - - - - X - X

UART_WakeUpFromStopUsingFIFO This example shows how to use UART HAL API to wake up the MCU from Stopmode using the UART FIFO level. X - - X X X X - X -

USART USART_SlaveMode This example describes an USART-SPI communication (transmit/receive)between two boards where the USART is configured as a slave. - - - - - - - X - X

WWDG

WWDG_ExampleThis example shows how to perform periodic update of WWDG counter andsimulate a software fault that generates an MCU WWDG reset when apredefined time period has elapsed.

- - - X X X X - X X

WWDG_ResetAfterSwFailureThis example shows how to perform periodic update of WWDG counter andsimulate a software fault that generates an MCU WWDG reset when apredefined time period has elapsed.

X X - - - - - X - -

Total number of examples: 548 68 27 13 61 51 40 135 53 21 79

Examples_LL

COMP COMP_CompareGpioVsVrefInt_IT

This example shows how to use a comparator peripheral to compare a voltagelevel applied on a GPIO pin to the internal voltage reference (VREFINT), inInterrupt mode. This example is based on the STM32H7xx COMP LL API. Theperipheral initialization uses LL unitary service functions for optimizationpurposes (performance and size).

- - - - - - - X - X

CRC CRC_CalculateAndCheck

This example shows how to configure the CRC calculation unit to compute aCRC code for a given data buffer, based on a fixed generator polynomial (defaultvalue 0x4C11DB7). The peripheral initialization is done using LL unitary servicefunctions for optimization purposes (performance and size).

- - - - - - - X - -

DAC DAC_GenerateWaveform_TriggerHW

This example shows how to use the DAC peripheral to generate a voltagewaveform from a digital data stream transfered by DMA. This example is basedon the STM32H7xx DAC LL API. The peripheral initialization uses LL unitaryservice functions for optimization purposes (performance and size).

- - - - - - - X - X

AN

5033 - Rev 6

page 19/30

AN

5033

Page 20: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples_LL

DMA DMA_CopyFromFlashToMemoryThis example shows how to use a DMA to transfer a word data buffer from Flashmemory to embedded SRAM. The peripheral initialization uses LL unitary servicefunctions for optimization purposes (performance and size).

- - - - - - - X - -

DMA2D DMA2D_MemoryToMemory

This example shows how to configure the DMA2D peripheral in Memory-to-memory transfer mode. The example is based on the STM32H7xx DMA2D LLAPI. The peripheral initialization uses LL unitary service functions foroptimization purposes (performance and size).

- X - - - - - - - -

EXTI EXTI_ToggleLedOnIT

This example shows how to configure the EXTI and use GPIOs to toggle theuser LEDs available on the board when a user button is pressed. It is based onthe STM32H7xx LL API. The peripheral initialization uses LL unitary servicefunctions for optimization purposes (performance and size).

- - - - - - - X - -

GPIO GPIO_InfiniteLedToggling

This example shows how to configure and use GPIOs to toggle the on-boarduser LEDs every 250 ms. This example is based on the STM32H7xx LL API. Theperipheral is initialized with LL unitary service functions to optimize forperformance and size.

- - - - - - - X - -

IWDG IWDG_RefreshUntilUserEvent

This example shows how to configure the IWDG peripheral to ensure periodicalcounter update and generate an MCU IWDG reset when a User push-button ispressed. The peripheral is initialized with LL unitary service functions to optimizefor performance and size.

- - - - - - - X - -

RCC RCC_OutputSystemClockOnMCO This example shows how to configure MCO pins (PA8 and PC9) to output thesystem clock. - - - - - - - X - -

RNG RNG_GenerateRandomNumbersThis example shows how to configure the RNG to generate 32-bit long randomnumbers. The peripheral initialization uses LL unitary service functions foroptimization purposes (performance and size).

- - - - - - - X - -

RTC RTC_AlarmThis example shows how to configure the RTC LL API to configure and generatean alarm using the RTC peripheral. The peripheral initialization uses LL unitaryservice functions for optimization purposes (performance and size).

- - - - - - - X - X

SPI SPI_FullDuplex_ComIT This example shows how to perform SPI data buffer transmission/receptionbetween two instances in the same board by using interruptions. - - - - - - - X - X

TIM TIM_PWMOutput

This example shows how to use a timer peripheral to generate a PWM outputsignal and update the PWM duty cycle. This example is based on theSTM32H7xx TIM LL API. The peripheral initialization uses LL unitary servicefunctions for optimization purposes (performance and size).

- - - - - - - X - -

USART USART_Communication_Rx_IT

This example shows how to configure GPIO and USART peripherals to receivecharacters from an HyperTerminal (PC) in Asynchronous mode using aninterrupt. The peripheral initialization uses LL unitary service functions foroptimization purposes (performance and size).

- - - - - - - X - -

Total number of examples_ll: 18 0 1 0 0 0 0 0 13 0 4

Examples_

MIX

CRC CRC_PolynomialUpdate This example shows how to use the CRC peripheral through the STM32H7xxCRC HAL and LL API. - - - - - - - X - -

DMA DMA_FLASHToRAMThis example shows how to use a DMA to transfer a word data buffer from Flashmemory to embedded SRAM through the STM32H7xx DMA HAL and LL API.The LL API is used for performance improvement.

- - - - - - - X - -

AN

5033 - Rev 6

page 20/30

AN

5033

Page 21: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Examples_

MIX

DMA2D DMA2D_MemToMemWithLCDThis example shows how to configure the DMA2D peripheral in Memory-to-memory transfer mode and display the result on the LCD. The DMA2D LL APIsare used for performance improvement.

- X - - - - - X - -

Total number of examples_mix: 4 0 1 0 0 0 0 0 3 0 0

Applications

Audio Audio_playback_and_recordThis application shows how to use the different functionalities of the SAI (serialaudio interface) to ensure audio record and playback via ST MEMS microphones(MP34DT01).

- - - - - - X - - -

Display

LTDC_AnimatedPictureFromSDCard This example shows how to display an animated picture on LCD saved undermicroSD. - X - - - - X - - -

LTDC_PaintThis application describes how to configure LCD touchscreen and attribute anaction related to configured touch zone and how to save BMP picture in USBdisk.

- - X - - - X - - -

LTDC_PicturesFromSDCard This example shows how to use LTDC layers display pictures saved underSDcard on LCD. X X - - - - X - - -

EEPROM EEPROM_EmulationThis application describes the software solution for substituting standaloneEEPROM by emulating the EEPROM mechanism using the on-chip Flashmemory of STM32H743x devices.

- - - - - - X X - X

ExtMem_

CodeExecution

ExtMem_Application\FreeRTOS This example shows how to implement thread creation using CMSIS RTOS APIwith execution from external memory. - X - - - - X - - -

ExtMem_Application\LedToggling This application provides simple LED toogling program with execution fromexternal memory. - X - - - - X - - -

ExtMem_BootThis directory contains a set of sources files and pre-configured projects thatdescribes how to build an application for execution from external memory usingthe ExtMem_Boot firmware.

-- X - - - - X - - -

FPU FPU_FractalThis application explains how to use, and demonstrates the benefits brought by,the STM32H7 floating-point units (FPU). The Arm® Cortex®-M7 FPU is animplementation of the Arm® FPv5-SP double-precision FPU.

- - - X X - X - - -

FatFS FatFS_uSD_Standalone

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module. Theobjective is to develop an application making the most of the features offered byFatFs to configure a microSD drive.

- - - - - - - - - X

FatFs

FatFs_CopyFiles

This application explains how to use STM32Cube firmware with FatFsmiddleware component as a generic FAT file system module. This exampledevelops an application that exploits FatFs features to configure two microSDdrive and copy files from the first instance to the second one.

X - - - - - - - - -

FatFs_Dual_Instance

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module. Theobjective is to develop an application making the most of the features offered byFatFs to configure a microSD and USB drives.

- - - X - - - - - -

FatFs_MultiAccess_RTOSThis application explains how to use STM32Cube firmware with FatFsmiddleware component as a generic FAT file system module, FreeRTOS as anRTOS module based on using CMSIS-OS V2 wrapping layer common APIs.

- X - - - - - - - -

AN

5033 - Rev 6

page 21/30

AN

5033

Page 22: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Applications

FatFs

FatFs_MultiDrives

This application explains how to use STM32Cube firmware with FatFsmiddleware component as a generic FAT file system module. This exampledevelops an application that exploits FatFs features, with multidrive (SDRAM,microSD) configurations.

- X - - - - X - - -

FatFs_RAMDisk

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module, in order todevelop an application exploiting FatFs offered features with RAM disk (SRAM)drive configuration.

- - - - - - X X - -

FatFs_SDRAMDisk

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module. Theobjective is to develop an application making the most of the features offered byFatFs to configure a RAMDisk drive.

- - - - - - X - - -

FatFs_Shared_Device

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module. Theobjective is to develop an application making the most of the features offered byFatFs to access the eMMC card.

- - - - - X - - - -

FatFs_USBDisk_RTOS

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module and STM32USB On-The-Go (OTG) host library, in Full Speed (FS) and High Speed (HS)modes, in order to develop an application exploiting FatFs offered features withUSB disk drive configuration.

- - - - - - X - - -

FatFs_USBDisk_Standalone

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module and STM32USB On-The-Go (OTG) host library, in Full Speed (FS) and High Speed (HS)and modes, in order to develop an application exploiting FatFs offered featureswith USB disk drive configuration.

- - - - - - X - - -

FatFs_uSD_DMA_RTOS

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module, in order todevelop an application exploiting FatFs offered features with microSD drive inRTOS mode configuration.

- - - - - - X - - -

FatFs_uSD_DMA_Standalone

This application explains how to use STM32Cube firmware with FatFsmiddleware component as a generic FAT file system module. This exampledevelops an application that exploits FatFs features to configure a microSDdrive.

- X - - - - X - - -

FatFs_uSD_Standalone

This application provides a description on how to use STM32Cube firmware withFatFs middleware component as a generic FAT file system module. Theobjective is to develop an application making the most of the features offered byFatFs to configure a microSD drive.

- - - - - - X - - -

FreeRTOS

FreeRTOS_AMP_Dual_RTOS This example shows how to use FreeRTOS message buffers to pass data fromone core to another. Each core has his own FreeRTOS instance. - - - - - X - - X -

FreeRTOS_AMP_RTOS_BareMetal This example shows how to use FreeRTOS message buffers to pass data fromone core to another. - - - - - X - - X -

FreeRTOS_HwSemaphoreCoreSync This application shows how to use embedded hardware semaphore to sendnofification between cores. - - - X X - - - - -

AN

5033 - Rev 6

page 22/30

AN

5033

Page 23: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Applications

FreeRTOS

FreeRTOS_LowPower This application explains how to enter and exit low-power mode with CMSISRTOS API. - X - - - - - X - -

FreeRTOS_MPU This application aims at describing how to use the MPU feature of FreeRTOS. - - - - - - X - - X

FreeRTOS_Mail This application explains how to use mail queues with CMSIS RTOS API. - - X - - - - - - -

FreeRTOS_Mutexes This application explains how to use mutexes with CMSIS RTOS API. X - - - - - - X - -

FreeRTOS_Queues This application explains how to use message queues with CMSIS RTOS API. - - - - - - - X - -

FreeRTOS_Semaphore This application explains how to use semaphores with CMSIS RTOS API. - X - - - - - X - -

FreeRTOS_SemaphoreFromISR This application shows how to use semaphore from ISR with CMSIS RTOS API . - - - - - - X X - X

FreeRTOS_ThreadCreation This application explains how to implement thread creation using CMSIS RTOSAPI. - X X - - - X X - X

FreeRTOS_Timers This application explains how to use timers of CMSIS RTOS API. X - - - - - - X - -

IAP

IAP_Binary_TemplateThis directory contains a set of sources files that build the application to beloaded into Flash memory using In-Application Programming (IAP) throughUSART.

- - - - - - X - - -

IAP_MainThis directory contains a set of sources files and pre-configured projects thatdescribes how to build an in-application programming (IAP) that uses an USARTinterface to load an application binary.

- - - - - - X - - -

LibJPEGLibJPEG_Decoding This application demonstrates how to use the libjpeg API to decode a jpeg file. - - - - - - X - - -

LibJPEG_Encoding This application demonstrates how to use the libjpeg API to encode and decodea BMP image into a jpeg file. - - - - - - X - - -

LwIP

LwIP_HTTP_Server_Netconn_RTOSThis application guides STM32Cube HAL API users to run a http serverapplication based on Netconn API of LwIP TCP/IP stack The communication isdone with a web browser application in a remote PC.

- - - - - - X - - X

LwIP_HTTP_Server_RawThis application guides STM32Cube HAL API users to run a http serverapplication based on Raw API of LwIP TCP/IP stack The communication is donewith a web browser application in a remote PC.

- - - - - - X - - -

LwIP_HTTP_Server_Socket_RTOSThis application guides STM32Cube HAL API users to run a http serverapplication based on Socket API of LwIP TCP/IP stack The communication isdone with a web browser application in a remote PC.

- - - - - - X - - -

LwIP_TCP_Echo_ClientThis application guides STM32Cube HAL API users to run TCP Echo Clientapplication based on Raw API of LwIP TCP/IP stack To run this application, Onthe remote PC, open a command prompt window.

- - - - - - X - - -

LwIP_TCP_Echo_ServerThis application guides STM32Cube HAL API users to run TCP Echo Serverapplication based on Raw API of LwIP TCP/IP stack To run this application, Onthe remote PC, open a command prompt window.

- - - - - - X - - -

LwIP_TFTP_Server This application guides STM32Cube HAL API users to run a tftp serverapplication for STM32H7xx devices. - - - - - - X - - -

AN

5033 - Rev 6

page 23/30

AN

5033

Page 24: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Applications

LwIP

LwIP_UDPTCP_Echo_Server_Netconn_RTOSThis application guides STM32Cube HAL API users to run a UDP/TCP EchoServer application based on Netconn API of LwIP TCP/IP stack To run thisapplication, On the remote PC, open a command prompt window.

- - - - - - X - - -

LwIP_UDP_Echo_ClientThis application guides STM32Cube HAL API users to run a UDP Echo Clientapplication based on Raw API of LwIP TCP/IP stack To run this application, Onthe remote PC, open a command prompt window.

- - - - - - X - - -

LwIP_UDP_Echo_ServerThis application guides STM32Cube HAL API users to run UDP Echo Serverapplication based on Raw API of LwIP TCP/IP stack To run this application, Onthe remote PC, open a command prompt window.

- - - - - - X - - -

OpenAMP

OpenAMP_PingPongThis application shows how to use OpenAMP middleware to create acommunication channel (called rpmsg channel) between cores and send mutualmessages in the two directions.

- - - X X X - - - -

OpenAMP_RTOS_PingPongThis application shows how to use OpenAMP middleware to create acommunication channel (called rpmsg channel) between cores and send mutualmessages in the two directions.

- - - X X X - - - -

Resources

Manager

ResourcesManager_SharedResources This application shows how to use the ResourcesManager in order to shareresources between cores. - - - X X X - - - -

ResourcesManager_UsageWithNotification This application shows how to use the ResourcesManager in order to shareresources between cores. - - - X X X - - - -

STemWin

STemWin_HelloWorld This directory contains a set of source files that implement a simple "Hello World"application based on STemWin for STM32H7B3xxQ Devices. X X X X X X X - - -

STemWin_SampleDemoThis directory contains a set of source files that implement a sampledemonstration application allowing to show some of the STemWin Librarycapabilities on STM32H7B3xxQ Devices.

X X X - - X X - - -

STemWin_acceleration This directory contains a set of source files that implement a simple"acceleration" application based on STemWin for STM32H7xx devices. - - - X X - - - - -

STemWin_animation This directory contains a set of source files that implement a simple "animation"application based on STemWin for STM32H7xx devices. - - - X X - - - - -

STemWin_fonts This directory contains a set of source files that implement a simple "fonts"application based on STemWin for STM32H7xx devices. - - - X X - - - - -

STemWin_memory_device This directory contains a set of source files that implement a simple "memorydevice" application based on STemWin for STM32H7xx devices. - - - X X - - - - -

USB_

Device

Audio_Standalone

This application is a part of the USB Device Library package using STM32Cubefirmware. It describes how to use USB device application based on the AUDIOClass implementation of an audio streaming (Out: Speaker/Headset) capabilityon the STM32H7xx devices.

- - - X - - X - - -

CDC_Standalone

This application is a part of the USB Device Library package using STM32Cubefirmware. It describes how to use USB device application based on the DeviceCommunication Class (CDC) following the PSTN subprotocol in theSTM32H747xx devices using the OTG-USB and UART peripherals.

- - - X - - X - - -

CustomHID_StandaloneThis application is a part of the USB Device Library package using STM32Cubefirmware. It describes how to use USB device application based on the CustomHID Class on the STM32H747xx devices.

- - - X X - X - - -

AN

5033 - Rev 6

page 24/30

AN

5033

Page 25: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Applications

USB_

Device

DFU_Standalone Compliant implementation of the Device Firmware Upgrade (DFU) capability toprogram the embedded Flash memory through the USB peripheral. X X - X X X X X - -

DualCore_Standalone

This application is a part of the USB Device Library package using STM32Cubefirmware. It describes how to use USB device application based on theSTM32H7xx multicore support feature integrating the Device CommunicationClass (CDC) and Human Interface (HID) in the same project.

- - - X - - X - - -

HID-CM4_MSC-CM7 This application shows how to use embedded hardware semaphore to sendnofification between cores. - - - X - - - - - -

HID_LPM_Standalone

The STM32H7xx devices support the USB Link Power Management Protocol(LPM-L1) and complies with the USB 2.0 LPM-L1 ECN. Thehpcd.Init.lpm_enable in the usbd_conf.c should be set to 1 to enable the supportfor LPM-L1 protocol in the USB stack.

- - - - - - X - - -

HID_Standalone Use of the USB device application based on the Human Interface (HID). X X X X X X X X - -

MSC_StandaloneThis application is a part of the USB Device Library package using STM32Cubefirmware. It describes how to use USB device application based on the MassStorage Class (MSC) on the STM32H7xx devices.

- - - X X - X - - -

USB_Host

AUDIO_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the Audio OUTclass on the stm32h7xx devices.

- - - - - - X - - -

CDC_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on theCommunication Class (CDC) on the stm32h7xx devices.

- - - X - - X - - -

DualCore_Standalone

This application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the STM32H7xmulti core support feature integrating Mass Storage (MSC) and Human Interface(HID) in the same project.

- - - X - - X - - -

DynamicSwitch_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use dynamically switch, on the same port, betweenavailable USB host applications on the stm32h7xx devices.

- - - - - - X - - -

FWupgrade_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the In-Application programming (IAP) on the STM32H7xx devices.

- - - X - - X - - -

HID_RTOSThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the HumanInterface Class (HID) on the STM32H7x devices.

- - - X - - X - - -

HID_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the HumanInterface Class (HID) on the STM32H7B3XXQ devices.

X X - X X X X X - -

MSC_RTOSThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the MassStorage Class (MSC) on the STM32H7x devices.

- - - X - - X - - -

AN

5033 - Rev 6

page 25/30

AN

5033

Page 26: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Applications

USB_Host MSC_StandaloneThis application is a part of the USB Host Library package using STM32Cubefirmware. It describes how to use USB host application based on the MassStorage Class (MSC) on the STM32H7XXQ devices.

X X X X X X X X - -

mbedTLSSSL_Client This application describes how to run an SSL client application based on

mbedTLS crypto library and LwIP TCP/IP stack. - - - - - - X - - -

SSL_Server This application describes how to run an SSL server application based onmbedTLS crypto library and LwIP TCP/IP stack. - - - - - - X - - -

Total number of applications: 164 10 17 7 27 17 13 54 13 2 6

Demonstra-tions

NUCLEO-H743ZI /

NUCLEO-H745ZI-Q /

NUCLEO-H7A3ZI-Q

NUCLEO DemonstrationDemonstration firmware based on STM32Cube. This example helps you todiscover STM32 Arm® Cortex®-M devices that are plugged onto your STM32Nucleo board.

- - - - - - - X X X

STM32H747I-EVAL/

STM32H747I-DISCO/

STM32H7B3I-DK

EmbeddedWizard This demonstration showcases a GUI created with the embedded wizard usingSTMicroelectronics graphic accelerator DMA2D. - X - X X - - - - -

MenuLauncherThe STM32Cube demonstration platform comes on top of the STM32Cube as afirmware package that offers a full set of software components based on amodular architecture.

- X - X X - - - - -

STemWin

The STM32Cube Demonstration platform is built around the powerful graphicallibrary STemWin and the FreeRTOS real time operating system and uses almostthe whole STM32 capability to offer a large scope of usage based on theSTM32Cube HAL BSP and several middleware components.

- X - X X - - - - -

STM32H747I-EVAL/

STM32H747I-DISCO

TouchGFXThis is the official TouchGFX demonstration developed jointly betweenSTMicroelectronics and Draupner Graphics for the STM32H747I -EVAL/DISCOboard.

- - - X X - - - - -

STM32H743I-EVAL STemWin

The STM32Cube Demonstration platform is built around the powerful graphicallibrary STemWin and the FreeRTOS real time operating system and uses almostthe whole STM32 capability to offer a large scope of usage based on theSTM32Cube HAL BSP and several middleware components.

- - - - - - X - - -

STM32H745I-DISCO Demonstration

The STM32Cube Demonstration platform is built around the powerful analogperipherals and uses almost STM32 capabilities to offer a large scope of usagebased on the STM32Cube HAL.

- - - - - X - - - -

STM32H750B-DK Demonstration

The STM32H750B-DK demonstration platform is built around the STM32H750xxdevice with execution from external Quad-SPI memory. It is composed of aMenuLauncher and two demonstrations:

• STemWin: built around the powerful graphical librarySTemWin and the FreeRTOS real time operating system

• TouchGFX: built around the powerful graphical libraryTouchGFX and the FreeRTOS real time operating system

- - X - - - - - - -

AN

5033 - Rev 6

page 26/30

AN

5033

Page 27: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Level ModuleName Project Name Description

STM

32H

7B3I

-EVA

L

STM

32H

7B3I

-DK

STM

32H

750B

-DK

STM

32H

747I

-EVA

L

STM

32H

747I

-DIS

CO

STM

32H

745I

-DIS

CO

STM

32H

743I

-EVA

L

NU

CLE

O-H

7A3Z

I-Q

NU

CLE

O-H

745Z

I-Q

NU

CLE

O-H

743Z

I

Demonstra-tions

STM32H7B3I-DK

AudioPlayer

The audio player application provides a complete audio solution based on theSTM32H7B3xx and and the TouchGFX APIs. It delivers a high-quality musicexperience. It supports playing music in WAV and mp3 formats but may beextended to support other compressed formats such as WMA audio format.

- X

ClockAndWeather The Clock&Weather module provides a clock and weather application based onthe STM32H7xxx and the TouchGFX APIs - X

TouchGFX

Home cntroller to view room information and the state of the devices in the room.

From the Home UI screen you can either choose to view the temperature in thetwo rooms, or the state of devices by pressing kitchen or bathroom button,respectively.

- X

VideoPlayer The video player module provides a video solution based on the STM32H7xxxand the TouchGFX APIs. - X

Total number of demonstrations: 21 0 7 1 4 4 1 1 1 1 1

Total number of projects: 789 80 55 23 97 77 59 192 85 29 92

AN

5033 - Rev 6

page 27/30

AN

5033

Page 28: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Revision history

Table 2. Document revision history

Date Version Changes

12-May-2017 1 Initial release.

05-Sep-2017 2 Updated applications and demonstrations in Table 1: STM32CubeH7 firmware examples.

02-Jan-2018 3Updated Section 1: Reference documents.

Updated Table 1: STM32CubeH7 firmware examples.

27-Jun-2018 4

Added Arm wordmark notice in Section 1 Reference documents.

Replaced STM32Cube embedded firmware by STM32Cube MCU Package in the whole document.

Updated Table STM32CubeH7 firmware examples.

27-Mar-2019 5

• Single-core architecture examples running on STM32H743I-EVAL anrd NUCLEO-H743ZI: nochanges compare to previous document revision.

• Added dual-core architecture examples running on STM32H747I-EVAL STM32H745I-DISCO,STM32H747I-DISCO, STM32H750B-DK and NUCLEO-H745ZI-Q.

• Added support for LL drivers.

19-Dec-2019 6

Added STM32H7B3I-EVAL, STM32H7B3I-DK and NUCLEO-H7A3ZI-Q.

Added UM2298 in Section 1 Reference documents.

Added Examples_MIX in Section 2 STM32CubeH7 examples.

AN5033

AN5033 - Rev 6 page 28/30

Page 29: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

Contents

1 Reference documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 STM32CubeH7 examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

AN5033Contents

AN5033 - Rev 6 page 29/30

Page 30: STM32Cube MCU Package examples for STM32H7 Series ... · h. Run the example: LED1 toggles continuously (for more details, refer to the example readme.txt file). Note: The principle

IMPORTANT NOTICE – PLEASE READ CAREFULLY

STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to STproducts and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. STproducts are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgement.

Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design ofPurchasers’ products.

No license, express or implied, to any intellectual property right is granted by ST herein.

Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.

ST and the ST logo are trademarks of ST. For additional information about ST trademarks, please refer to www.st.com/trademarks. All other product or servicenames are the property of their respective owners.

Information in this document supersedes and replaces information previously supplied in any prior versions of this document.

© 2019 STMicroelectronics – All rights reserved

AN5033

AN5033 - Rev 6 page 30/30