I am a firm believer that if you really want to learn how to use a microcontroller you must write your own peripheral drivers using direct register access. Even if you later end up using an established library, you will understand what that library is doing and what all those settings mean. You will learn to appreciate the cleanliness of 5 lines of code that accomplishes the same thing that 20 lines of code accomplishes using a library. You can then take your code and make your own abstraction layer, as you will see in the following videos you will be able to write your own functions and know exactly what they do. Learning how to use the registers for one microcontroller will allow you to pick up any microcontroller from any manufacturer plus the datasheet and start programming it, because for the most part they are all programmed the same exact way and it is only naming differences. Below is my attempt to make this subject understandable and less intimidating. I am not a teacher and have no training in education so if my style does not work for you, my apologies. Otherwise proceed and enjoy.

The following tutorial series is a work in progress. If you have landed here only to encounter a series that abruptly ends, do rest assured that more content is coming. I am working hard on completing many series of tutorials on an array of subjects. Feel free to shoot me an email to remind me about a specific tutorial I may have forgotten.

Note: This is not a C tutorial, it is assumed you know the basics of the language. However, I do review bitwise operations because they are an integral part of embedded C. I suggest you review structures and pointers (just basic pointers nothing fancy).


1. Intro / overview of what you will learn.
2. Development environments :
  • Keil
  • TrueStudio 
3. Intro to Register access.
4. Bitwise operations
5. Systick : delay
6. Basic Debugging intro
7. Printf for debugging


  • Overview
  • Output
  • Input
  • Interrupt
  • Alternate function
 GPIO : Driver Abstraction
  • Header File
  • C File

  1. Thank you for your efforts! This is exactly what I've been looking. Im going to write my drivers too for my stm32f407 micro, so that I can learn how they work.

    1. hello sorry for the late reply! How did your journey go on writing the drivers? I plan to remake these videos and be more active.


Whatsapp Button works on Mobile Device only

Start typing and press Enter to search