104 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						||
/**
 | 
						||
@mainpage
 | 
						||
 | 
						||
@section overview Обзор
 | 
						||
MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
 | 
						||
 | 
						||
@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)
 | 
						||
 | 
						||
 | 
						||
@subsection structure Структура проекта
 | 
						||
 | 
						||
@code
 | 
						||
├── inc/                     # Заголовочные файлы
 | 
						||
│   ├── mylibs_include.h     # Главный include файл
 | 
						||
│   ├── mylibs_config.h      # Конфигурация библиотек
 | 
						||
│   ├── mylibs_defs.h        # Общие определения и макросы
 | 
						||
│   ├── bit_access.h         # Битовый доступ к регистрам
 | 
						||
│   ├── trackers.h           # Трекеры для отладки
 | 
						||
│   ├── trace.h              # Трассировка и логирование
 | 
						||
│   ├── general_gpio.h       # Работа с GPIO
 | 
						||
│   └── general_tim.h        # Работа с таймерами
 | 
						||
└── src/                     # Исходные файлы
 | 
						||
    ├── general_gpio.c       # Реализация GPIO
 | 
						||
    └── general_tim.c        # Реализация TIM
 | 
						||
@endcode
 | 
						||
 | 
						||
@subsection usage_basic Использование
 | 
						||
 | 
						||
Инструкция по подключению:
 | 
						||
 | 
						||
1. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h 
 | 
						||
 | 
						||
2. Подключите главный заголовочный файл:
 | 
						||
@code
 | 
						||
#include "mylibs_include.h"
 | 
						||
@endcode
 | 
						||
 | 
						||
3. Используйте нужные модули в своем коде
 | 
						||
 | 
						||
@subsubsection gpio_example Пример работы с GPIO
 | 
						||
 | 
						||
@code
 | 
						||
// Инициализация светодиода
 | 
						||
MX_GPIO_Init();
 | 
						||
GPIO_LEDTypeDef led;
 | 
						||
GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1);
 | 
						||
 | 
						||
// Включение светодиода
 | 
						||
GPIO_LED_On(&led);
 | 
						||
 | 
						||
// Запуск моргания
 | 
						||
GPIO_LED_Blink_Start(&led, 500); // Период 500 мс
 | 
						||
 | 
						||
// В основном цикле
 | 
						||
while (1) {
 | 
						||
GPIO_LED_Dynamic_Handle(&led);
 | 
						||
}
 | 
						||
@endcode
 | 
						||
 | 
						||
@subsubsection tim_example Пример работы с таймером
 | 
						||
 | 
						||
@code
 | 
						||
// Настройка таймера
 | 
						||
TIM_SettingsTypeDef tim_settings = {0};
 | 
						||
tim_settings.htim.Instance = TIM2;
 | 
						||
tim_settings.sTimAHBFreqMHz = SystemCoreClock;
 | 
						||
tim_settings.sTickBaseUS = TIM_TickBase_1MS;
 | 
						||
tim_settings.sTimFreqHz = 1000; // 1 кГц
 | 
						||
tim_settings.sTimMode = TIM_IT_CONF;
 | 
						||
 | 
						||
TIM_Base_Init(&tim_settings);
 | 
						||
HAL_TIM_Base_Start(&tim_settings.htim);
 | 
						||
@endcode
 | 
						||
 | 
						||
@subsection dependencies Зависимости
 | 
						||
 | 
						||
- HAL библиотека STM32
 | 
						||
- SEGGER RTT (опционально, для RTT трассировки)
 | 
						||
- FreeRTOS (опционально, для FreeRTOS задержек)
 | 
						||
 */ |