This project is the documentation of my efforts on learning how to control hardware with C/C++. I have multiple decades of software development experience with different programming languages but never got into low level hardware programming. I chose the Raspberry Pi for getting some experience with it.
As long as not explicitly stated otherwise, I am using a Raspberry Pi 3 Model B+ with Raspbian Stretch with Desktop.
This documentation is not meant as an introduction to programming and the Raspberry Pi. I expect the reader to be already familiar with Windows, Linux, C/C++ and the Raspberry Pi.
IMPORTANT: The examples and documentations given here are by no means meant to show off best practices. In fact the code you see here probably falls short on several aspects. It is not intended to be used as general purpose library code which means it is not very versatile and error checking might be missing to simplify the task. The examples are meant as proof of concept that demonstrate some mechanics but should not be used in production environments without further polishing.
- Part 01: Installing Raspbian with unattended WLAN and SSH configuration on a Raspberry Pi
- Part 02: Using Visual Studio 2017 for developing C/C++ applications on a Raspberry Pi
- Part 03: Accessing physical memory with C++ on a Raspberry Pi
- Part 04: Controlling GPIO ports with C++ on a Raspberry Pi - blinking LED
- Part 05: Detecting a pressed button with C++ on a Raspberry Pi
- Part 06: Reading the system timer with C++ on a Raspberry Pi
- Part 07: Reading a HC-SR04 sensor with C++ on a Raspberry Pi - ultrasonic distance measurement
- Part 08: Reading a DHT11 sensor with C++ on a Raspberry Pi - temperature and humidity
- Part 09: Reading a BMP180 sensor with C++ through I2C on a Raspberry Pi - temperature and pressure
- Part 10: Using a HD44780 20x4 LCD display to display text with C++ on a Raspberry Pi
- Part 11: Using a HD44780 20x4 LCD display with I2C to display text with C++ on a Raspberry Pi
- Part 12: Using a 433 MHz sender and receiver for transferring data with C++ on a Raspberry Pi
- Part 13: Reading a DHT11 sensor with C as a linux device driver on a Raspberry Pi - temperature and humidity
- Part 14: Detecting a pressed button with C as a linux device driver on a Raspberry Pi
- Part 15: Optimized reading of a DHT11 sensor with C as a linux device driver on a Raspberry Pi - temperature and humidity