Like many others, I learned of Arduino very early when I was learning about embedded systems. It felt great to be able to build pretty complex projects like a remote-controlled fan without much of a more profound knowledge of electronics and the best part was how quickly I could build these projects.
Arduino is a great platform to learn about electronics but I realised that it abstracted a lot of the details away and I wanted to learn about those more in-depth things that were hidden. The resources below helped me learn more about the inner workings of microcontrollers and they are beginner-friendly too
Make: AVR Programming
This book goes into the details of AVR microcontrollers and shows you how the peripherals like UART, I2C, etc. After completing this book, you will have a better understanding of the abstractions provided by Arduino
Programming with STM32: Getting Started with the Nucleo Board and C/C++ by Donald Norris
This book teaches you how about the STM32 family of microcontrollers. These microcontrollers are based on ARM Cortex-M and have a more complicated architecture than AVR microcontrollers. You can get the Nucleo boards from Aliexpress or if that is too expensive, you can follow along using the Bluepill STM32F103 which you can get locally in Ghana from
I hope you enjoy your journey of learning the inner workings of microcontrollers as I did.