Giter VIP home page Giter VIP logo

stm32_sool's Introduction

STM32_SOOL - Semi-Object-Oriented Library for STM32F1xx microcontrollers written in C

Tested thoroughly with the STM32F103C8T6-based board module (a.k.a. Blue Pill). I can't tell for other F1-series boards, but they should be compatible (at worst with small adjustments).

Development of STM32_SOOL library is assisted by System Workbench for STM32 IDE, i.e. modified Eclipse IDE. All necessary instructions, how to import the library and useful Eclipse project files are included.

Most of the code is documented using Doxygen.


Main concepts:

— built on top of StdPeriph 3.5.0 and CMSIS libraries

private fields of a class are marked with underscore _ before the name, it is not recommended to operate on them directly in the infinite loop - instead of that use class' methods

inheritance is done by putting a base class inside derived class'es structure - because of that a base name inside a class structure is reserved; unfortunately base class methods access is via . operator (like base.{FIELD}) which is not very convenient for multi-level inheritance

— all interrupt driven classes have implicit or explicit volatile specifier

— in case of derived classes which are interrupt-related one must remember to call base's interrupt handlers too

— InterruptHandler routines are designed to run IT flag check at the start and they always return 1 when flag was set (0 otherwise) and clear it. Returning an uint8_t value creates a possibility to run piece of code on certain interrupt event without bothering about routines used to clear other IT flags. Stardard IRQHandlers contain a set of if/else conditions one of which should always run when interrupt detected.

— when Base class and Derived one both have member functions named the same, in typical situation, only the one from Derived class needs to be called

— when processing interrupts if/else structure typically should be processed from the highest level class (the last level od derivation, selected as first IF), to the lowest (Base class)

stm32_sool's People

Contributors

rayvburn avatar

Watchers

 avatar  avatar

stm32_sool's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.