0% found this document useful (0 votes)
8 views

an4734-stm32cube-firmware-examples-for-stm32f3-series-stmicroelectronics

The STM32CubeF3 firmware package includes a variety of examples organized by board and toolchain, aimed at demonstrating the features and usage of STM32F3 Series microcontrollers. The examples are categorized into several types, including basic examples, low-level driver examples, mixed examples, applications, and demonstrations, each serving different purposes. Users can tailor these examples to their specific hardware by updating the board support package (BSP) drivers as needed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

an4734-stm32cube-firmware-examples-for-stm32f3-series-stmicroelectronics

The STM32CubeF3 firmware package includes a variety of examples organized by board and toolchain, aimed at demonstrating the features and usage of STM32F3 Series microcontrollers. The examples are categorized into several types, including basic examples, low-level driver examples, mixed examples, applications, and demonstrations, each serving different purposes. Users can tailor these examples to their specific hardware by updating the board support package (BSP) drivers as needed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

AN4734

Application note
STM32Cube firmware examples for STM32F3 Series

Introduction
The STM32CubeF3 firmware package comes with a rich set of examples running on
STMicroelectronics boards. The examples are organized by board and provided with
preconfigured projects for the main supported toolchains (see Figure 1 and Table 1).

Figure 1. STM32CubeF3 firmware components

(YDOXDWLRQ 'LVFRYHU\ 6701XFOHR 'HGLFDWHG 8VHU


ERDUGV ERDUGV ERDUGV ERDUGV DSSOLFDWLRQ 8WLOLWLHV
$SSOLFDWLRQOHYHOGHPRQVWUDWLRQV

86% 7RXFKOLEUDU\ )$7ILOH &06,6


*UDSKLFV 5726
V\VWHP

0LGGOHZDUHOHYHO  8WLOLWLHV

+DUGZDUHDEVWUDFWLRQOD\HU$3,V
%RDUG6XSSRUW3DFNDJH %63 /RZOD\HU$3,V
/RZ/D\HU //// +DUGZDUH$EVWUDFWLRQ/D\HU +$/
+$/
+$/DQG//$3,V

 7KHVHWRIPLGGOHZDUHFRPSRQHQWVGHSHQGVRQWKHSURGXFW6HULHV 069

July 2017 DocID028047 Rev 7 1/51


www.st.com 1
Contents AN4734

Contents

Reference documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

STM32CubeF3 examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2/51 DocID028047 Rev 7


AN4734 Reference documents

Reference documents

The reference documents are available on www.st.com/stm32cubefw:


• Latest release of STM32CubeF3 firmware package
• Getting started with the STM32CubeF3 for STM32F3 Series (UM1766)
• Description of STM32F3 HAL and low-layer drivers (UM1786)
• STM32CubeF3 Nucleo demonstration firmware (UM1784)
• STM32Cube USB host library (UM1720)
• STM32Cube USB device library (UM1734)
• Developing Applications on STM32Cube with FatFS (UM1721)
• Developing Applications on STM32Cube with RTOS (UM1722)

DocID028047 Rev 7 3/51


50
STM32CubeF3 examples AN4734

STM32CubeF3 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 (the middleware is not used). Their
objective is to demonstrate the product/peripherals features and usage. They are
organized per peripheral (one folder for each peripheral, e.g. TIMER). Their complexity
level ranges from the basic usage of a given peripheral (e.g. PWM generation using
timer) to the integration of several peripherals (e.g. how to use DAC for signal
generation with synchronization from TIM6 and DMA). The usage of the board
resources is reduced to the strict minimum.
• Examples_LL
These examples use only the LL drivers (HAL drivers and middleware components not
used). They offer an optimum implementation of typical use cases of the peripheral
features and configuration sequences. The examples are organized per peripheral
(one folder for each peripheral, e.g. TIM) and run exclusively on Nucleo board.
• Examples_MIX
These examples use only HAL, BSP and LL drivers (middleware components not
used). They aim at demonstrating how to use both HAL and LL APIs in the same
application to combine the advantages of both APIs:
– HAL offers high-level function-oriented APIs with high portability level by hiding
product/IPs complexity for end users.
– LL provides low-level APIs at register level with better optimization.
The examples are organized per peripheral (one folder for each peripheral, e.g. TIM)
and run exclusively on Nucleo board.
• Applications
The applications demonstrate the product performance and how to use the available
middleware stacks. They are organized either by middleware (one folder per
middleware, e.g. USB Host) or by product feature that require high-level firmware
bricks (e.g. Audio). The integration of applications that use several middleware stacks
is also supported.
• Demonstrations
The demonstrations aim at integrating and running the maximum number of
peripherals and middleware stacks to showcase the product features and performance.
• Template project
The template project is provided to allow the user to quickly build a firmware application
using HAL and BSP drivers on a given board.
• Template_LL project
The template_LL project is provided to allow the user to quickly build a firmware
application using LL drivers on a given board.

4/51 DocID028047 Rev 7


AN4734 STM32CubeF3 examples

The examples are located under STM32Cube_FW_STM32CubeF3_VX.Y.Z\Projects\. They


all have the same structure:
• \Inc folder containing all header files
• \Src folder containing the sources code
• \EWARM, \MDK-ARM, and \SW4STM32 folders containing the preconfigured project
for each toolchain.
• readme.txt file describing the example behavior and the environment required to run
the example.
To run an example, proceed as follows:
1. Open the example using your preferred toolchain.
2. Rebuild all files and load the image into target memory.
3. Run the example by following the readme.txt instructions
Note: Refer to "Development toolchains and compilers" and "Supported devices and evaluation
boards" sections of the firmware package release notes to know more about the
software/hardware environment used for the firmware development and validation. The
correct operation of the provided examples is not guaranteed in other environments, for
example when using different compiler or board versions.
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,
pushbuttons, etc.). The BSP is based on a modular architecture that can be easily ported to
any hardware by implementing the low-level routines.
Table 1 contains the list of examples provided within STM32CubeF3 firmware package.
The board mnemonics used in the column headers of Table 1 are further used as such in
the firmware package. The correspondence with STMicroelectronics board references is as
follows:
• STM32F302R8-Nucleo: NUCLEO-F302R8
• STM32303E_EVAL: STM32303E-EVAL
• STM32303C_EVAL: STM32303C-EVAL
• STM32F303ZE-Nucleo: NUCLEO-F303ZE
• STM32F303K8-Nucleo: NUCLEO-F303K8
• STM32F3-Discovery: STM32F3DISCOVERY
• STM32F3348-Discovery: 32F3348DISCOVERY
• STM32F334R8-Nucleo: NUCLEO-F334R8
• STM32373C_EVAL: STM32373C-EVAL
• STM32F303RE-Nucleo: NUCLEO-F303RE

DocID028047 Rev 7 5/51


50
6/51

STM32CubeF3 examples
Table 1. STM32CubeF3 firmware examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This project provides a


reference template through the
Templates_LL - Starter project X X X X X X X X X X
LL API that can be used to
build any firmware application.

Total number of templates_LL: 10 1 1 1 1 1 1 1 1 1 1

This project provides a


reference template that can be
Templates - Starter project X X X X X X X X X X
used to build any firmware
application.

Total number of templates: 10 1 1 1 1 1 1 1 1 1 1

This example describes the


