Skip to content

Contains bare-metal project templates for programming the STM32F411 microcontroller without HAL

License

Notifications You must be signed in to change notification settings

mbober1/STM32-bare-metal-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM32F411 Bare-Metal Project Templates

This repository contains bare-metal project templates for programming the STM32F411 microcontroller in C. These templates are designed for developers who want to work directly with the processor's registers, bypassing the HAL (Hardware Abstraction Layer) libraries.

Through the creation of this repository, I aim to acquire a fundamental understanding of working with STM32 registers. Additionally, I aspire to compile a knowledge compendium, not only for my own benefit but also for others.

Table of Contents

Overview

This repository offers a set of project templates that provide a starting point for developing bare-metal applications for the STM32F411 microcontroller.

Getting Started

To get started with these project templates, follow these steps:

  1. Clone this repository to your development environment:

    git clone https://github.com/mbober1/STM32-bare-metal-templates.git
    
  2. Open the template that best suits your needs in your favorite IDE or build system.

  3. Customize the template for your specific project requirements.

  4. Build

    make
    
  5. Flash the project to your STM32F411 development board. In every project folder there is ready to use launch.json script prepared for VSCode + JLink setup.

Project Templates

This repository provides a set of project templates for the STM32F411 microcontroller, focusing on bare-metal programming without HAL libraries. Each template serves as a starting point for specific tasks or peripherals.

Clear Template

  • Description: A minimalistic template offering a clean slate for your projects.

GPIO Output (General-Purpose Input/Output - Output)

GPIO Input (General-Purpose Input/Output - Input)

ADC (Analog-to-Digital Converter)

  • Description: This template configures and demonstrates the very basic usage of the STM32F411's Analog-to-Digital Converter (ADC).

ADC DMA (Direct Memory Access)

  • Description: A variant of the ADC template that utilizes Direct Memory Access (DMA) for efficient data transfer from the ADC to memory.

TIM Time-Base (Timer - Time-Base)

TIM Output Mode (Timer - Output Mode)

  • Description: An extension of the timer template, it configures the timer for generating output signals like PWM (Pulse Width Modulation). Useful for motor control, LED brightness modulation, and signal generation.

TIM Input Mode (Timer - Input Mode)

  • Description: Configures the timer as an input and demonstrates measuring the duration or frequency of an external signal. Valuable for applications involving pulse width measurement or event counting.

These templates aim to expedite your STM32F411 development by providing a structured foundation for various use cases. Dive into the template that aligns with your project requirements and build upon it for your specific needs.

Resources

For comprehensive documentation on the STM32F411CE microcontroller and its peripherals, refer to the following resources:

Contributing

Contributions to this repository are welcome! If you have improvements, bug fixes, or additional project templates that you'd like to contribute, please follow the standard GitHub fork and pull request workflow.

About

Contains bare-metal project templates for programming the STM32F411 microcontroller without HAL

Topics

Resources

License

Stars

Watchers

Forks

Languages