Skip to main content
Social mediaSocial mediaSocial media   Social media   Social mediaSocial media   Social media

STM32

 STM 32 Development Board and applications

STM32 is a 32-bit microcontroller and microprocessor integrated circuit, manufactured by

STMicroelectronics. It is commonly used for evaluation, learning, prototyping, and product

development. It has multiple key features and typical applications. STM32 boards are based on the STM32 family of 32-bit ARM microcontrollers from STMicroelectronics.

STM32

STM32 Family

STMicroelectronics has introduced microcontrollers Cortex-M0, Cortex-M0+, Cortex-
M3, etc. and microcompressors MP1, MP2 series. Each STM32 microcontroller is
designed for specific performance, power efficiency, and feature requirements.
So we can make them suitable for a wide range of embedded application
STM32 boards come in  many variants because STMicroelectronics and third party  makers support a wide rangeof MCU families.
Official figures include:

ST Nucleo boards:

Over 70 variations across Nucleo-32, Nucleo-64, and Nucleo-144 formats. Nucleoboards are
affordable prototyping boards designed to help you get started with STM32 microcontrollers.

They support many STM32 variants and are great for general embedded projects where you
design your own circuits or add external modules.

STM32

Key Features: 

Integrated ST-LINK debugger/programmer: No external hardware required.
Arduino compatibility: Most have Arduino headers (Nano or Uno), so you can use shields.
ST Morpho headers: Expose full I/O for complex connections.
Support for popular IDEs: STM32CubeIDE, Keil, IAR, Mbed, GCC.
Multiple sizes: Nucleo-32, Nucleo-64, Nucleo-144 (refers to the number of MCU pins).
Ideal For:Learning STM32 basics, prototyping custom hardware, projects needingflexible I/O.

Discovery boards:

Many different Discovery kits exist (with sensors, displays, etc.). While there’s no exact
Discovery boards have onboard peripherals like sensors, displays, audio interfaces, and more.
They’re excellent for exploring what specific STM32 chips can do with real peripheral
examples. count published, dozens have been released over time, covering different MCU
series.

stm32

Key Features:

It has an Integrated ST-LINK debugger/programmer built-in function. Having onboard
sensors (e.g., gyros, accelerometers), LCDs, touch , or wireless modules, depending on
model. It's very useful for small projects for hobbyists.
STM32F429 Discovery:
(Cortex-M4F, color TFT display) 
The discovery board is very useful for interactive demos, signal processing, and graphicsapplications. STM32L4 Discovery IoT kits – low-power + wireless.
Ideal For: Learning peripherals, demos, interactive UI, sensor fusion, wireless IoT.

STM32 Eval Boards -

Full Feature Reference Platforms:
Eval (evaluation) boards are designed as reference designs. They expose almostall MCU pins and include external transceivers, sensors, memory interfaces, and more.

They offer the closest experience to real product hardware.

STM32

Key Features:

Complete hardware setups showcasing full STM32 capabilities. Suitable for complex
applications needing advanced connectivity or performance. Often more expensive and less
“plug-and play” than Discovery or Nucleo boards.
Ideal For:Product prototyping, performance evaluation, and advanced embedded design.

Community & Third-Party Boards:

Hundreds of low-cost “core boards” exist on global marketplaces (e.g., Alibaba/Amazon)
with different MCUs and feature sets. While not official ST boards, there are many popular

STM32-based boards from the community:

Blue Pill Low-cost board (e.g., STM32F103) with Arduino–style headers - great for
breadboarding. 

STM32

Black Pill – Similar but typically with faster MCUs (e.g., STM32F401).

Note: Always verify authenticity- some cheap boards use cloned chips.

Comparison of STM32 Boards

Board Type

     Best Use For

Key Strength

Nucleo

Prototyping & learning

Flexible I/O, Arduino shield support

Discovery

Peripheral demos

On-board sensors/displays

Eval

Full evaluation

Complete hardware reference

Community boards
Affordable experiments
Basic functionality at low cost

Most Popular STM32 Boards (Based on Projects & Sales):

Popularity depends on the project type (learning vs advanced prototyping),but some clear favorites emerge based on sales data and community trends:

Top Popular / Best-Selling Models:

These boards show up most often on marketplaces and hobbyist purchases:

STM32F103C8T6 core board (“Blue Pill”)

Extremely cheap and widely available - great for basic MCU tasks and learning.

STM32F407VET6 / F407 Discovery

Powerful Cortex-M4 board with lots of peripherals - popular in embedded projects.