- BSP way to use the different BSP - X - - - X - X - X
drivers.
DocID028047 Rev 7

This example provides a short


description of the way to use
ADC_Analog the ADC peripheral to perform
X - - - X - - - X -
Watchdog conversions with analog
watchdog and out-of-window
interruptions enabled.

This example provides a short


description of the way to use
ADC_Conv_ ADC peripherals to perform a
- - - - - - - - - X
Differential conversion in Differential
Examples mode, between 2 ADC
channels.
ADC
This example describes how to
configure and use the ADC to
ADC_DMA_ convert an external analog
- - - - - - X - - -
Transfer input and get the result using a
DMA transfer through the HAL
API.

This example provides a short


description of the way to use
ADC_ ADC peripherals to perform a
- X - - - - - - - X
DifferentialMode conversion in Differential
mode, between 2 ADC
channels.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example provides a short


ADC_ description of the way to use
DualMode two ADC peripherals to - - - - - - - - - X
Interleaved perform conversions in
interleaved dual-mode.

This example provides a short


ADC_ description of the way to use
DualMode_18Msp two ADC peripherals to - X - - - - - - - X
s convert a regular channel in
Dual interleaved mode.

This example describes how to


ADC_Regular
use the ADC in Polling mode
Conversion_ - - - - - X - - - X
to convert data through the
ADC Polling
HAL API.

Examples This example provides a short


DocID028047 Rev 7

description of the way to use


ADC_
the ADC peripheral with X - - - X - - - X -
Sequencer
sequencer to convert several
channels.

This example describes how to


use the ADC and TIM2 to
continuously convert data from
ADC_Trigger
ADC channel. Each time an - X - - - X - - - X
Mode
external trigger is generated by
TIM2 a new conversion is
started by the ADC.

This example shows how to


CAN_ configure the CAN peripheral
CAN - - - - - X - - - X
Networking to send and receive CAN
frames in normal mode.

STM32CubeF3 examples
7/51
Table 1. STM32CubeF3 firmware examples (continued)
8/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


CEC_Data configure and use the CEC
- - - - - X - - - -
Exchange peripheral to receive and
transmit messages.

This example shows how to


configure and use the CEC
peripheral to receive and
CEC_Listen transmit messages between
- - - - - X - - - -
Mode two boards while a third one
CEC (the spy device) listens but
does not acknowledge the
received messages.

This example shows how to


configure and use the CEC
peripheral to receive and
CEC_Multi
transmit messages in the case - - - - - X - - - -
Address
DocID028047 Rev 7

where one device supports two


distinct logical addresses at
Examples
the same time.

This example shows how to


COMP_
make an analog watchdog
Analog - - - - - - - - - X
using the COMP peripherals in
Watchdog
window mode.

This example shows how to


make an hygrometer using the
capacitive humidity sensor.
The capacitance measurement
COMP COMP_
is performed by continuously - X - - - - - - - X
Hygrometer
charging/discharging the
humidity sensor and
measuring the associated time
constant.

COMP_ This example shows how to


Output use the output blanking feature - X - - - - - - - X
Blanking of COMP peripheral.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example guides the user


through the different
configuration steps by means
CRC_Bytes_ of the HAL API. The CRC
- - - X - - X - - X
Stream_7bit_CRC (Cyclic Redundancy Check)
calculation unit computes 7-bit
long CRC codes derived from
buffers of 8-bit data (bytes).

This example guides the user


through the different
configuration steps by means
CRC_Data_ of the HAL API. The CRC
Reversing_ (Cyclic Redundancy Check) - - - X - - X - - -
CRC 16bit_CRC calculation unit computes a 16-
bit long CRC code derived
from a buffer of 8-bit data
(bytes).
DocID028047 Rev 7

This example guides the user


Examples
through the different
configuration steps by means
of the HAL API. The CRC
CRC_ (Cyclic Redundancy Check)
- - - - - X X - X X
Example calculation unit computes the
CRC code of a given buffer of
32-bit data words, using a fixed
generator polynomial
(0x4C11DB7).

This example guides the user


through the different
configuration steps by means
of the HAL API. The CRC
CRC_User
(Cyclic Redundancy Check)
CRC Defined - - - - - - - - - X
calculation unit computes the
Polynomial
8-bit long CRC code of a given
buffer of 32-bit data words,

STM32CubeF3 examples
based on a user-defined
generating polynomial.
9/51
Table 1. STM32CubeF3 firmware examples (continued)
10/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example presents the


MPU feature. Its purpose is to
configure a memory area as
CORTEXM_
privileged read-only area and - - - - - X - X X X
MPU
attempt to perform read and
write operations in different
modes.

This example shows how to


CORTEX modify Thread mode privilege
CORTEXM_ access and stack. Thread
- - - - - X - X - X
ModePrivilege mode is entered on reset or
when returning from an
exception.

This example shows how to


CORTEXM_ use the default SysTick
- - X - - X - X X X
SysTick configuration with a 1 ms
DocID028047 Rev 7

timebase to toggle LEDs.

This example provides a


description of how to use the
DAC_Signals
DAC peripheral to generate X X - - - - - - - X
Generation
several signals using DMA
Examples
controller.
DAC
This example provides a short
DAC_Simple description of how to use the
X X - - - - - - - X
Conversion DAC peripheral to do a simple
conversion.

This example provides a


description of how to use a
DMA_FLASHTo DMA to transfer a word data
DMA X X - - X X X - X X
RAM buffer from Flash memory to
embedded SRAM through the
HAL API.

This example describes how to


FLASH_ configure and use the FLASH
X X X - X X X X X X
EraseProgram HAL API to erase and program
the internal Flash memory.
FLASH
This example describes how to
configure and use the FLASH
FLASH_
HAL API to enable and disable - X X - X X - X - X
WriteProtection
the write protection of the
internal Flash memory.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


GPIO_EXTI configure external interrupt X X X - X X - X X X
lines.
GPIO
This example describes how to
GPIO_
configure and use GPIOs X X X X X X X X X X
IOToggle
through the HAL API.

This example describes how to


customize the HAL time base
HAL_TimeBase_ using RTC alarm instead of
RTC_ALARM Systick as main source of time - X X - X X - X - X
base. The User push-button
will be used to Suspend or
Resume tick increment.

This example describes how to


customize the HAL time base
DocID028047 Rev 7

HAL HAL_TimeBase_ using RTC wakeup instead of


RTC_WKUP Systick as main source of time - X X - X X - X - X
base. The User push-button
will be used to Suspend or
Resume tick increment.

This example describes how to


HAL_TimeBase_ customize the HAL time base
Examples TIM using a general purpose timer - X X - X X - X - X
instead of Systick as main
source of time base.

This example describes how to


generate basic PWM
HRTIM_
waveforms with the HRTIM, - - X - - - - - - -
BasicPWM
using HRTIM Cookbook basic
examples.

This example shows how to


HRTIM_ configure the HRTIM to control
- - X - - - - - - -

STM32CubeF3 examples
BuckBoost a non-inverting buck-boost
converter timer.

HRTIM HRTIM_Buck This example is related to


- - X - - - - - - -
Boost_AN4449 AN4449 buck-boost converter.

This example shows how to


HRTIM_BuckSync configure the HRTIM to control
- - X - - - - - - -
Rect a buck converter with
synchronous rectification.

This example shows how to


11/51

