An open API service indexing awesome lists of open source software.

https://github.com/pandyaparth2407/arduinomimicstm32

Created BasicTools library for anyone wish to use STM32F103 for their project with arduino style interface
https://github.com/pandyaparth2407/arduinomimicstm32

arduino dma printf protocol-bridge real-time serial-communication stm32 stm32-arduino stm32-with-printf stm32cubeide stm32f103 timing uart usb-cdc

Last synced: 17 days ago
JSON representation

Created BasicTools library for anyone wish to use STM32F103 for their project with arduino style interface

Awesome Lists containing this project

README

        

```markdown
# πŸš€ ArduinoMimicSTM32: Bridge Your Projects with STM32F103! 🌟

![ArduinoMimicSTM32](https://img.shields.io/badge/ArduinoMimicSTM32-v1.0.0-blue?style=flat&logo=github)

Welcome to the **ArduinoMimicSTM32** repository! This project aims to provide a library for developers who want to harness the power of the STM32F103 microcontroller using an Arduino-like interface. Whether you're a hobbyist or a professional, this library simplifies your development process, making it more accessible and efficient.

## πŸ“š Overview

The **BasicTools library** allows you to utilize STM32F103 in a familiar way, making your transition from Arduino smoother. With this library, you can quickly set up real-time communication protocols, use DMA, and implement UART and USB CDC features effortlessly.

## 🎯 Key Features

- **Arduino-style Interface**: Enjoy a straightforward interface similar to Arduino.
- **DMA Support**: Optimize your data transfer with Direct Memory Access.
- **printf Functionality**: Use familiar printing functions for debugging.
- **Real-time Communication**: Implement real-time protocols with ease.
- **UART Communication**: Engage in serial communication effortlessly.
- **USB CDC Support**: Utilize USB communication for your projects.

## πŸ“¦ Installation

To get started with the ArduinoMimicSTM32 library, follow these steps:

1. Clone this repository:
```bash
git clone https://github.com/pandyaparth2407/ArduinoMimicSTM32.git
```

2. Navigate to the cloned directory:
```bash
cd ArduinoMimicSTM32
```

3. Open the project in your favorite IDE (STM32CubeIDE recommended).

4. Build and upload the project to your STM32F103 board.

5. Check the **Releases** section for the latest compiled binaries or updates.

## πŸ”— Download

You can find the latest releases of the library [here](https://github.com/pandyaparth2407/ArduinoMimicSTM32/releases). Download the necessary files and execute them in your development environment.

## πŸ“œ Usage

### Initialization

To initialize the library, include the header file in your project:

```cpp
#include "BasicTools.h"
```

Create an instance of the class:

```cpp
BasicTools bt;
```

### Setup Function

In your `setup()` function, initialize the library:

```cpp
void setup() {
bt.begin(9600); // Initialize with baud rate
}
```

### Loop Function

In your `loop()`, you can now use the library functions:

```cpp
void loop() {
bt.print("Hello, STM32!");
delay(1000);
}
```

## βš™οΈ Topics Covered

This repository tackles several essential topics related to STM32F103 development, including:

- **Arduino**: Emulating the Arduino environment for STM32.
- **DMA**: Managing memory transfers efficiently.
- **printf**: Utilizing standard output functions for easy debugging.
- **Protocol Bridge**: Setting up communication between devices.
- **Real-time**: Handling time-sensitive operations.
- **Serial Communication**: Interfacing with various serial devices.
- **STM32**: Working with STM32F103 microcontroller.
- **STM32 with printf**: Using printf for easier debugging.
- **STM32CubeIDE**: Developing with STM32CubeIDE environment.
- **Timing**: Managing timing for tasks and delays.
- **UART**: Understanding and using Universal Asynchronous Receiver-Transmitter.
- **USB CDC**: Implementing USB communication.

## 🌐 Contributing

We welcome contributions from the community! If you wish to contribute, please follow these steps:

1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature/YourFeature
```
3. Make your changes.
4. Commit your changes:
```bash
git commit -m "Add Your Feature"
```
5. Push to the branch:
```bash
git push origin feature/YourFeature
```
6. Create a pull request.

## 🀝 Community

Join our community of developers! Share your projects, ideas, and feedback. Engage with others who are also working with STM32 and Arduino. Connect on forums, Discord, or social media to discuss tips and tricks.

## πŸ“– Documentation

For detailed documentation, refer to the [Wiki](https://github.com/pandyaparth2407/ArduinoMimicSTM32/wiki). You'll find guides, examples, and best practices to get the most out of the BasicTools library.

## πŸ”§ Examples

Here are some example projects using the ArduinoMimicSTM32 library:

### Example 1: Simple Serial Communication

This example demonstrates how to send data over UART.

```cpp
#include "BasicTools.h"

BasicTools bt;

void setup() {
bt.begin(9600);
}

void loop() {
bt.print("Sending data...");
delay(1000);
}
```

### Example 2: USB CDC Communication

Implement USB communication to send data to your PC.

```cpp
#include "BasicTools.h"

BasicTools bt;

void setup() {
bt.beginUSB();
}

void loop() {
bt.print("USB data transmission...");
delay(2000);
}
```

## πŸ› οΈ Support

For support, open an issue in the repository. Provide details about the problem you’re facing. We’ll try our best to help you resolve it promptly.

## πŸŽ‰ Acknowledgments

We appreciate the contributions and support from the open-source community. Special thanks to the developers who inspire and motivate us to innovate.

## πŸ”” License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

### πŸš€ Get Started Today!

With ArduinoMimicSTM32, you can elevate your projects and make the most of STM32F103. Don't hesitate to explore the library and create something amazing!

For updates, check our [Releases](https://github.com/pandyaparth2407/ArduinoMimicSTM32/releases) section.

Let's build something great together! 🌟
```