This repository contains the source codes and projects from the Embedded Software Development using C++ online course I created in 2021. Although the course is no longer under development and is a bit dated, the concepts are still relevant for people interested in experimenting with embedded software development using tools such as: Keil uVision, STM32CubeMX, STM32CubeIDE, C++, and an STM32 microcontroller. In order to follow the course without issues, it is advisable to use an STM32F401RE Nucleo board.
I have always been a fan of programming microcontrollers at the register level and writing libraries for peripherals like sensors, flash memories, wireless communication modules, etc. I've had the opportunity to do this in a professional setting and for numerous personal projects using the C programming language. Out of curiosity, I experimented with C++ for creating custom libraries for simple components. I enjoyed the process as it allowed me to express certain implementations in easier ways than with plain C, using in-built object-oriented programming features. I found out that there wasn't a lot of content out there on how to use C++ for programming STM32 MCUs, so I authored and published this course with the hopes of sharing my knowledge with enthusiasts in the embedded system community.
.
├── Embedded_C++
│ ├── Bluetooth_Controlled_Servo
│ ├── Extra_codes
│ ├── HC05
│ ├── HCSR04 Exercise
│ ├── Keypad
│ ├── Keypad2
│ ├── LCD
│ ├── STM32F4 Self Driving Car Project
│ └── Servo
├── LICENSE
└── README.md
- STM32F401RE Nucleo board
- 4x4 Keypad Matrix
- 20x4 LCD
- 10k Potentiometer
- Solderless breadboard
- Connecting wires
- L298N motor driver
- 4 Wheel car chassis
- HC05 bluetooth module
- SG90 servo motor
- 4 Wheels
- 4 TT DC gear motor
- 3 HC-SR04 ultrasonic sensor
- 18650 Li-ion batteries
- Keil uVision 5
- STM32CubeMX
- STM32CubeIDE (optional for majority of the course)
- Self-driving/obstacle avoidance car
- Tic-Tac-Toe game
If you're taking the course, you're expected to implement these projects on your own. However, I have written source codes for these projects that you can run on your target hardware to see how things work.
Course link: https://www.udemy.com/course/embedded-software-development-using-cpp/