HRTIM_ configure the HRTIM to have 2


- - X - - - - - - -
DualBuck buck converters controlled by
a single timer unit.
Table 1. STM32CubeF3 firmware examples (continued)
12/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure the HRTIM to control
HRTIM_LLC_ an half-bridge LLC converter
- - X - - - - - - -
HalfBridge with synchronous rectification,
using timer units A and B and
TA1/TA2/TB1/TB2 outputs.

This example shows how to


configure the HRTIM to control
a multiphase buck converter. It
HRTIM_
handles here 5 phases on - - X - - - - - - -
Multiphase
Examples HRTIM timer unit A, B C and D and
outputs TA2, TB1, TC2, TD1,
TD2.

This example describes how to


generate basic PWM
HRTIM_
waveforms with the HRTIM, - - X - - - - - - -
Snippets
DocID028047 Rev 7

using HRTIM Cookbook basic


examples.

This example shows how to


HRTIM_TM_
configure the HRTIM to control - - X - - - - - - -
PFC
a transition mode PFC.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


ensure I2C data buffer
transmission and reception
I2C_EEPROM - X - - - X - - - X
with DMA. The communication
is done with an I2C EEPROM
memory.

This example describes how to


I2C_ perform I2C data buffer
TwoBoards_ transmission/reception X X - - X - X X X X
AdvComIT between two boards, using an
interrupt.

This example describes how to


I2C_
perform I2C data buffer
TwoBoards_ X X - - X - X X X X
transmission/reception
ComDMA
between two boards, via DMA.
Examples I2C
DocID028047 Rev 7

This example describes how to


I2C_ perform I2C data buffer
TwoBoards_ transmission/reception X X - - X - X X X X
ComIT between two boards using an
interrupt.

This example describes how to


I2C_ perform I2C data buffer
TwoBoards_ transmission/reception X X - - X - X X X X
ComPolling between two boards in Polling
mode.

This example describes how to


I2C_ perform a multiple I2C data
TwoBoards_ buffer transmission/reception
- - - - X - X - - -
RestartAdv between two boards in
ComIT Interrupt mode and with a
restart condition.

STM32CubeF3 examples
13/51
Table 1. STM32CubeF3 firmware examples (continued)
14/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


perform a single I2C data
I2C_
buffer transmission/reception
TwoBoards_ - - - - X - X - - -
between two boards in
RestartComIT
Interrupt mode and with a
restart condition.
I2C
This example describes how to
perform I2C data buffer
I2C_WakeUp transmission/reception
X X - - X - X X X X
FromStop between two boards using an
interrupt when the device is in
STOP mode.

This example provides basic


I2S I2S_Audio implementation of audio - X - - - X - - - X
features.
DocID028047 Rev 7

This example describes how to


Examples
ensure IWDG reload counter
and simulate a software fault
IWDG_Reset - - - - - X - X - X
that generates an MCU IWDG
reset when a programmed
time period has elapsed.
IWDG
This example shows how to
periodically update the IWDG
IWDG_ reload counter and simulate a
- - - - - X - X - X
WindowMode reload outside the window that
generates an MCU IWDG
reset.

OPAMP_ This example shows how to


- - - - - - - - - X
CALIBRATION calibrate the OPAMP.
OPAMP
This example shows how to
OPAMP_PGA use the built-in PGA mode - - - - - - - - - X
(OPAMP programmable gain).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure the system to
PWR_Current
measure the current X X X X X X - X - X
Consumption
consumption in different low-
power modes.

This example shows how to


configure the programmable
PWR_PVD X X X - X X X X - X
voltage detector using an
external interrupt line.

This example shows how to


enter Sleep mode and wake up
PWR_SLEEP - - - - - - - - X -
PWR from this mode by using an
interrupt.

This example shows how to


enter the system in STANDBY
PWR_
DocID028047 Rev 7

mode and wake-up from this - - - - - - - X X -


STANDBY
mode using external RESET or
Examples
WKUP pin.

This example shows how to


enter Stop mode and wake up
PWR_STOP from this mode by using the - - - - - - - X X -
RTC Wakeup timer event or an
interrupt.

This example describes how to


use the RCC HAL API to
RCC_
configure the system clock X X X - X X - X X X
ClockConfig
(SYSCLK) and modify the
clock settings on run time.
RCC
This example describes how to
use the RCC HAL API to
RCC_ enable or disable the low-
X - - - X - - - - -
LSIConfig speed internal (LSI) RC

STM32CubeF3 examples
oscillator (about 40 KHz) at run
time.
15/51
Table 1. STM32CubeF3 firmware examples (continued)
16/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example guides the user


through the different
RTC_Calendar configuration steps by mean of X - - - - X X X X X
HAL API to configure the RTC
calendar.

This example guides the user


RTC
through the different
configuration steps by means
of the RTC HAL API to
RTC_Tamper - - - - - X X - X X
write/read data to/from RTC
Backup registers. It also
demonstrates the tamper
detection feature.

This example aims to show


how to use the 16-bit
SDADC_
resolution Sigma-Delta
Pressure - - - - - X - - - -
DocID028047 Rev 7

Analog-to-Digital converter to
Measurement
perform differential pressure
measurement.
Examples
This example aims to show
how to use the 16-bit
SDADC_TempMe resolution Sigma-Delta
- - - - - X - - - -
asurement Analog-to-Digital converter to
SDADC
perform accurate temperature
measurement.

This example aims to show


how to use the 16-bit
resolution Sigma-Delta
SDADC_ Analog-to-Digital converter to
- - - - - X - - - -
Voltmeter perform precise voltage
measurement when input
voltage range is between 0V
and VREF/gain.

This example shows how to


ensure SMBUS Data buffer
SMBUS_ transmission and reception
SMBUS - X - - - - - - - X
TSENSOR with IT. The communication is
done with an SMBUS
temperature sensor.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example guides the user


through the different
configuration steps by mean of
HAL API to transmit/receive
SPI data buffer in Interrupt
SPI_FullDuplex_
mode and in an advanced - - - - X - - - - -
AdvComIT
communication mode: The
master board always sends
the command to the slave
before any transmission is
performed.

This example guides the user


through the different
configuration steps by mean of
HAL API to transmit/receive
SPI_ SPI data buffer in Polling mode
FullDuplex_ and in an advanced - - - - - - - - X -
DocID028047 Rev 7

AdvComPolling communication mode: the


Examples SPI master board always sends
the command to the slave
before any transmission is
performed.

This example shows how to


SPI_
perform SPI data buffer
FullDuplex_ X X - - X - X X X -
transmission/reception
ComDMA
between two boards via DMA.

This example shows how to


ensure SPI data buffer
SPI_
transmission/reception X X - - X - X X X -
FullDuplex_ComIT
between two boards by using
an interrupt.

This example shows how to


SPI_ ensure SPI data buffer
FullDuplex_ transmission/reception in X X - - X - X X X -

STM32CubeF3 examples
ComPolling Polling mode between two
boards.
17/51
Table 1. STM32CubeF3 firmware examples (continued)
18/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


ensure SPI data buffer half-
SPI_HalfDuplex_
SPI duplex transmission/reception - - - - - - - - X -
ComPolling
in Polling mode between two
boards.

This example shows how to


configure the TIM peripheral to
TIM_Asymetric - X - - - - - X - X
generate an asymmetric
signal.