NUCLEO-F103RB (ST Nucleo)

Easy prototyping + Arduino shields + built-in ST-LINK debugger.

NUCLEO-F446RE / similar Nucleo boards:

Balanced performance and ecosystem support - widely used in learning and projects.
The STM32F103C8T6 board appears consistently as best-selling/hot-selling on marketplaces (For hobbyist and industrial applications).

Most Famous or Widely Used According to Project Type:

Learning & Beginner Projects:

STM32 Nucleo boards (e.g., NUCLEO-F103RB, NUCLEO-F401RE)

are very easy to start for many projects, have a built-in ST-LINK debugger, having a lot of

examples.

STM32F103C8T6 minimum board (Blue Pill):

It is very cheap and the same as an Arduino because it looks like an Arduino board.
Recommended for: basic embedded learning, GPIO/I2C/SPI timers, PWM, small
robotics, LED/sensor interfacing.

Intermediate / Advanced Projects:

Discovery boards (e.g., F407, F429, H7 series)

Onboard features like displays, sensors, USB, etc.
High-performance Nucleo (e.g., NUCLEO-H743ZI2)Great for DSP, RTOS, heavy interfaces.
Recommended for: RTOS systems, advanced peripheral control, graphics, audio processing,
and complex communication protocols.

Most Beginner-Friendly (Easy to Start):

Official ST Nucleo boards – built-in ST-LINK debugger means the easiest setup.

Boards with Arduino-style headers also make breadboarding easy.

Typically, prices start at ~$10–$20 for official boards.

I

Tips for Choosing:
Just learning MCU basics? → Start with a NUCLEO board with ST-LINK built in.
Want the lowest price per unit? → Go for cheap STM32F103/STM32F401 core boards.
Advanced/peripheral-heavy project? Discovery kits or high-performance Nucleo boards.

STM32 Programming Methods:

To program STM32 development boards, you need:
  1. Firmware libraries (what runs on the MCU)

  2. Development software / IDE (where you write code)

  3. Programmer/debugger tools

  4. Programming languages

Below is a clear breakdown regarding software and integrated development environments.

1. Firmware & Software Frameworks (Libraries)

These are provided mainly by STMicroelectronics.

 STM32 Cube Ecosystem (Most Used Today)

STM32 CubeMX:

Graphical configuration tool
Configure GPIO, I2C, SPI, ADC, USB, CAN, etc.
Generates initialization code
Saves huge setup time

STM32 HAL (Hardware Abstraction Layer):

High-level driver library
Easier for beginners
Slightly slower than low-level drivers

LL (Low Layer) Drivers:

Faster and more optimized
Closer to hardware registers
Preferred for performance-critical applications

Middleware (Optional Add-ons):

Available through STM32Cube:
  • FreeRTOS (Real-time OS)

  • USB Device/Host stack

  • TCP/IP (LWIP)

  • FATFS (SD card)

  • TouchGFX (GUI framework)

  • Bluetooth / LoRa / WiFi stacks (depending on board)

2. Software / IDEs Used to Program STM32

Most Popular (Official & Free)

STM32CubeIDE

  • Official IDE from ST

  • Based on Eclipse + GCC

  • Integrated CubeMX + Debugger

  • Free

  • Most recommended for beginners

 Professional IDEs:

Keil MDK

  • Very popular in the industry

  • Excellent debugger

  • Free limited version (code size limit)

  • Paid for the full version

IAR Embedded Workbench:

  • Highly optimized compiler

  • Used in professional embedded systems

  • Paid license (trial available)

Open-Source Options:

PlatformIO

  • Works inside VS Code

  • Supports STM32 + Arduino + ESP32

  • Very popular with makers

VS Code + GCC + OpenOCD:

  • Fully customizable

  • Advanced users

3. Programmer / Debugger Tools

Most official boards include a built-in debugger:

ST-LINK

  • Built into Nucleo & Discovery boards

  • Programs via SWD

  • Supports debugging

If using cheap boards (e.g., Blue Pill), you may need:

  • External ST-LINK

  • USB-to-Serial (for UART flashing)

4. Programming Languages Used:

C (Most Common)

  • Main language for STM32

  • Fast, efficient

  • Used with HAL/LL libraries

  • Industry standard

C++

  • Used in advanced applications

  • Supported by STM32CubeIDE

  • Used with RTOS or OOP designs

MicroPython

  • Python for microcontrollers

  • Easy for beginners

  • Slower than C

  • Not supported on all STM32 chips

