Newcomers to embedded systems often encounter an unavoidable term: STM32. Whether browsing forums for “beginner-friendly guides” or asking industry veterans “where to start,” nine times out of ten, they will be recommended to tackle STM32 first.

Some may wonder, there are many embedded chips, not just STM32. The 51 microcontroller is simple and easy to use, and Arduino is also fun to play with. Why focus solely on STM32?
To understand the necessity of STM32, we first need to look at the limitations of those “beginner-friendly” chips. Many people start with the 51 microcontroller because it has a simple structure, fewer registers, and with just a few lines of code, they can create a blinking light or read a button, which is very friendly for beginners to establish a sense of “hardware control.” However, its obvious problem is that its performance is too “basic.”
Today’s embedded projects are no longer as simple as “lighting up an LED”; even a small gadget may need to connect to WiFi and run a simple sensor algorithm. The main frequency of the 51 microcontroller is mostly around 12MHz, with only a few hundred bytes of memory. Not to mention running complex programs, it can’t even accommodate a decent operating system.

Now let’s talk about Arduino. This is a “toy-level” entry-level tool that doesn’t require digging into the register manual; by dragging code blocks and tweaking library functions, you can make motors turn and sensors work, giving beginners a great sense of achievement. However, its shortcoming lies behind its “simplicity”; it relies too much on “pre-packaged libraries.” When using Arduino, you might not even need to know how “microcontrollers communicate with sensors” or “how to configure timers” because the library functions handle everything for you. But if you want to learn deeper, like writing your own drivers or optimizing program performance, you’ll find yourself completely ignorant of the hardware’s lower levels, akin to building a house with just a frame but no foundation.

However, STM32 is a microcontroller based on the ARM Cortex-M series core. For example, the commonly used STM32F103 has a main frequency of up to 72MHz and memory in the tens of KB, which is significantly stronger than the 51 microcontroller, yet not as complex as high-end processors. This performance is particularly suitable for beginners, as it can handle tasks that the 51 microcontroller cannot (such as displaying complex data on an OLED screen, connecting sensors via SPI to collect data, or even running a lightweight real-time operating system like FreeRTOS) without overwhelming beginners with overly complex concepts like “memory management” or “interrupt nesting” right from the start, allowing for a gradual learning process.
Using STM32 for small projects: there are projects for smart wristbands measuring heart rates, environmental monitoring stations connecting temperature and humidity sensors, and even small robots controlling motors. These projects do not just rely on existing libraries like Arduino; they require adjusting registers and writing drivers, which is perfect for practicing low-level development skills.
Regarding resources for STM32, whether it’s official manuals, Chinese tutorials, forum posts, or Bilibili videos, a simple search yields a wealth of information. The functions of each register and the usage of each peripheral are clearly documented. Searching for “STM32 beginner” on Bilibili can bring up hundreds of tutorials, from “lighting up the first LED” to “porting an operating system,” providing step-by-step guidance; even small issues you encounter during debugging can likely be resolved.
Moreover, STM32 is widely used in the industry, including controllers for smart home devices, sensor modules for industrial equipment, and small control units in cars.

Finally, starting with embedded systems doesn’t necessarily mean you have to use STM32. For example, if you want to work on low-power projects, the NRF52 series might be more suitable; if you want to play with open-source hardware, the ESP32 (which can connect to WiFi and Bluetooth) is also very popular. However, for most beginners who want to systematically learn embedded systems and eventually make a living in this field, STM32 is the most reliable stepping stone.