This example shows how to


configure the TIM peripheral to
TIM_Combined - X - - - - - X - X
generate 3 PWM combined
signals.

This example shows how to


Examples configure the TIM peripheral to
DocID028047 Rev 7

TIM_ generate three complementary


Complementary TIM signals, to insert a defined - X - - - X - X - X
TIM Signals dead time value, to use the
break feature and to lock the
desired parameters.

This example provides a


description of how to use DMA
with TIMER Update request to
TIM_DMA X X - - X X X X X X
transfer Data from memory to
TIMER Capture Compare
Register 3 (TIMx_CCR3).

This example shows how to


TIM_Input use the TIM peripheral to
- X - - - X X X X X
Capture measure the frequency of an
external signal.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure the TIM peripheral in
Output Compare Active mode
TIM_OCActive (when the counter matches the - - - - - - - - X -
capture/compare register, the
concerned output pin is set to
its active state).

This example shows how to


configure the TIM peripheral to
TIM_OCToggle - - - - - - - - X -
generate four different signals
with four different frequencies.

This example shows how to


use the TIM peripheral to
generate a One pulse mode
TIM_OnePulse - - - - - - - - X -
after a rising edge of an
external signal is received in
TIM
DocID028047 Rev 7

Timer Input pin.

This example shows how to


use the TIM peripheral to
Examples TIM_PWMInput measure the frequency and X X - - X X - X X X
duty cycle of an external
signal.

This example shows how to


TIM_ configure the TIM peripheral in
X X - - X X X X X X
PWMOutput PWM (Pulse Width
Modulation) mode.

This example shows how to


configure the TIM peripheral to
TIM_TimeBase generate a time base of one X X - - X X X X X X
second with the corresponding
Interrupt request.

This example describes how to


TSC_Basic

STM32CubeF3 examples
use the TSC to perform an
Acquisition_ - X - - - X - - - X
acquisition of two channels in
Interrupt
interrupt mode.
TSC
This example describes how to
TSC_Basic
use the TSC to perform
Acquisition_ - X - - - X - - - X
continuous acquisitions of one
Polling
channel in polling mode.
19/51
Table 1. STM32CubeF3 firmware examples (continued)
20/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes an


UART_ UART transmission
HyperTerminal_ (transmit/receive) in DMA - X - - - X X - - X
DMA mode between a board and an
HyperTerminal PC application.

This example shows how to re-


UART_Printf route the C library printf - - - - - - - - X -
function to the UART.

This example describes an


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

This example describes an


UART_
UART transmission
TwoBoards_ - - X - X - X X X -
(transmit/receive) in interrupt
ComIT
DocID028047 Rev 7

mode between two boards.

Examples This example describes an


UART_
UART transmission
TwoBoards_ - - X - X - X X X -
(transmit/receive) in polling
ComPolling
mode between two boards.

This example shows how to


configure an UART to wake up
UART_WakeUp
UART the MCU from Stop mode - X X - X X X X - X
FromStop
when a given stimulus is
received.

This example guides the user


through the different
configuration steps by means
of the HAL API to perform
WWDG_ periodic WWDG counter
WWDG X X - - - X X X X X
Example update and simulate a
software fault that generates
an MCU WWDG reset when a
predefined time period has
elapsed.

Total number of examples: 337 26 43 24 4 33 42 30 40 38 57

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral with
ADC analog watchdog to
monitor a channel and detect
when the corresponding
conversion data are out of
Examples_ ADC_Analog window thresholds. This
ADC - - - X - - - - - -
LL Watchdog example is based on the
STM32F3xx ADC LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


use an ADC peripheral to
perform continuous ADC
DocID028047 Rev 7

conversions of a channel, from


ADC_
a software start. This example
Continuous
is based on the STM32F3xx - - - X - - - - - -
Conversion_
ADC LL API. Peripheral
TriggerSW
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

This example describes how to


use an ADC peripheral to
perform continuous ADC
conversions of a channel, from
ADC_
Examples_ a software start. This example
ADC Continuous
LL is based on the STM32F3xx - - - X - - - - - -
Conversion_
ADC LL API. Peripheral
TriggerSW_Init
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

STM32CubeF3 examples
This example describes how to
use an ADC peripheral with
ADC low-power features. This
ADC_
example is based on the
Continuous
STM32F3xx ADC LL API.
Conversion_ - - - X - - - - - -
Peripheral initialization is done
TriggerSW_
using LL unitary services
LowPower
functions for optimization
purpose (performance and
size).
21/51
Table 1. STM32CubeF3 firmware examples (continued)
22/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral with
both ADC groups (ADC group
regular and ADC group
injected) in their intended use
ADC_Groups case. This example is based
- - - X - - - - - -
RegularInjected on the STM32F3xx ADC LL
API. Peripheral initialization is
done using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


use an ADC peripheral to
convert several channels. ADC
conversions are performed
Examples_ successively in a scan
ADC ADC_Multi
DocID028047 Rev 7

LL sequence. This example is


ChannelSingle - - - X - - - - - -
based on the STM32F3xx
Conversion
ADC LL API. Peripheral
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

This example describes how to


use several ADC peripherals in
multimode, mode interleaved.
This example is based on the
ADC_Multi
STM32F3xx ADC LL API.
mode - - - X - - - - - -
Peripheral initialization is done
DualInterleaved
using LL unitary services
functions for optimization
purpose (performance and
size).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral to
perform a single ADC
conversion of a channel, at
each software start. Example
using programming model:
polling (for programming
ADC_Single
models interrupt or DMA
Conversion_ - - - X - - - - - -
transfer, refer to other
TriggerSW
examples). This example is
based on the STM32F3xx
ADC LL API. Peripheral
initialization done using LL
unitary services functions for
optimization purpose
Examples_ (performance and size).
ADC
LL
This example describes how to
DocID028047 Rev 7

use an ADC peripheral to


perform a single ADC
conversion of a channel, at
each software start. Example
using programming model:
ADC_Single DMA transfer (for
Conversion_ programming models polling or
- - - X - - - - - -
TriggerSW_ interrupt, refer to other
DMA examples). This example is
based on the STM32F3xx
ADC LL API. Peripheral
initialization done using LL
unitary services functions for
optimization purpose
(performance and size).

STM32CubeF3 examples
23/51
Table 1. STM32CubeF3 firmware examples (continued)
24/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral to
perform a single ADC
conversion of a channel, at
each software start. Example
using programming model:
interrupt (for programming
ADC_Single
models polling or DMA
Conversion_ - - - X - - - - - -
transfer, refer to other
TriggerSW_IT
examples). This example is
based on the STM32F3xx
ADC LL API. Peripheral
initialization done using LL
unitary services functions for
optimization purpose
Examples_ (performance and size).
ADC
LL
This example describes how to
DocID028047 Rev 7

use an ADC peripheral to


perform a single ADC
conversion of a channel, at
each trigger event from timer.
Conversion data are
ADC_Single
transferred by DMA into a
Conversion_
table, indefinitely (circular - - - X - - - - - -
TriggerTimer_
mode). This example is based
DMA
on the STM32F3xx ADC LL
API. Peripheral initialization is
done using LL unitary services
functions for optimization
purpose (performance and
size).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral to
perform a single ADC
conversion of the internal
temperature sensor and to
calculate the temperature in
Celsius degrees. Example
using programming model:
ADC_
polling (for programming
ADC Temperature - - - X - - - - - -
models interrupt or DMA
Sensor
transfer, refer to other
examples). This example is
based on the STM32F3xx
ADC LL API. Peripheral
initialization is done using LL
Examples_ unitary services functions for
LL optimization purpose
(performance and size).
DocID028047 Rev 7