Arduino (C++ Based)

  • Some STM32 boards support the Arduino core

  • Easier for hobby projects

Assembly

  • Rarely used

  • Only for ultra-critical optimization

What Is Most Used?

Categorys
IDE:
Language
Cb
Firmware Library
HAL
Debugger
ST-LINK
RTOS
FreeRTOSWha
  • C language

  • HAL or LL

  • Keil / IAR

  • Often with FreeRTOS

Beginner Recommendation:

If you're starting:

  1. Install STM32CubeIDE

  2. Use HAL drivers

  3. Start with the C language

  4. Use a Nucleo board (built-in ST-LINK)

Simple STM32 LED Blink Program:

Let’s start with a simple STM32 LED Blink example in C using:

  • STM32CubeIDE

  • HAL library

  • Any STM32 board (example: Nucleo or Blue Pill)

I’ll show:

  1. CubeMX configuration idea

  2. Full main.c example

  3. Explanation

Example: LED Blink Using HAL (C Language)

 Assumption

  • LED connected to GPIO Pin PA5
    (On many Nucleo boards, PA5 is connected to the onboard LED.)

Step 1 – CubeMX Configuration:

Inside STM32CubeIDE:

  1. Create a new STM32 project

  2. Select your MCU or board

  3. In Pinout view:

    • Set PA5 → GPIO_Output

  4. Go to Clock Configuration → leave default

  5. Generate code

CubeMX will create initialization code automatically.

Step 2 – main.c Code (LED Blink):

Below is the important part inside while(1):


#include "main.h"

int main(void)

{

  HAL_Init();                 // Initialize HAL library

  SystemClock_Config();       // Configure system clock

  MX_GPIO_Init();             // Initialize GPIO

  while (1)

  {

    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);  // Toggle LED

    HAL_Delay(500);                         // 500ms delay

  }

}

What Each Line Does:

    Code

      Meaning

HAL_Init()

Initializes HAL library

SystemClock_Config()

Sets CPU clock

MX_GPIO_Init()

Configures PA5 as output

HAL_GPIO_TogglePin()

Changes the LED state

HAL_Delay(500)

Wait 500 milliseconds

What Happens?

  • LED ON → 0.5 sec

  • LED OFF → 0.5 sec

  • Repeats forever

Blink frequency = 1 Hz

What CubeMX Generates for GPIO:

Inside gpio.c:

GPIO_InitTypeDef GPIO_InitStruct = {0};

__HAL_RCC_GPIOA_CLK_ENABLE();

GPIO_InitStruct.Pin = GPIO_PIN_5;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Pull = GPIO_NOPULL;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

This sets:

  • Output mode

  • Push-pull

  • No pull-up/down

  • Low speed

If You Are Using Blue Pill (STM32F103)

Usually LED is on:

  • PC13

So change this:

HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);

How To Flash Program

If using:

  • Nucleo / Discovery → Built-in ST-LINK

  • Cheap board → External ST-LINK

Steps:

  1. Connect USB

  2. Click Run → Debug

  3. Code uploads automatically

FreeRTOS LED Blink Task

 Let’s move to a FreeRTOS LED Blink Task example on STM32.

We’ll use:

  • C language

  • HAL drivers

  • FreeRTOS (via STM32CubeIDE)

  • Any STM32 board (example: Nucleo with LED on PA5)

What is FreeRTOS?

FreeRTOS is a small Real-Time Operating System used in embedded systems.

Instead of:

                    while(1) { }

You create tasks (threads) that run independently.

Step 1 – Enable FreeRTOS in STM32CubeIDE:

  • Create a new STM32 project

  • Open .ioc file

  • Go to:

Middleware → FreeRTOS → Enabled

  • Leave default settings

  • Set:PA5 → GPIO_Output

  • Generate code

CubeIDE automatically includes FreeRTOS files.

Step 2 – Create LED Task

Inside freertos.c, add:

void StartLedTask(void *argument)

{

  for(;;)

  {

    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);

    osDelay(500);   // 500ms delay (RTOS safe delay)

  }

}

Step 3 – Create the Task in Initialization:

In MX_FREERTOS_Init():

osThreadId_t ledTaskHandle;

const osThreadAttr_t ledTask_attributes = {

  .name = "ledTask",

  .stack_size = 128 * 4,

  .priority = (osPriority_t) osPriorityNormal,

};

ledTaskHandle = osThreadNew(StartLedTask, NULL, &ledTask_attributes);

CubeMX can also generate this automatically if you create a new task in the GUI.

 What Happens Now?

