MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
mylibs_include.h
Go to the documentation of this file.
1/**
2**************************************************************************
3* @file mylibs_include.h
4* @brief Заголочный файл для всех библиотек
5**************************************************************************
6* @details
7Здесь нужно собрать библиотеки и дефайны, которые должны быть видны во всем проекте,
8чтобы не подключать 100 инклюдов в каждом ".c" файле
9**************************************************************************
10* @defgroup MYLIBS_ALL My Libs
11* @brief Все используемые MyLibs библиотеки
12* @details
13Для подключения библиотеки необходимо:
14- Сконфигурировать mylibs_config.h:
15 - Подключить заголовочный файл HAL библиотеки конкретного МК (напр. stm32f4xx_hal.h)
16 - Подключить другие заголовочные файлы которые общие для всего проекта и должны быть видны
17 -
18- Подключить mylibs_include.h туда, где необходим доступ к библиотекам.
19
20* @defgroup MYLIBS_PERIPHERAL Peripheral
21* @ingroup MYLIBS_ALL
22* @brief Модули для управления периферией
23*
24*************************************************************************/
25#ifndef __MYLIBS_INCLUDE_H_
26#define __MYLIBS_INCLUDE_H_
27
28#include "mylibs_defs.h"
29
30
31#ifdef ARM_MATH_CM4
32 #include "arm_math.h"
33#endif
34
35
36#ifdef INCLUDE_BIT_ACCESS_LIB
37#include "bit_access.h"
38#endif
39
40#ifdef INCLUDE_TRACKERS_LIB
41#include "trackers.h"
42#endif
43
44#ifdef INCLUDE_TRACE_LIB
45#include "trace.h"
46#endif
47
48
49
50#ifdef INCLUDE_GENERAL_PERIPH_LIBS
51
52#include "general_flash.h"
53#include "general_gpio.h"
54#ifdef HAL_SPI_MODULE_ENABLED
55#include "general_spi.h"
56#endif
57#ifdef HAL_UART_MODULE_ENABLED
58#include "general_uart.h"
59#endif
60#ifdef HAL_TIM_MODULE_ENABLED
61#include "general_tim.h"
62#endif
63
64#endif //INCLUDE_GENERAL_PERIPH_LIBS
65
66
67
68
69/////////////////////////---USER SETTINGS---/////////////////////////
70// user includes
71
72// user settings
73/////////////////////////---USER SETTINGS---/////////////////////////
74
75
76#endif // __MYLIBS_INCLUDE_H_
77
78/**
79@mainpage
80
81@section overview Обзор
82MyLibs - это набор библиотек для удобной работы с периферией микроконтроллеров STM32.
83
84@subsection features Основные возможности
85
86@subsubsection utils_module Общие утилиты @ref MYLIBS_DEFINES
87- Битовый доступ к регистрам через union
88- Трекеры для статистики и отладки
89- Макросы для задержек и утилит
90- Поддержка FreeRTOS
91
92@subsubsection trace_module Трассировка @ref TRACE
93
94- Serial трассировка через SWO и RTT
95- GPIO трассировка для отладки
96- Сохранение логов в Flash память
97- Обработка HardFault с сохранением контекста
98
99@subsubsection gpio_module Модуль GPIO @ref MY_LIBS_GPIO
100- Управление светодиодами (включение/выключение, моргание, плавное затухание)
101- Работа с кнопками (чтение состояния, фильтрация дребезга)
102- Инициализация портов и тактирования
103- Поддержка альтернативных функций
104
105@subsubsection tim_module Модуль таймеров @ref MY_LIBS_TIM
106
107- Базовая инициализация таймеров
108- Режимы прерываний
109- Формирование задержек (блокирующие и неблокирующие)
110- Работа с энкодерами (чтение положения, обработка кнопок)
111- Настройка ШИМ и Output Compare
112
113
114@subsection structure Структура проекта
115
116@code
117├── inc/ # Заголовочные файлы
118│ ├── mylibs_include.h # Главный include файл
119│ ├── mylibs_config.h # Конфигурация библиотек
120│ ├── mylibs_defs.h # Общие определения и макросы
121│ ├── bit_access.h # Битовый доступ к регистрам
122│ ├── trackers.h # Трекеры для отладки
123│ ├── trace.h # Трассировка и логирование
124│ ├── general_gpio.h # Работа с GPIO
125│ └── general_tim.h # Работа с таймерами
126└── src/ # Исходные файлы
127 ├── general_gpio.c # Реализация GPIO
128 └── general_tim.c # Реализация TIM
129@endcode
130
131@subsection usage_basic Использование
132
133Инструкция по подключению:
134
1351. Настройте конфигурацию @ref MYLIBS_CONFIG в @ref mylibs_config.h
136
1372. Подключите главный заголовочный файл:
138@code
139#include "mylibs_include.h"
140@endcode
141
1423. Используйте нужные модули в своем коде
143
144@subsubsection gpio_example Пример работы с GPIO
145
146@code
147// Инициализация светодиода
148MX_GPIO_Init();
149GPIO_LEDTypeDef led;
150GPIO_LED_Init(&led, GPIOA, GPIO_PIN_5, 1);
151
152// Включение светодиода
153GPIO_LED_On(&led);
154
155// Запуск моргания
156GPIO_LED_Blink_Start(&led, 500); // Период 500 мс
157
158// В основном цикле
159while (1) {
160GPIO_LED_Dynamic_Handle(&led);
161}
162@endcode
163
164@subsubsection tim_example Пример работы с таймером
165
166@code
167// Настройка таймера
168TIM_SettingsTypeDef tim_settings = {0};
169tim_settings.htim.Instance = TIM2;
170tim_settings.sTimAHBFreqMHz = SystemCoreClock;
171tim_settings.sTickBaseUS = TIM_TickBase_1MS;
172tim_settings.sTimFreqHz = 1000; // 1 кГц
173tim_settings.sTimMode = TIM_IT_CONF;
174
175TIM_Base_Init(&tim_settings);
176HAL_TIM_Base_Start(&tim_settings.htim);
177@endcode
178
179@subsection dependencies Зависимости
180
181- HAL библиотека STM32
182- SEGGER RTT (опционально, для RTT трассировки)
183- FreeRTOS (опционально, для FreeRTOS задержек)
184 */
Заголочный файл для дефайнов битового доступа.
Заголовочный файл для модуля инициализации портов и работы с ними.
Заголовочный файл для модуля инициализации таймеров и работы с ними.
Заголочный файл для дефайнов библиотеки MyLibsGeneral.
Заголочный файл для работы с трассировкой.
Заголочный файл для работы с трекерами Trackers defines.