This example describes how to


use a comparator peripheral to
compare a voltage level
applied on a GPIO pin with the
internal voltage reference
COMP_ (VREFINT), in interrupt mode.
COMP CompareGpio This example is based on the - - - X - - - - - -
VsVrefInt_IT STM32F3xx COMP LL AP.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

STM32CubeF3 examples
25/51
Table 1. STM32CubeF3 firmware examples (continued)
26/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use a comparator peripheral to
compare a voltage level
applied to a GPIO pin versus
COMP_
the internal voltage reference
CompareGpio
(VREFINT), in interrupt mode. - - - X - - - - - -
VsVrefInt_IT_
This example is based on the
Init
STM32F3xx COMP LL API.
Peripheral initialization is done
using LL initialization function
to demonstrate LL init usage.

This example describes how to


COMP
use a comparator peripheral to
compare a voltage level
applied on a GPIO pin versus
Examples_ the internal voltage reference
LL COMP_ (VREFINT). The comparator
DocID028047 Rev 7

CompareGpio output is connected to a GPIO.


- - - X - - - - - -
VsVrefInt_ This example is based on the
OutputGpio STM32F3xx COMP LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example presents the


MPU feature. Its purpose is to
configure a memory area as
CORTEX CORTEX_MPU privileged read-only area and - - - - - - - - X -
attempt to perform read and
write operations in different
modes.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure CRC calculation unit
to get a CRC code of a given
data buffer, based on a fixed
CRC_CalculateAn generator polynomial (default
- - - X - - - - - -
dCheck value 0x4C11DB7). Peripheral
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).
CRC
This example shows how to
configure and use CRC
calculation unit to get a 8-bit
long CRC of a given data
CRC_User buffer, based on a user-defined
Defined generating polynomial. - - - X - - - - - -
Polynomial Peripheral initialization is done
DocID028047 Rev 7

using LL unitary services


functions for optimization
purpose (performance and
size).
Examples_
LL This example describes how to
use the DAC peripheral to
generate a constant voltage
signal. This example is based
DAC_GenerateCo
on the STM32F3xx DAC LL
nstantSignal_ - - - X - - - - - -
API. Peripheral initialization is
TriggerSW
done using LL unitary services
functions for optimization
purpose (performance and
size).

DAC This example describes how to


use the DAC peripheral to
generate a waveform voltage
from digital data stream

STM32CubeF3 examples
transfered by DMA. This
DAC_Generate
example is based on the
Waveform_ - - - X - - - - - -
STM32F3xx DAC LL API.
TriggerHW
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).
27/51
Table 1. STM32CubeF3 firmware examples (continued)
28/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use the DAC peripheral to
generate a waveform voltage
from digital data stream
DAC_Generate
transfered by DMA. This
DAC Waveform_ - - - X - - - - - -
example is based on the
TriggerHW_Init
STM32F3xx DAC LL API.
Peripheral initialization is done
using LL initialization function
to demonstrate LL init usage.

This example describes how to


use a DMA channel to transfer
a word data buffer from Flash
DMA_Copy memory to embedded SRAM.
FromFlashTo Peripheral initialization is done - - - X - - - - - -
Memory using LL unitary services
functions for optimization
DocID028047 Rev 7

purpose (performance and


DMA size).

This example describes how to


use a DMA channel to transfer
DMA_Copy a word data buffer from Flash
Examples_ FromFlashTo memory to embedded SRAM. - - - X - - - - - -
LL Memory_Init Peripheral initialization is done
using LL initialization function
to demonstrate LL init usage.

This example describes how to


configure the EXTI and use
GPIOs using the STM32F3xx
LL API to toggle the available
user LEDs on the board when
EXTI_Toggle
User button is pressed. - - - X - - - - - -
LedOnIT
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
EXTI size).

This example describes how to


configure the EXTI and use
GPIOs using the STM32F3xx
LL API to toggle the available
EXTI_Toggle
user LEDs on the board when - - - X - - - - - -
LedOnIT_Init
User button is pressed.
Peripheral initialization is done

AN4734
using LL initialization function
to demonstrate LL init usage.
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


configure and use GPIOs
through the LL API to toggle
the available user LEDs on the
GPIO_Infinite
board each 250 ms. Peripheral - - - X - - - - - -
LedToggling
initialization is done using LL
unitary services functions for
optimization purpose
GPIO (performance and size).

This example describes how to


Examples_
configure and use GPIOs
LL
through the LL API to toggle
GPIO_Infinite
the available user LEDs on the
LedToggling_ - - - X - - - - - -
board each 250 ms. Peripheral
Init
initialization is one using LL
initialization function to
demonstrate LL init usage.
DocID028047 Rev 7

This example shows how to


HRTIM_Buck configure the HRTIM to control
HRTIM - - X - - - - - - -
Boost a non-inverting buck-boost
converter timer.

STM32CubeF3 examples
29/51
Table 1. STM32CubeF3 firmware examples (continued)
30/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


exchange some data between
an I2C Master device using
I2C_OneBoard_ DMA mode and an I2C Slave
Adv device using IT mode.
- - - - X - - - - -
Communication_ Peripheral initialization is done
DMAAndIT using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


transmit some data bytes from
an I2C Master device using
DMA mode to an I2C Slave
Examples_ I2C_OneBoard_
I2C device using IT mode.
LL Communication_ - - - - X - - - - -
Peripheral initialization is done
DMAAndIT
using LL unitary services
DocID028047 Rev 7

functions for optimization


purpose (performance and
size).

This example describes how to


receive data byte from an I2C
Slave device using IT mode to
I2C_OneBoard_ an I2C Master device using IT
Communication_ mode. Peripheral initialization - - - - X - - - - -
IT is done using LL unitary
services functions for
optimization purpose
(performance and size).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


receive data byte from an I2C
Slave device using IT mode to
I2C_OneBoard_
an I2C Master device using IT
Communication_ - - - - X - - - - -
mode. Peripheral initialization
IT_Init
is done using LL initialization
function to demonstrate LL init
usage.

This example describes how to


transmit data bytes from an I2C
Master device using Polling
I2C_OneBoard_ mode to an I2C Slave device
Communication_ using IT mode. Peripheral - - - - X - - - - -
PollingAndIT initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).
DocID028047 Rev 7

This example describes how to


receive data byte from an I2C
Slave device using IT mode to
I2C_TwoBoards_ an I2C Master device using IT
MasterRx_ mode. Peripheral initialization - - - X - - - - - -
Examples_ SlaveTx_IT is done using LL unitary
I2C
LL services functions for
optimization purpose
(performance and size).

This example describes how to


transmit some data bytes from
an I2C Master device using
Polling mode to an I2C Slave
I2C_TwoBoards_
device using IT mode.
MasterTx_ - - - X - - - - - -
Peripheral initialization is done
SlaveRx
using LL unitary services
functions for optimization
purpose (performance and

STM32CubeF3 examples
size).

This example describes how to


