The STM32 Crash course: Bare metal and CMSIS Core

Learn to Develop drivers for GPIO,ADC,USART with help of CMSIS Core with minimum code.

The biggest barrier while learning The STM32 series is the scariest boilerplate code generated by CubeMX or Standard Peripheral Library. Which often confuses new comers specially who are migrating from other 8 bit micro controller series like 8051 or Microchip PIC. If this is the barrier for you as well, then this course is a best starting point for the STM32 series.

What you’ll learn

  • stm32 essentials.
  • STM32 ADC.
  • STM32 USART.
  • STM32 Interrupts.
  • STM32 GPIO.
  • SYSTICK Timer.

Course Content

  • Basics of the GPIO in the STM32F4 Devices –> 10 lectures • 26min.
  • Blink the LED on Discovery Board –> 3 lectures • 9min.
  • GPIO as an Input –> 1 lecture • 8min.
  • Handling External Interrupts –> 4 lectures • 12min.
  • Cortex System Timer (SYSTICK) –> 2 lectures • 8min.
  • USART: Sending and Receiving Characters to and from USART –> 7 lectures • 24min.
  • USART TX and RX using Interrupts –> 2 lectures • 20min.
  • Reading the Analog Inputs using ADC –> 11 lectures • 33min.
  • Additional content Attolic True Studio using Standard Peripheral Library –> 3 lectures • 7min.

The STM32 Crash course: Bare metal and CMSIS Core

Requirements

  • Basic Electronics.
  • Digital Logic Design.
  • Comfortable in building breadboard circuits.
  • C/C++ basic level understanding.

The biggest barrier while learning The STM32 series is the scariest boilerplate code generated by CubeMX or Standard Peripheral Library. Which often confuses new comers specially who are migrating from other 8 bit micro controller series like 8051 or Microchip PIC. If this is the barrier for you as well, then this course is a best starting point for the STM32 series.

Although this course is designed and tested on STM32F4 Discovery board, but the learning curve is equally applicable to other STM32 families as well. While designing the course, I keep focused on those peripherals and applications which any embedded developer could face struggling who have previous 8-bit world or Non-ARM series background.

Even If you are coming from some other programming background but you have little knowledge of C language programming and you are confident using the hardware boards and have previous knowledge of any level about Embedded Systems and Electronics, you are good to start this course.

The STM32 Families are very complex in nature with lot and lot of features and peripherals, I tried to cut out the complexity and focused on the day to day tasks which a normal embedded developer could face and try to teach those barriers. The main development is done on Keil UVision 5 which could be duplicated to any CMSIS supporting compiler. The reason for choosing the Keil for this course is because, Keil is very convenient for programming from the scratch or bare metal programming. The logic learned from this course could be applied to any STM32 Compiler and the code would work with other compilers as well. Also The skills of finding the desired peripherals and their registers from the reference manual and Datasheet will help you to adopt or use nay new peripheral if you ever need to extend your knowledge and experience.

 

You could directly use the registers in Attolic TrueStudio or STM32CUBEIDE as well. So even if you need to jump to Modern HAL Library style programming, Yet learning the register level will help you to build up your understanding of what’s going underneath and you will be able to fix things quickly if somethings goes wrong, or it will be more easy to adopt any new peripheral when required.