/*
 * Скачать HTML документацию можно здесь:
 * https://git.arktika.cyou/Razvalyaev/STM32_ExtendedLibs/archive/v0.02.zip
 */
/**
@mainpage
 
@section overview Обзор
MyLibs - это набор библиотек для удобной работы с STM32.
\htmlonly
Актуальная версия
\endhtmlonly
@subsection features Основные возможности
@subsubsection utils_module Общие утилиты (@ref MYLIBS_DEFINES)
- Макросы для задержек и утилит (@ref DELAYS_DEFINES и @ref UTILS_DEFINES)
- Трекеры для статистики и отладки  (@ref TRACKERS и @ref TRACE)
- Эволюционный алгоритм для оптимизации параметров  (@ref EVOLVE_OPTIMIZER)
- Битовый доступ к регистрам через union  (@ref BIT_ACCESS_DEFINES)
@subsubsection trace_module Трассировка @ref TRACE
- Serial трассировка через SWO и RTT (@ref TRACE_SERIAL)
- GPIO трассировка для отладки (@ref TRACE_GPIO)
- Сохранение логов в Flash память (@ref TRACE_RTT_FLASH)
- Обработка HardFault с сохранением контекста (@ref TRACE_HARDFAULT)
@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO
- Инициализация портов и тактирования (@ref MYLIBS_GPIO_GENERAL)
- Управление светодиодами (включение/выключение, моргание, плавное затухание) (@ref MYLIBS_GPIO_LEDS)
- Работа с кнопками (чтение состояния, фильтрация дребезга) (@ref MYLIBS_GPIO_SWITCH)
@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM
- Базовая инициализация таймеров (@ref MYLIBS_TIM_GENERAL)
- Формирование задержек (блокирующие и неблокирующие) (@ref MYLIBS_TIM_DELAY)
- Работа с энкодерами (чтение положения, обработка кнопок) (@ref MYLIBS_TIM_ENCODER)
- Настройка ШИМ и Output Compare (@ref MYLIBS_TIM_OC)
@subsubsection uart_module Модуль UART @ref MY_LIBS_UART
- Базовая инициализация UART и его пинов одной функцией (@ref UART_Base_Init)
@subsubsection spi_module Модуль SPI @ref MY_LIBS_SPI
- Базовая инициализация SPI и пинов одной функцией (@ref SPI_Base_Init)
@subsection structure Структура проекта
@code
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
@endcode
@subsection usage_basic Использование
Инструкция по подключению:
1. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h 
2. Подключите главный заголовочный файл:
@code
#include "mylibs_include.h"
@endcode
3. Используйте нужные модули в своем коде. Примеры использования приведены в соответствующей теме
*/