transmit some data bytes from
an I2C Master device using
DMA mode to an I2C Slave
I2C_TwoBoards_
device using DMA mode.
MasterTx_ - - - X - - - - - -
Peripheral initialization is done
SlaveRx_DMA
using LL unitary services
functions for optimization
purpose (performance and
size).
31/51
Table 1. STM32CubeF3 firmware examples (continued)
32/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


receive data byte from an I2C
Slave device in Stop mode
using IT mode to an I2C
I2C_TwoBoards_
Master device using IT mode.
I2C WakeUpFromStop - - - X - - - - - -
Peripheral initialization is done
_IT
using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


configure the IWDG and
ensure counter updates at
regular period and generating
IWDG_Refresh an MCU IWDG reset at User
IWDG - - - X - - - - - -
UntilUserEvent Button pressed. Peripheral
initialization is done using LL
DocID028047 Rev 7

unitary services functions for


optimization purpose
(performance and size).

This example describes how to


use an operational amplifier
peripheral in PGA mode
Examples_ (programmable gain amplifier).
LL To test OPAMP in this
example, a voltage waveform
is generated by the DAC
peripheral and can be
OPAMP_PGA - - - X - - - - - -
connected to OPAMP input.
This example is based on the
STM32F3xx OPAMP LL AP.
Peripheral initialization is done
using LL unitary services
functions for optimization
OPAMP purpose (performance and
size).

This example describes how to


use an operational amplifier
peripheral in PGA mode
(programmable gain amplifier).
To test OPAMP, a voltage
waveform is generated by the
OPAMP_PGA_
DAC peripheral and can be - - - X - - - - - -
Init
connected to OPAMP input.
This example is based on the

AN4734
STM32F3xx OPAMP LL API.
Peripheral initialization is done
using LL initialization function
to demonstrate LL init usage.
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


enter the system in STANDBY
PWR_Enter
mode and wake-up from this - - - X - - - - - -
StandbyMode
mode using external RESET or
PWR wake-up interrupt.

This example shows how to


PWR_Enter
enter the system in - - - X - - - - - -
StopMode
STOP_LPREGU mode.

Examples_ RCC_Output This example describes how to


LL SystemClockOn configure MCO pin (PA8) to - - - X - - - - - -
MCO output the system clock.

This example describes how to


RCC_UseHSE use the RCC LL API, how to
RCC - - - X - - - - - -
asSystemClock start the HSE and use it as
system clock.
DocID028047 Rev 7

RCC_UseHSI_PL This example shows how to


LasSystem modify the PLL parameters in - - - X - - - - - -
Clock run time.

STM32CubeF3 examples
33/51
Table 1. STM32CubeF3 firmware examples (continued)
34/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example guides the user


through the different
configuration steps by mean of
LL API to ensure Alarm
configuration and generation
RTC_Alarm using the RTC peripheral. - - - X - - - - - -
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example guides the user


through the different
configuration steps by mean of
LL API to ensure Alarm
RTC_Alarm_Init configuration and generation - - - X - - - - - -
using the RTC peripheral.
DocID028047 Rev 7

Peripheral initialization is done


using LL initialization function
to demonstrate LL init usage.

This example guides the user


through the different
configuration steps by mean of
Examples_ HAL API to configure the RTC
RTC
LL RTC_Calendar calendar. Peripheral - - - X - - - - - -
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

This example shows how to


configure the RTC in order to
wake up from Standby mode
RTC_Exit using RTC Wakeup Timer.
StandbyWith Peripheral initialization is done - - - X - - - - - -
WakeUpTimer using LL unitary services
functions for optimization
purpose (performance and
size).

This example guides the user


through the different
configuration steps by mean of
LL API to ensure Tamper
configuration using the RTC
RTC_Tamper - - - X - - - - - -
peripheral. Peripheral

AN4734
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example guides the user


through the different
configuration steps by mean of
LL API to ensure Time Stamp
RTC_Time configuration using the RTC
RTC Stamp peripheral. Peripheral
- - - X - - - - - -
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

This example shows how to


ensure SPI data buffer
transmission and reception in
DMA mode. The example is
SPI_TwoBoards_
Examples_ based on the STM32F3xx SPI
FullDuplex_ - - - X - - - - - -
LL LL API. Peripheral initialization
DMA
is done using LL unitary
DocID028047 Rev 7

services functions for


optimization purpose
(performance and size).
SPI
This example shows how to
ensure SPI data buffer
transmission and reception in
Interrupt mode. The example
SPI_TwoBoards_ is based on the STM32F3xx
- - - X - - - - - -
FullDuplex_IT SPI LL API. Peripheral
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

STM32CubeF3 examples
35/51
Table 1. STM32CubeF3 firmware examples (continued)
36/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure the TIMER to
perform the following:
– generate three center-
aligned PWM and
complementary PWM
signals
– insert a defined dead time
TIM_BreakAnd value
- - - X - - - - - -
Deadtime – use the break feature
– lock the desired parameters
This example is based on the
STM32F3xx TIM LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).
DocID028047 Rev 7

This example provides a


description of the way to use
DMA with TIMER update
Examples_ request to transfer data from
TIM
LL memory to TIMER Capture
Compare Register 3
TIM_DMA (TIMx_CCR3). Example using - - - X - - - - - -
the STM32F3xx TIM LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example shows how to


use the TIM peripheral to
measure the frequency of a
periodic signal provided either
by an external signal generator
or by another timer instance.
TIM_Input
Example using the - - - X - - - - - -
Capture
STM32F3xx TIM LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure a timer to generate a
positive pulse in Output
Compare mode with a length
of tPULSE and after a delay of
tDELAY. This example is based
TIM_OnePulse - - - X - - - - - -
on the STM32F3xx TIM LL
API. Peripheral initialization is
done using LL unitary services
functions for optimization
purpose (performance and
size).

This example shows how to


configure the TIM peripheral to
generate an output waveform
in different output compare
modes. Example using the
TIM_Output
DocID028047 Rev 7

STM32F3xx TIM LL API. - - - X - - - - - -


Compare
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


use a timer peripheral to
generate a PWM output signal
Examples_
TIM and update PWM duty cycle.
LL
Example using the
TIM_PWM
STM32F3xx TIM LL API. - - - X - - - - - -
Output
Peripheral initialization done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to

STM32CubeF3 examples
use a timer peripheral to
generate a PWM output signal
and update PWM duty cycle.
TIM_PWM
Example using the - - - X - - - - - -
Output_Init
STM32F3xx TIM LL API.
Peripheral initialization is done
using LL initialization function
to demonstrate LL init usage.

This example shows how to


configure the TIM peripheral to
generate a time base.
37/51

Example using the


STM32F3xx TIM LL API.
TIM_TimeBase - - - X - - - - - -
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).
Table 1. STM32CubeF3 firmware examples (continued)
38/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure GPIO and USART
peripherals for receiving
characters from HyperTerminal
USART_
(PC) in Asynchronous mode
Communication_ - - - X - - - - - -
using IT. Peripheral
Rx_IT
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

This example shows how to


configure GPIO and USART
peripherals for continuously
receiving characters from
USART_
Examples_ HyperTerminal (PC) in
USART Communication_
LL Asynchronous mode using IT. - - - X - - - - - -
Rx_IT_
Peripheral initialization is done
Continuous
DocID028047 Rev 7

using LL unitary services


