Добавлен модуль для оптимизации по эволюционному алгоритму
This commit is contained in:
104
MyLibsGeneral/mainpage.h
Normal file
104
MyLibsGeneral/mainpage.h
Normal file
@@ -0,0 +1,104 @@
|
||||
|
||||
/**
|
||||
@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 задержек)
|
||||
*/
|
||||
Reference in New Issue
Block a user