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

105 lines
8.2 KiB
TeX
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.

\chapter{My\+Libs }
\hypertarget{index}{}\label{index}\index{MyLibs@{MyLibs}}
\hypertarget{index_overview}{}\doxysection{\texorpdfstring{Обзор}{Обзор}}\label{index_overview}
My\+Libs -\/ это набор библиотек для удобной работы с периферией микроконтроллеров STM32.\hypertarget{index_features}{}\doxysubsection{\texorpdfstring{Основные возможности}{Основные возможности}}\label{index_features}
\hypertarget{index_utils_module}{}\doxysubsubsection{\texorpdfstring{Общие утилиты \protect\doxylink{group___m_y_l_i_b_s___d_e_f_i_n_e_s}{General Defines}}{Общие утилиты {General Defines}}}\label{index_utils_module}
\begin{DoxyItemize}
\item Битовый доступ к регистрам через union
\item Трекеры для статистики и отладки
\item Макросы для задержек и утилит
\item Поддержка Free\+RTOS
\end{DoxyItemize}\hypertarget{index_trace_module}{}\doxysubsubsection{\texorpdfstring{Трассировка \protect\doxylink{group___t_r_a_c_e}{Trace defines}}{Трассировка {Trace defines}}}\label{index_trace_module}
\begin{DoxyItemize}
\item Serial трассировка через SWO и RTT
\item GPIO трассировка для отладки
\item Сохранение логов в Flash память
\item Обработка Hard\+Fault с сохранением контекста
\end{DoxyItemize}\hypertarget{index_gpio_module}{}\doxysubsubsection{\texorpdfstring{Модуль GPIO \protect\doxylink{group___m_y___l_i_b_s___g_p_i_o}{GPIO Tools}}{Модуль GPIO {GPIO Tools}}}\label{index_gpio_module}
\begin{DoxyItemize}
\item Управление светодиодами (включение/выключение, моргание, плавное затухание)
\item Работа с кнопками (чтение состояния, фильтрация дребезга)
\item Инициализация портов и тактирования
\item Поддержка альтернативных функций
\end{DoxyItemize}\hypertarget{index_tim_module}{}\doxysubsubsection{\texorpdfstring{Модуль таймеров \protect\doxylink{group___m_y___l_i_b_s___t_i_m}{TIM Tools}}{Модуль таймеров {TIM Tools}}}\label{index_tim_module}
\begin{DoxyItemize}
\item Базовая инициализация таймеров
\item Режимы прерываний
\item Формирование задержек (блокирующие и неблокирующие)
\item Работа с энкодерами (чтение положения, обработка кнопок)
\item Настройка ШИМ и Output Compare
\end{DoxyItemize}\hypertarget{index_structure}{}\doxysubsection{\texorpdfstring{Структура проекта}{Структура проекта}}\label{index_structure}
\begin{DoxyCode}{0}
\DoxyCodeLine{├──\ inc/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Заголовочные\ файлы}
\DoxyCodeLine{\ \ \ ├──\ mylibs\_include.h\ \ \ \ \ \#\ Главный\ include\ файл}
\DoxyCodeLine{\ \ \ ├──\ mylibs\_config.h\ \ \ \ \ \ \#\ Конфигурация\ библиотек}
\DoxyCodeLine{\ \ \ ├──\ mylibs\_defs.h\ \ \ \ \ \ \ \ \#\ Общие\ определения\ и\ макросы}
\DoxyCodeLine{\ \ \ ├──\ bit\_access.h\ \ \ \ \ \ \ \ \ \#\ Битовый\ доступ\ к\ регистрам}
\DoxyCodeLine{\ \ \ ├──\ trackers.h\ \ \ \ \ \ \ \ \ \ \ \#\ Трекеры\ для\ отладки}
\DoxyCodeLine{\ \ \ ├──\ trace.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Трассировка\ и\ логирование}
\DoxyCodeLine{\ \ \ ├──\ general\_gpio.h\ \ \ \ \ \ \ \#\ Работа\ с\ GPIO}
\DoxyCodeLine{\ \ \ └──\ general\_tim.h\ \ \ \ \ \ \ \ \#\ Работа\ с\ таймерами}
\DoxyCodeLine{└──\ src/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\ Исходные\ файлы}
\DoxyCodeLine{\ \ \ \ ├──\ general\_gpio.c\ \ \ \ \ \ \ \#\ Реализация\ GPIO}
\DoxyCodeLine{\ \ \ \ └──\ general\_tim.c\ \ \ \ \ \ \ \ \#\ Реализация\ TIM}
\end{DoxyCode}
\hypertarget{index_usage_basic}{}\doxysubsection{\texorpdfstring{Использование}{Использование}}\label{index_usage_basic}
Инструкция по подключению\+:
\begin{DoxyEnumerate}
\item Настройте конфигурацию \doxylink{group___m_y_l_i_b_s___c_o_n_f_i_g}{Configs} в \doxylink{mylibs__config_8h}{mylibs\+\_\+config.\+h}
\item Подключите главный заголовочный файл\+:
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{mylibs__include_8h}{mylibs\_include.h}}"{}}}
\end{DoxyCode}
\item Используйте нужные модули в своем коде
\end{DoxyEnumerate}\hypertarget{index_gpio_example}{}\doxysubsubsection{\texorpdfstring{Пример работы с GPIO}{Пример работы с GPIO}}\label{index_gpio_example}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ Инициализация\ светодиода}}
\DoxyCodeLine{MX\_GPIO\_Init();}
\DoxyCodeLine{\mbox{\hyperlink{struct_g_p_i_o___l_e_d_type_def}{GPIO\_LEDTypeDef}}\ led;}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gac936453c7a0841c0b17bcfdae4958084}{GPIO\_LED\_Init}}(\&led,\ GPIOA,\ GPIO\_PIN\_5,\ 1);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Включение\ светодиода}}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_ga4b9572949326b050694cd55d0a7e5f6c}{GPIO\_LED\_On}}(\&led);}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Запуск\ моргания}}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gaf22f44ecaf6a1932b47edc5a845b03a9}{GPIO\_LED\_Blink\_Start}}(\&led,\ 500);\ \textcolor{comment}{//\ Период\ 500\ мс}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ В\ основном\ цикле}}
\DoxyCodeLine{\textcolor{keywordflow}{while}\ (1)\ \{}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___l_e_d_s_gad6e6189824406c4d472b6340c7f19bb2}{GPIO\_LED\_Dynamic\_Handle}}(\&led);}
\DoxyCodeLine{\}}
\end{DoxyCode}
\hypertarget{index_tim_example}{}\doxysubsubsection{\texorpdfstring{Пример работы с таймером}{Пример работы с таймером}}\label{index_tim_example}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{comment}{//\ Настройка\ таймера}}
\DoxyCodeLine{\mbox{\hyperlink{struct_t_i_m___settings_type_def}{TIM\_SettingsTypeDef}}\ tim\_settings\ =\ \{0\};}
\DoxyCodeLine{tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c}{htim}}.Instance\ =\ TIM2;}
\DoxyCodeLine{tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_a7073358fd3a722687eb85238ab570014}{sTimAHBFreqMHz}}\ =\ SystemCoreClock;}
\DoxyCodeLine{tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_a58da1b4c0f6d12d7d9fb2f170b9b9e6e}{sTickBaseUS}}\ =\ \mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25}{TIM\_TickBase\_1MS}};}
\DoxyCodeLine{tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_af6057ff3f60f5e01b41d4a347b79a5e4}{sTimFreqHz}}\ =\ 1000;\ \textcolor{comment}{//\ 1\ кГц}}
\DoxyCodeLine{tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_ab90e370c3edda88e76583293c250d2b0}{sTimMode}}\ =\ TIM\_IT\_CONF;}
\DoxyCodeLine{}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_ga7044214f24a9868ba7e1650b55e639ec}{TIM\_Base\_Init}}(\&tim\_settings);}
\DoxyCodeLine{HAL\_TIM\_Base\_Start(\&tim\_settings.\mbox{\hyperlink{struct_t_i_m___settings_type_def_ada49efdbd35a8e442c3cff630d42f34c}{htim}});}
\end{DoxyCode}
\hypertarget{index_dependencies}{}\doxysubsection{\texorpdfstring{Зависимости}{Зависимости}}\label{index_dependencies}
\begin{DoxyItemize}
\item HAL библиотека STM32
\item SEGGER RTT (опционально, для RTT трассировки)
\item Free\+RTOS (опционально, для Free\+RTOS задержек)
\end{DoxyItemize}