functions for optimization
purpose (performance and
size).

This example shows how to


configure GPIO and USART
peripherals for receiving
USART_ characters from HyperTerminal
Communication_ (PC) in Asynchronous mode - - - X - - - - - -
Rx_IT_Init using IT. Peripheral
initialization is done using LL
initialization function to
demonstrate LL init usage.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure GPIO and USART
peripherals to send characters
asynchronously to an
HyperTerminal (PC) in Polling
mode. If the transfer cannot be
completed within the allocated
USART_ time, a timeout allows to exit
Communication_ from the sequence with a - - - X - - - - - -
Tx Timeout error code. This
example is based on
STM32F3xx USART LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).
DocID028047 Rev 7

This example shows how to


configure GPIO and USART
peripherals to send characters
Examples_
USART asynchronously to/from an
LL
HyperTerminal (PC) in DMA
USART_
mode. This example is based
Communication_ - - - X - - - - - -
on STM32F3xx USART LL
TxRx_DMA
API. Peripheral initialization is
done using LL unitary services
functions for optimization
purpose (performance and
size).

This example shows how to


configure GPIO and USART
peripherals to send characters
asynchronously to
HyperTerminal (PC) in
USART_
Interrupt mode. This example
Communication_ - - - X - - - - - -
is based on STM32F3xx

STM32CubeF3 examples
Tx_IT
USART LL API. Peripheral
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).
39/51
Table 1. STM32CubeF3 firmware examples (continued)
40/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure GPIO and USART
peripherals to receive
characters asynchronously
from HyperTerminal (PC) in
Interrupt mode with Hardware
USART_
Flow Control feature enabled.
HardwareFlow - - - X - - - - - -
This example is based on
Control
STM32F3xx USART LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example shows how to


configure GPIO, USART, DMA
and SPI peripherals for
DocID028047 Rev 7

transmitting bytes from/to an


USART peripheral to/from an
USART_Sync
SPI peripheral (in slave mode)
Communication_
by using DMA mode through - - - X - - - - - -
Examples_ FullDuplex_
USART the STM32F3xx USART LL
LL DMA
API. Peripheral initialization is
done using LL unitary services
functions for optimization
purpose (performance and
size).

This example shows how to


configure GPIO, USART, DMA
and SPI peripherals for
transmitting bytes from/to an
USART peripheral to/from an
SPI peripheral (in slave mode)
by using IT mode through the
USART_Sync
STM32F3xx USART LL API
Communication_ - - - X - - - - - -
(SPI is using DMA for
FullDuplex_IT
receving/transmitting
characters sent from/received
by USART). Peripheral
initialization is done using LL
unitary services functions for
optimization purpose
(performance and size).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure GPIO and USART
peripherals for allowing
characters received on USART
RX pin, to wake up MCU from
USART_Wake low-power mode, using
USART - - - X - - - - - -
UpFromStop STM32F3xx USART LL API.
Peripheral initialization is done
using LL unitary services
functions for optimization
purpose (performance and
size).

This example describes how to


use UTILS LL API to configure
the system clock using PLL
UTILS_
with HSI as source clock. The
Configure - - - X - - - - - -
Examples_ user application just needs to
SystemClock
DocID028047 Rev 7

LL calculate PLL parameters


UTILS using STM32CubeMX and call
the UTILS LL API.

This example describes how to


UTILS_Read Read UID, Device ID and
- - - X - - - - - -
DeviceInfo Revision ID and save them into
a global information buffer.

This example describes how to


configure WWDG and update
counter at regular period and
generating an MCU WWDG
WWDG_
reset at User Button pressed.
WWDG RefreshUntil - - - X - - - - - -
Peripheral initialization is done
UserEvent
using LL unitary services
functions for optimization
purpose (performance and
size).

STM32CubeF3 examples
Total number of examples_LL: 74 0 0 1 67 5 0 0 0 1 0
41/51
Table 1. STM32CubeF3 firmware examples (continued)
42/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


use an ADC peripheral to
perform a single ADC
conversion of a channel, at
each software start; Example
using programming model:
ADC_SingleConv
interrupt (for programming
ADC ersion_TriggerSW - - - X - - - - - -
models polling or DMA
_IT
transfer, refer to other
examples). This example is
based on the STM32F3xx
ADC HAL & LL API (LL API
used for performance
improvement).

This example provides a


description of the way to use
CRC peripheral through the
DocID028047 Rev 7

STM32F3xx CRC HAL & LL


API (LL API used for
performance improvement).
The CRC (Cyclic Redundancy
Examples_ Check) calculation unit
MIX computes a 8-bit long CRC
code of a given buffer of 32-bit
CRC_
data words, based on a user-
CRC Polynomial - - - X - - - - - -
defined generating polynomial.
Update
In this example, the polynomial
is first set manually to 0x9B
that is X^8 + X^7 + X^4 + X^3
+ X + 1. Then, in a second
step, generating polynomial
value and length are updated
(set to 0x1021 that is X^16 +
X^12 + X^5 + 1), for new CRC
calculation. These updates are
performed using CRC LL API.

This example provides a


description of how to use a
DMA to transfer a word data
DMA_FLASHToR buffer from Flash memory to
DMA - - - X - - - - - -
AM embedded SRAM through the
STM32F3xx DMA HAL & LL
API (LL API used for
performance improvement).

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example describes how to


perform I2C data buffer
transmission/reception
between a master and 2 slaves
I2C_OneBoard_C
with different address size (7-
I2C omSlave7_ - - - - X - - - - -
bit or 10-bit) through the
10bits_IT
STM32F3xx HAL & LL API (LL
API used for performance
improvement), using an
interrupt.

This example describes how to


use an operational amplifier
peripheral with OPAMP
OPAMP_ calibration and operation. This
OPAMP - - - X - - - - - -
CALIBRATION example is based on the
STM32F3xx OPAMP HAL & LL
API (LL API used for
DocID028047 Rev 7

Examples_ performance improvement).


MIX
This example shows how to
enter the system in STANDBY
mode and wake-up from this
PWR_STANDBY_ mode using external RESET or
- - - X - - - - - -
RTC RTC Wake-up Timer through
the STM32F3xx RTC & RCC
HAL & LL API (LL API used for
performance improvement).
PWR
This example shows how to
enter the system in STOP with
Low power regulator mode and
wake-up from this mode using
PWR_STOP external RESET or wake-up - - - X - - - - - -
interrupt (all the RCC functions
calls use RCC LL API for
footprint and performance
improvements).

STM32CubeF3 examples
43/51
Table 1. STM32CubeF3 firmware examples (continued)
44/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This example shows how to


configure the TIM1 peripheral
to generate 6 Steps PWM
signal. The STM32F3xx TIM1
peripheral offers the possibility
to program in advance the
configuration for the next TIM1
outputs behaviour (step) and
TIM TIM_6Steps - - - X - - - - - -
change the configuration of all
the channels at the same time.
This operation is possible
when the COM (commutation)
event is used. Example using
the STM32F3xx TIM HAL & LL
API (LL API used for
performance improvement).

This example describes how to


DocID028047 Rev 7

use an UART to transmit data


