This repository contains a collection of examples and tutorials for working with the LPC1769 and STM32 microcontrollers. These examples are designed to help you understand and implement embedded systems using these platforms.
CMSIS is a vendor-independent hardware abstraction layer for the Cortex-M processor series. It provides a standardized API for peripheral access, system initialization, and more. In this repository, CMSIS is used along with CMSIS drivers for the LPC1769 microcontroller to facilitate low-level programming and hardware abstraction.
libopencm3 is an open-source library that provides a unified API for a variety of ARM Cortex-M microcontrollers, including the STM32 series. It abstracts the hardware-specific details, making it easier to write portable and maintainable code. In this repository, libopencm3 is used for the STM32F103C8T6 microcontroller to manage peripheral interactions, system initialization, and more.
Before compiling these projects, ensure you have the following:
For installation instructions, please check the INSTALL file in the repository.
[!CAUTION] For LPC1769 projects, we utilize
bare metal
programming. This means we develop a minimal bootloader to initialize the clock, memory, and processor before proceeding to the main program.
To make it work with MCUExpresso, please copy the source files and header files from thesrc
andinclude
directories to your projects, except fornewlib_stubs.c
.
After building, flash the firmware onto your LPC1769 or STM32 board using the appropriate tools (e.g., OpenOCD, ST-Link Utility).
Contributions are welcome! Please fork this repository and submit a pull request with your changes.
This repository is licensed under the MIT License. See the LICENSE file for more information.