Skip to content

MCU Info Page: STM32F411xE

JohnK1987 edited this page Mar 7, 2023 · 8 revisions

MCU STM32F411xE feature overview

CPU Flash/Code Memory RAM Communication Peripherals Other Features
Cortex-M4F, clocked at up to 100 MHz Total: up to 512 Kbytes
Total: 128 Kbytes
  • 3x I2C
  • 3x USART/UART
  • 3x USART
  • 5x SPI
  • 1x USB OTG FS
  • 12bit ADC (AnalogIn)
  • PWM
  • RTC
  • Hardware CRC Engine
  • DMA (currently not supported)
  • Up to 11 Timers
  • GPIO with external interrupt capability

Datasheets

  • Electrical Datasheet: DS11912
  • Programmer's Reference Manual: RM0934

Boards based on this MCU:

Blackpill-F411CE overview (V3.1)

blackpill-pinout

NOTE: Only the labels printed in blue/white or green/white (i.e. PC_13, PB_9, A0, D14 ...) must be used in your code. The other labels are given as information (alternate-functions, power pins, ...). You can also use these additional pin names: Please notice that in order to fit the small size board, the leading 'P' and the '_' characters are omitted from labels indicated on the board (e.g. Instead of 'PA_1' you can find the label 'A1' on the board).Arduino (green/white) and the additional naming labels are not indicated on the board. Also notice that the on-board LED is connected to pin PC_13 and, via a resistor, to +3.3V. So to turn the LED on or off you have to set the DigitalOut to 0 or 1 respectively (active on 0).

Board features

  • Small foot-print
  • Flexible board power supply: USB VBUS or external source (3.3V, 5V)
  • on-board HSE 25 MHz crystal as system clock source and LSE crystal for low power features
  • Programming/Debug port - SWD
  • USB-C connector connected to on-chip USB OTG FS
  • User LED: LED1
  • Three push buttons: RESET, BOOT0, KEY: BUTTON1 (user button)

Getting started with Blackpill-F411CE under MbedCE

  • Choose and setup environment and new project according to MbedCE guides.
  • Because Blackpill is board without an on-board debugger then you also need to choose an external debug probe, for example ST-link - STM32-Deploy&Debug
  • Choose an upload method according to MbedCE Upload methods in the context of choosed Deploy/Debug method.
  • Let's get that on

Additional information

  • Default STDIO console used for MbedOS crash reports or printf debugging uses macros CONSOLE_TX aka pin mask PA_2 and CONSOLE_RX aka pin mask PA_3.
  • SWO is accessible on the pin PB_3.
  • Blackpill-F411CE schematic
  • Warning! Exist few versions of this board, V3.1 was used during port
  • Warning! LED1 is connected from GPIO to VDD so it is inverted and 1 = OFF and 0 = ON
  • Warning! BUTTON1 (KEY) is connected from GPIO to GND, so it have to be set to mode PullUp. For example - InterruptIn key(BUTTON1,PullUp);
  • Warning! PC_14 and PC_15 are connected to the on-board LSE

Core Clock

Option Name Description
USE_PLL_HSE_EXTC This option is not enabled by default because pin PH_0 is not accessible on any pin on this board.
USE_PLL_HSE_XTAL 25MHz HSE crystal on OSC_IN and OSC_OUT.
USE_PLL_HSI This option uses the internal 16MHz (+-2%) HSI oscillator to generate clock. This is accurate enough for a lot of applications and does not require any external components at all.
  • All of options above result in 96MHz with enabled USB (default settings) and 100MHz with disabled USB in your mbed_app.json file.
  • Default configuration of Clock source is USE_PLL_HSI | USE_PLL_HSE_XTAL, that means when HSE failed during startup for some reason then HSI will be used automatically..
  • Clock source can be configured to option you want to use, you will need to configure the "target.clock_source" option in your mbed_app.json file.

For example, to select just the HSI oscillator and remove USB, you could use:

{
    "target_overrides": {
        "STM32L452xE": {
            "target.clock_source": "USE_PLL_HSI",
            "device_has_remove": "USBDEVICE"
        }
    }
}

Known issues

  • During Greentea test there were an issue with mbed-usb-device-basic test

Special thanks to Zoltan Hudak for sharing his materials.