(transmit/receive) between a
Examples_
board and an HyperTerminal
MIX
PC application in Interrupt
UART_Hyper
mode. This example provides - - - X - - - - - -
Terminal_IT
a description of the way to use
USART peripheral through the
STM32F3xx UART HAL and
LL API (LL API usage for
performance improvement).
UART
This example describes how to
use an UART to transmit data
(transmit/receive) between a
board and an HyperTerminal
PC application both in Polling
UART_Hyper
and Interrupt modes. This
Terminal_ - - - X - - - - - -
example provides a description
TxPolling_RxIT
of the way to use USART
peripheral through the
STM32F3xx UART HAL & LL
API (LL API used for
performance improvement).

Total number of examples_mix: 10 0 0 0 9 1 0 0 0 0 0

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This application shows how to


EEPROM_
EEPROM emulate EEPROM on internal - X - - - X - - - -
Emulation
Flash.

This application provides a


description on the way to use
STM32Cube firmware with
FatFs middleware component
as a generic FAT file system
FatFS FatFs_uSD X X - - - X - - X X
module. The objective is to
develop an application using
most of the features offered by
FatFs to configure a microSD
drive.

This application shows how to


FreeRTOS_LowP
enter and exit low-power mode - - - - - X - - - X
ower
with CMSIS RTOS API.
DocID028047 Rev 7

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

This application shows how to


FreeRTOS_
use mutexes with CMSIS - X - - - X - - - X
Mutexes
RTOS API.
FreeRTOS
This application shows how to
FreeRTOS_
use message queues with X X - - - X - - - X
Queues
CMSIS RTOS API.

This application shows how to


FreeRTOS_
use semaphores with CMSIS X X - - - X - - - X
Semaphore
RTOS API.

FreeRTOS_ This application shows how to


Semaphore use semaphore from ISR with X X - - - X - - - X
FromISR CMSIS RTOS API.

STM32CubeF3 examples
45/51
Table 1. STM32CubeF3 firmware examples (continued)
46/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This application shows how to


FreeRTOS_
perform thread signaling using - X - - - X - - - -
Signal
CMSIS RTOS API.

This application shows how to


FreeRTOS_ perform thread signaling from
- X - - - X - - - -
SignalFromISR an interrupt using CMSIS
FreeRTOS RTOS API.

This application shows how to


FreeRTOS_
implement thread creation X X X X X X X X - X
ThreadCreation
using CMSIS RTOS API.

This application shows how to


FreeRTOS_
use timers of CMSIS RTOS X X - - - X - - - X
Timers
API.

This directory contains a set of


source files that build the
DocID028047 Rev 7

Applications
IAP_Binary_ application to be loaded into
- X - - - X - - - -
Template Flash memory using In-
Application Programming (IAP)
through USART.

IAP This directory contains a set of


source files and pre-configured
projects that describe how to
build an application to be
IAP_Main - X - - - X - - - -
loaded into Flash memory
using In-Application
Programming (IAP) through
USART.

This application shows how to


STemWin_ implement a simple "Hello
STemWin - X - - - X - - - X
HelloWorld World" example based on
STemWin.

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This firmware is a basic


example on the way to use the
TouchSensing_
STMTouch driver with 2 - X - - - - - - - X
2touchkeys
touchkey sensors. The ECS
and DTO are also used.

This firmware is a basic


example on the way to use the
TouchSensing_
STMTouch driver with 2 - X - - - - - - - X
2touchkeys_IT
touchkey sensors. The ECS
Touch and DTO are also used.
Applications
Sensing
This firmware is a basic
example on the way to use the
TouchSensing_
STMTouch driver with 1 linear - - - - - X - - - -
Linear
sensor. The ECS and DTO are
also used.
DocID028047 Rev 7

This firmware is a basic


example on the way to use the
TouchSensing_
STMTouch driver with 1 linear - - - - - X - - - -
Linear_IT
sensor. The ECS and DTO are
also used.

STM32CubeF3 examples
47/51
Table 1. STM32CubeF3 firmware examples (continued)
48/51

STM32CubeF3 examples
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This application shows how to


use the USB device
application based on the
CDC_
Device Communication Class - - - - - X - - - X
Standalone
(CDC) following the PSTN
subprotocol using the USB
Device and UART peripherals.

This application shows how to


CustomHID_ use the USB device
- - - - - X - - - X
Standalone application based on the
Human Interface (HID).

This application presents a


USB_ compliant implementation of
Applications
Device the Device Firmware Upgrade
DFU_
(DFU) capability for X X - - X X - X - X
Standalone
programming the embedded
DocID028047 Rev 7

Flash memory through the


USB peripheral.

This application shows how to


HID_ use the USB device
X X - - X X - X X X
Standalone application based on the
Human Interface (HID).

This application shows how to


MSC_ use the USB device
- X - - - X - - X X
Standalone application based on the Mass
Storage Class (MSC).

Total number of applications: 77 8 19 1 1 3 22 1 3 3 16

AN4734
Table 1. STM32CubeF3 firmware examples (continued)

AN4734
STM32F STM32 STM32 STM32F STM32F STM32 STM32F STM32F STM32
Module STM32F3-
Level Project Name Description 303RE- 303E_ F3348- 334R8- 302R8- 373C_ 303K8- 303ZE- 303C_
name Discovery
Nucleo EVAL Discovery Nucleo Nucleo EVAL Nucleo Nucleo EVAL

This demonstration firmware is


based on STM32Cube. It helps
Adafruit_LCD_1_8
to discover STM32 Cortex-M X - - X X - - - X -
_SD_Joystick
devices that can be plugged on
a STM32 Nucleo board.

This demonstration firmware is


Demonstra- based on STM32Cube. It helps
-
tions Demo to discover STM32 Cortex-M - - X - - - - X - -
devices that can be plugged on
a STM32 Discovery board.

This demonstration shows how


Gravitech_ to use the Gravitech 7
- - - - - - X - - -
4Digits_Counter segment 4 digits shield with a
Nucleo 32 Board.

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


DocID028047 Rev 7

Total number of projects: 525 37 64 29 84 45 66 34 46 45 75

STM32CubeF3 examples
49/51
Revision history AN4734

Revision history

Table 2. Document revision history


Date Revision Changes

07-Jul-2015 1 Initial release.


Updated list of reference documents.
15-Sep-2015 2
Added NUCLEO-F303K8 board.
Added NUCLEO-F303ZE and updated Table 1:
09-Nov-2015 3
STM32CubeF3 firmware examples.
Updated list of reference documents.
Added new CRC and I2C examples, as well as touch
17-May-2016 4
sensing applications in Table 1: STM32CubeF3
firmware examples.
Updated list of reference documents.
01-Jul-2016 5 Updated HAL examples.
Added low-layer driver (LL) and mixed (MIX) examples.
Updated the Template project item and added the
Template_LL project item in Chapter: STM32CubeF3
12-Jan-2017 6 examples.
Updated Table 1 for Templates_LL and HAL examples.
Updated Figure 1: STM32CubeF3 firmware
components. Removed TrueSTUDIO® from the list of
04-Jul-2017 7
supported toolchains and updated project descriptions
in Table 1: STM32CubeF3 firmware examples.

50/51 DocID028047 Rev 7


AN4734

IMPORTANT NOTICE – PLEASE READ CAREFULLY

STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products 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 of Purchasers’ 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. All other product or service names are the property of their respective owners.

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

© 2017 STMicroelectronics – All rights reserved

DocID028047 Rev 7 51/51


51

You might also like