STM32_ExtendedLibs/MyLibsGeneral/Inc/mylibs_include.h
Razvalyaev 9d720767b0 Доработал модуль TIM (с точки зрения документции. Код не проверен)
Доработна документация в целом
	- добавелн main page
	- исправлены ошибки в шапках и коментах
	- добавлен граф инклюдов
2025-10-19 11:55:12 +03:00

184 lines
6.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
**************************************************************************
* @file mylibs_include.h
* @brief Заголочный файл для всех библиотек
**************************************************************************
* @details
Здесь нужно собрать библиотеки и дефайны, которые должны быть видны во всем проекте,
чтобы не подключать 100 инклюдов в каждом ".c" файле
**************************************************************************
* @defgroup MYLIBS_ALL My Libs
* @brief Все используемые MyLibs библиотеки
* @details
Для подключения библиотеки необходимо:
- Сконфигурировать mylibs_config.h:
- Подключить заголовочный файл HAL библиотеки конкретного МК (напр. stm32f4xx_hal.h)
- Подключить другие заголовочные файлы которые общие для всего проекта и должны быть видны
-
- Подключить mylibs_include.h туда, где необходим доступ к библиотекам.
* @defgroup MYLIBS_PERIPHERAL Peripheral
* @ingroup MYLIBS_ALL
* @brief Модули для управления периферией
*
*************************************************************************/
#ifndef __MYLIBS_INCLUDE_H_
#define __MYLIBS_INCLUDE_H_
#include "mylibs_defs.h"
#ifdef ARM_MATH_CM4
#include "arm_math.h"
#endif
#ifdef INCLUDE_BIT_ACCESS_LIB
#include "bit_access.h"
#endif
#ifdef INCLUDE_TRACKERS_LIB
#include "trackers.h"
#endif
#ifdef INCLUDE_TRACE_LIB
#include "trace.h"
#endif
#ifdef INCLUDE_GENERAL_PERIPH_LIBS
#include "general_flash.h"
#include "general_gpio.h"
#ifdef HAL_SPI_MODULE_ENABLED
#include "general_spi.h"
#endif
#ifdef HAL_UART_MODULE_ENABLED
#include "general_uart.h"
#endif
#ifdef HAL_TIM_MODULE_ENABLED
#include "general_tim.h"
#endif
#endif //INCLUDE_GENERAL_PERIPH_LIBS
/////////////////////////---USER SETTINGS---/////////////////////////
// user includes
// user settings
/////////////////////////---USER SETTINGS---/////////////////////////
#endif // __MYLIBS_INCLUDE_H_
/**
@mainpage
@section overview Обзор
MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
@subsection features Основные возможности
@subsubsection utils_module Общие утилиты @ref MYLIBS_DEFINES
- Битовый доступ к регистрам через union
- Трекеры для статистики и отладки
- Макросы для задержек и утилит
- Поддержка FreeRTOS
@subsubsection trace_module Трассировка @ref TRACE
- Serial трассировка через SWO и RTT
- GPIO трассировка для отладки
- Сохранение логов в Flash память
- Обработка HardFault с сохранением контекста
@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO
- Управление светодиодами (включение/выключение, моргание, плавное затухание)
- Работа с кнопками (чтение состояния, фильтрация дребезга)
- Инициализация портов и тактирования
- Поддержка альтернативных функций
@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM
- Базовая инициализация таймеров
- Режимы прерываний
- Формирование задержек (блокирующие и неблокирующие)
- Работа с энкодерами (чтение положения, обработка кнопок)
- Настройка ШИМ и Output Compare
@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 задержек)
*/