Loading...
Searching...
No Matches
MyLibs

# Обзор

MyLibs - это набор библиотек для удобной работы с STM32.

Актуальная версия

## Основные возможности

### Общие утилиты (General Tools)

- Макросы для задержек и утилит (Delays defines и Utils defines)
- Трекеры для статистики и отладки (Trackers defines и Trace defines)
- Эволюционный алгоритм для оптимизации параметров (Evolve optimizer)
- Битовый доступ к регистрам через union (Bit access defines)

### Трассировка Trace defines

- Serial трассировка через SWO и RTT (Serial trace defines)
- GPIO трассировка для отладки (GPIO trace defines)
- Сохранение логов в Flash память (Flash RTT Buffer)
- Обработка HardFault с сохранением контекста (Hardfault trace defines)

### Модуль GPIO GPIO Tools

- Инициализация портов и тактирования (General tools)
- Управление светодиодами (включение/выключение, моргание, плавное затухание) (LED tools)
- Работа с кнопками (чтение состояния, фильтрация дребезга) (Switch tools)

### Модуль таймеров TIM Tools

- Базовая инициализация таймеров (General tools)
- Формирование задержек (блокирующие и неблокирующие) (Delay tools)
- Работа с энкодерами (чтение положения, обработка кнопок) (Encoder tools)
- Настройка ШИМ и Output Compare (PWM/OC Channels tools)

### Модуль UART UART Tools

- Базовая инициализация UART и его пинов одной функцией (UART_Base_Init)

### Модуль SPI SPI Tools

- Базовая инициализация SPI и пинов одной функцией (SPI_Base_Init)

## Структура проекта

ProjectRoot/
├── MyLibs/ # Общие библиотеки, независимые от платформы (или почти)
│ ├── inc/
│ │ ├── mylibs_include.h # Главный include файл
│ │ ├── mylibs_config.h # Конфигурация библиотек
│ │ ├── mylibs_defs.h # Общие определения и макросы
│ │ ├── bit_access.h # Битовый доступ к регистрам
│ │ ├── evolve_optimizer.h # Оптимизатор (генетический алгоритм)
│ │ ├── trackers.h # Трекеры для отладки
│ │ └── trace.h # Трассировка и логирование
│ └── src/
│
├──RTT # Библиотека RTT
│ ├── __SEGGER_RTT_Conf.h # Конфигурационный файл RTT
│ ├── SEGGER_RTT.c # Основной модуль RTT
│ ├── SEGGER_RTT.h # Основной заголовок RTT
│ ├── SEGGER_RTT_ASM_ARMv7M.S # Ассемблерная оптимизация для ARMv7M
│ └── SEGGER_RTT_printf.c # Реализация printf() через RTT
│
└── STM32_General # Работа с периферией STM32
├── inc/
│ ├── general_gpio.h # Работа с GPIO
│ ├── general_spi.h # Работа с SPI
│ ├── general_tim.h # Работа с таймерами
│ └── general_uart.h # Работа с UART
└── src/
├── general_gpio.c # Реализация GPIO
├── general_spi.c # Реализация SPI
├── general_tim.c # Реализация TIM
└── general_uart.c # Реализация UART

## Использование

Инструкция по подключению:

1. Настройте конфигурацию Configs в mylibs_config.h
2. Подключите главный заголовочный файл:
   #include "mylibs_include.h"
   mylibs_include.h
   Заголочный файл для всех библиотек
3. Используйте нужные модули в своем коде. Примеры использования приведены в соответствующей теме