Get Familiar with STM32

STM32 is a series of 32-bit MCUs widely used in IoT, car, cell phone, etc.

Some STM32 models are cheap but still provide fairly high performance for some applications. In Self-Balancing System project, which is one of my extracurricular projects under the guidance of Prof. LE, the Nucleo-64 board I used is actually an STM32 board, with an MCU called STM32F401RE. As a board targeted academic training, this board is also called NUCLEO-F401RE.

To use this board, there are many methods to work with. I would like to recommend three of them.

  1. Arduino IDE: by installing a package for STM32 board in the library manager of Arduino IDE, NUCLEO boards actually work with Arduino library. And I think it is the fastest way to boot the board if you are already familiar with Arduino's own products like Arduino Uno.
  2. Mbed OS: Mbed OS is a framework designed for IoT and Cloud. They provide an online IDE. You can login with your account and use its editor, tutorial, examples, auto-hint, documentation browser, etc., to help yourself quickly learn about their library and use it to program your board.
  3. STM32CubeF4: STM32CubeF4 is an HAL&LL driver library designed for developing STM32F4 series. For other STM32 series, you can also download the corresponding HAL&&LL driver library from ST. Unlike the former two options, HAL&LL provides better programming flexibility and performance but requires users to devote more time to get familiar with this library. However, this is a robust choice for commercial development. So, it is worthy to spend some time on learning HAL&&LL. As a bonus, you can use a free IDE provided by ST, STM32CudeIDE, if you choose HAL&&LL.

Because HAL&&LL provides more possibilities for fun than Arduino library and Mbed OS framework, I would like to describe my experience of starting to use HAL&&LL rather than the other two. The other two options are actually very easy to get hands on. So, just try them! They can help you learn more about your STM32 board before touching HAL&&LL.


  • stm32_tutorial/home.txt
  • Last modified: 12 months ago
  • by daizhirui