Instead of:

             HAL_Delay(500);

We use:

            osDelay(500);

Why?

  HAL_Delay

  osDelay

Blocks CPU

Allows other tasks to run

Not RTOS-friendly

RTOS aware

How It Runs Internally:

After main() initializes everything:

osKernelStart();

FreeRTOS scheduler starts.

From then:

  • LED Task runs

  • CPU switches between tasks automatically

  • You can add more tasks easily

Example: Two Tasks (Better Demo)

void StartLedTask(void *argument)

{

  for(;;)

  {

    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);

    osDelay(500);

  }

}

void StartPrintTask(void *argument)

{

  for(;;)

  {

    printf("Hello from FreeRTOS!\r\n");

    osDelay(1000);

  }

}

Now:

  • LED blinks every 500ms

  • UART prints every 1 second

  • Both run independently

Why Use FreeRTOS?

✔ Multitasking

✔ Real-time scheduling

✔ Task priorities

✔ Semaphores & mutex

✔ Queues for communication

✔ Industry standard

Where It’s Used

  • Industrial automation

  • IoT devices

  • Motor control

  • Robotics

  • Medical devices

When Should YOU Use FreeRTOS?

Use it if:

  • You have 3+ independent modules

  • Need communication between tasks

  • Want a professional embedded design

Don’t use it if:

  • Only blinking LED

  • Very small MCU (low RAM)

  • Ultra simple project

Popular posts from this blog

Electronic components list with Images and Symbols

Electronic components function and details Electronic components are used in electronics circuits. These components might be PCB mounted or integrated type, widely used in electronics devices. Digital computers, control devices in industries and household items containing large number of integrated components. It is essential to know how to identify circuit board parts, whether you are an electronic technician or engineer. We made the electronics devices with integrated chips and circuit components. In circuits, electronic components are used. What are active and passive components? Types of electronic components? There are two major types of electronic components . In electronic circuits, there are active and passive components. 1- Active components 2- Passive components Active components These types of components operate with external power supplies.  Passive components Passive components do not require an external power supply. These components energize with circuit signals. ...

Arduino UNO Pinout with schematic Diagram and Functions

Arduino UNO Pinout and Board components detail The Arduino Uno is a microcontroller board based on the ATmega328P. It has a total of 28 pins, including digital I/O pins, analog input pins, and power pins. Below is a detailed description of the pin functions It offers extensive resources and a wealth of project ideas, making it a go-to choice for educational purposes, prototyping, and a myriad of DIY electronics projects. The  Arduino UNO Pins  and function are described here in details.  Arduino Uno  is a standard board of the company, even though other boards, e.g. micro, Nano, mega, Leonardo, 101, Due and Yen.  Arduino also manufactured IoT (Internet of Things), Bluetooth, GSM/3G, Wi-Fi, and motion sensor boards. Arduino uno Specifications Microcontroller : ATmega328P Operating Voltage : 5V Input Voltage (recommended) : 7-12V Digital I/O Pins : 14 (of which 6 can be used as PWM outputs) Analog Input Pins : 6 DC Current per I/O Pin : 20 mA Flash Memory : ...

How to make Robot Eyes with OLED display ?

Robot Eyes for robotic projects How to make robot eyes in a simple way with an OLED display? In this blog, I am going to explain with the help of pictures and the code. Robotic eyes make your robotic project very interactive. It depends on the specific goals and applications of the project. Robotic eyes with displays offer a wide range of benefits across various robotics projects. There are different types of projects for robot eyes that have their own requirements. but I am going to explain the simple blinking eyes with an OLED display and Arduino. This is very useful for beginners and learners to understand the level of robotic parts. Material Required 1- Arduino Uno                                                  01 No 2- OLED 0.96”(128x64)(with I2C interface )     01 No 3- Jumper wires                ...

Arduino sensors and modules list for Projects.

Arduino Sensors for Electronics Projects What is Sensor? A Sensor is a device used as the primary element that measures physical value and converts it into an electrical signal. Also, we can say that the sensor is a transducer. It measures temperature, distance, light, sound, etc. Sensors and actuators are widely used in Arduino projects. These sensors come with a kit or can be purchased separately. Some of them are compatible with Arduino Uno boards and also Raspberry Pi and other electronic modules. There are a lot of types of Arduino sensor kits available in the market. How many types of Arduino Sensors? There are a lot of sensors used in electronics projects , e.g. robotics cars, moving objects, flying drones, IoT(internet of things), sound and light operation, etc. Here is a list of 45 in 1 electronic sensor that comes with an Arduino sensors kit , and the details of their applications. Analog temperature Sensors KY 013 Temperature Sensor KY-013 is an analog temperature sensor...

