SUMMARY:
An STM32 Microcontroller displaying time on a 16x2 LCD.
DESCRIPTION:This project has a STM32F4-DISC1 development board, which is home to a STM32F407 MCU, interfacing with a DS3231 Real Time Clock (RTC) module over I2C, and a 16x2 LCD screen which is controlled by a HD44780. The HD44780 has it's own custom parallel protocol for interfacing with the LCD screen. My goal for this project was two-fold:
1) I wanted to write the bare metal STM drivers from scratch.
2) I wanted the specific RTC and display to be interchangeable.
All the low level STM I2C, GPIO, and RCC drivers are written by me, and present in the `Drivers/` directory.
I kept the RTC and display modular by defining clock and display driver interfaces in `Inc/clock.h` and `Inc/display.h`. In theory, any RTC or display that implements that interface can be plugged into this application.