Skip to content

MCU peripheral (GPIO, I2C, SPI, USART) drivers development from scratch on the STM32F407-Discovery board

Notifications You must be signed in to change notification settings

kyungjae-lee/mcu-peripheral-drivers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCU Peripheral Drivers

This repository contains the source code for the MCU Peripheral Drivers development project. Visit the "MCU Peripheral Drivers" section on my website for more details: https://jackklee.com/mcu-peripheral-drivers.

Introduction

  • Developed MCU peripheral drivers (GPIO, SPI, I2C, USART) from scratch on the STM32F407G-Discovery board, along with comprehensive test applications to ensure their reliability and applicability for real‐world projects
  • Used STM32CubeIDE for software development, a logic analyzer for testing, and the on‐board ST‐LINK/V2 debug circuitry for debugging
  • Please see the LCD Digital Clock project to observe how these drivers are utilized in a real-world embedded systems project

Development Environment

  • Operating system: Ubuntu 22.04 LTS
  • Integrated Development Environment (IDE): STM32 CubeIDE Version 1.10.1

Architecture

Software Layers

mcu-peripheral-drivers-software-layers

  • Application layer consists of test applications designed to verify the proper functionality of the GPIO, SPI, I2C, and USART peripheral drivers for the STM32F407xx MCU.
  • Hardware abstraction layer includes the device-specific header file for STM32F407xx MCU, along with the GPIO, SPI, I2C, and USART peripheral drivers. This layer provides the application layer with a range of APIs to control the respective MCU peripherals.

List of Files

Testing (I2C Example)

  • The following example is taken from one of the I2C peripheral driver tests. For additional tests on various other MCU peripheral drivers, please visit the MCU Peripheral Drivers section on my notebook.

Communication Interfaces

mcu-peripheral-drivers-i2c-application-2-communication-interfaces

Wiring

mcu-peripheral-drivers-i2c-application-2-wiring

Analysis using the Logic Analyzer

mcu-peripheral-drivers-i2c-application-2-testing-entire-communication

mcu-peripheral-drivers-i2c-application-2-testing-communication-part-1

Cross-checking using the STM32CubeIDE Data Console

mcu-peripheral-drivers-i2c-application-2-testing-stm32cubeide

About

MCU peripheral (GPIO, I2C, SPI, USART) drivers development from scratch on the STM32F407-Discovery board

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published