"ESP32 GPIO Pinout and Overview: Complete Guide to Pin Functions

ESP32 pinout and functions and details ESP32 module is an Internet of things wireless module. It is used to control the devices through the internet. It is a remote IoT development board that can be easily programmed and controlled via WIFI or Bluetooth.  It has a dual-core Tensilica Xtensa LX6 CPU, which provides ample processing power for  various tasks. It includes GPIO pins, SPI, I2C, UART, ADC, DAC, and more peripherals.  So we can configure  esp32 pins for a wide variety of projects.                     Figure:ESP32 ESP32 development board used arduino ide to program as well as other environments e.g. micro python, Thoni, Scratch 3.0, etc. There are several modules that are part of the ESP 32 family.  ESP32 devkit, ESP wroom-32.  It has a flash memory of 520 k bytes with a working frequency of 240kMHZ. WIFI 802.11, Bluetooth 4.2BR and BLE ...

Best Electronic Books for beginners in 2026

Electronic books with Kindle editions A wonderful variety of electronic books . Those who have a very basic knowledge of electronic components. These books are very useful. You can understand the basic structure of the electronic components. These are helpful for theory and practical purposes. What is an electronics book and how to read it? T he book is called an electronic or E-book if it is available for online reading. It might be in pdf format and available to download . Getting Started in Electronics Third Edition, Writer - Forrest M Mims III 128 Pages "Getting Started in Electronics" is a well-known beginner's guide to the basics of electronics. Authored by Forrest M. Mims III , this book is widely appreciated for its easy-to-understand approach to teaching electronics concepts, even to people with no prior experience. Here’s what the book covers: Basic Concepts : The book introduces fundamental principles like voltage, current, resistance, and power in electronic...

Arduino Apps and software for genius

  Arduino apps for Android and Windows We know that Arduino Apps is used for programming, but we could run it on Windows and Android. As it depends on the availability of a programming device for our projects. This application also works for the Arduino Bluetooth Android project. These Applications can help to learn and create electronic projects . I will describe the functions and introduction of the following: application and also support systems required to run. List of Arduino programming applications for Android Android Apps for Electronics Solutions. It is an easy-to-use Arduino Application in Apple Android. Arduino Droid app for Mobiles Droid v   4.9.1 . Droid is a short form of Android; it means a robot. The Droid app works on PC and, an example of Arduino Android is also available. It includes IDE, compiler, and up-loader. the mobile memory should be enough, and it can't be set up on an SD card for the Android protection policy. The second picture shows a menu,...

Resistor Calculator with Graphical Chart

Resistor Calculator for measuring resistance Resistor calculator is a very useful tool for anyone working on electronic experiments or projects. It is easy to use and has a simple design. To get resistance for Led voltage drop or your circuit resistance, you can use an online calculator or look up a formula. We can use it for voltage drops or led current limiting. Online resistor calculator It is a simple and easy-to-use online resistor calculator instead of using formulas. It comes with different bands e.g.3 band, 4, 5, and 6 bands. The program calculates resistor values. # Get in touch with more interesting topics ……… 1- How to use a led Matrix with Arduino . 2- Arduino books for projects . 3- Best Arduino kits for beginners . Standard Table For Calculating 4 Band Resistors Online Resistor Calculator (4 Band) Graphical Resistor Calculator Graphical Resistor Calculator is a Free Software to easil...

555 Timer IC, Pinout and Function details

555 Timer IC Pinout and Applications: We widely used 555 timer IC in electronic projects . This chip has multi-function time-based output signals. We can use 555 IC chips with the Arduino or make separate projects. It is available with different brand names, i.e., LM555, NE555, and SE555. But it is originally manufactured by Texas Instruments. The chip is manufactured in different packages, e.g., SOIC, PDIP, VSSOP. For more details, the 555 timer IC datasheet is available on the Texas Instruments official site. We use it for time-based operated siren circuits, controlling motor speed, and operating LED flasher circuits. It can produce a lot of functions, e.g., oscillation, Astable. Bistable, Monostable, flip-flop logic, and pulse width modulation. How 555 Timer work? You can get a lot of solutions from the chip if you want to understand how it works. There are a lot of timer projects and applications, e.g., timer-controlled circuits, sound, LED flashers, and more. 555 Timer IC Pinou...

Contact Form

Name

Email *

Message *