The STM32F401/F411 Black Pill Development Board is an updated version of the popular F103 based Blue Pill. This newer version features a more powerful Core-M4F based ARM CPU. Both F401 and F411 processors supports DFU bootloader.
This tutorial covers the DFU bootloader. For other programming options, refer to this tutorial: Program STM32 Blue Pill (STM32F103C8T6) with Arduino IDE
The first thing you need to do is to download and install the Arduino IDE to your computer. You can get the latest version from the official Arduino website: https://www.arduino.cc/en/Main/Software
Follow the link below to install the Arduino IDE:
In your Arduino IDE, go to File > Preferences
Add the URL below to Additional Board Manager URLs text box:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
If the text box is not empty, you can separate the URLs with a comma.
Go to Tools > Board > Boards Manager
Search for STM32, select latest version and click Install.
There are a few megabytes of data to download and install, so be patient.
Once the installation is completed, quit and restart the Arduino IDE.
Download and install STM32CubeProg from ST.com: https://www.st.com/en/development-tools/stm32cubeprog.html
Start the STM32CubeProg. It will look like this:
Close the STM32CubeProg.
From the Tools > Board > STM32 Board, select Generic STM32F4 series
Select Tools > Board Part Number > BlackPill F411CE
NOTE: This tutorial is based on STM32F411CE. For STM32F401CE, select BlackPill F401CC
Under
USB Support, select CDC (generic "Serial" supersede U(S)ART)
Under
Upload method, select SMT32CubeProgrammer(DFU)
These are your Tool configurations:
Connect STM32 Black Pill to your computer USB port.
Use the onboard BOOT0 and NRST button to put the board into bootloader mode:
Create new sketch and copy / paste the code below:
/* Blink onboard LED at 0.1 second interval */ void setup() { // initialize digital pin PB2 as an output. pinMode(PC13, OUTPUT); // LED connect to pin PC13 } void loop() { digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for 100mS digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW delay(100); // wait for 100mS }
Click on the upload button to compile and upload the code to STM32 Black Pill.
You should see the blue LED blink at 0.1 second interval.
For other programming options, refer to this tutorial: Program STM32 Blue Pill (STM32F103C8T6) with Arduino IDE