\doxysubsection{Switch tools }
\hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}{}\label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}\index{Switch tools@{Switch tools}}


Функции для работы с GPIO, как с кнопкой  


Collaboration diagram for Switch tools\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=252pt]{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h}
\end{center}
\end{figure}
\doxysubsubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}}
\begin{DoxyCompactList}\small\item\em Структура кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
HAL\+\_\+\+Status\+Type\+Def \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\+\_\+\+Switch\+\_\+\+Init}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}sw, GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}GPIOx, uint32\+\_\+t GPIO\+\_\+\+PIN\+\_\+X, uint8\+\_\+t SW\+\_\+\+On\+\_\+\+State)
\begin{DoxyCompactList}\small\item\em Инициализировать кнопку (структуру кнопки) \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70}{GPIO\+\_\+\+Read\+\_\+\+Switch}} (\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}swstart)
\begin{DoxyCompactList}\small\item\em Считать состоянии кнопки \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
Функции для работы с GPIO, как с кнопкой 

\begin{DoxyParagraph}{Пример использования\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{MX\_GPIO\_Init();\ \textcolor{comment}{//\ инициализация\ пина\ аппаратная}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Инициализация\ кнопки\ на\ порте\ GPIOB,\ пин\ 0,\ активный\ уровень\ 1}}
\DoxyCodeLine{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\_SwitchTypeDef}}\ sw1;}
\DoxyCodeLine{\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}{GPIO\_Switch\_Init}}(\&sw1,\ GPIOB,\ GPIO\_PIN\_0,\ 1);\ \textcolor{comment}{//\ или\ дефайн\ SW\_ON/SW\_OFF}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{//\ Считываем\ состояние\ кнопки}}
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70}{GPIO\_Read\_Switch}}(\&sw1))}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Кнопка\ нажата}}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_gaf2e697ac60e05813d45ea2c9c9e79c25}{LED\_ON}}();}
\DoxyCodeLine{\}}
\DoxyCodeLine{\textcolor{keywordflow}{else}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \textcolor{comment}{//\ Кнопка\ отжата}}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group___g_p_i_o___i_n_i_t_ga80700bb63bd56ebabbb4728aa433fd29}{LED\_OFF}}();}
\DoxyCodeLine{\}}

\end{DoxyCode}
 
\end{DoxyParagraph}


\label{doc-func-members}
\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_doc-func-members}
\doxysubsubsection{Function Documentation}
\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7}\index{Switch tools@{Switch tools}!GPIO\_Switch\_Init@{GPIO\_Switch\_Init}}
\index{GPIO\_Switch\_Init@{GPIO\_Switch\_Init}!Switch tools@{Switch tools}}
\doxysubsubsubsection{\texorpdfstring{GPIO\_Switch\_Init()}{GPIO\_Switch\_Init()}}
{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_gacafee0e68877f2b25df843356871d1f7} 
HAL\+\_\+\+Status\+Type\+Def GPIO\+\_\+\+Switch\+\_\+\+Init (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{, }\item[{GPIO\+\_\+\+Type\+Def \texorpdfstring{$\ast$}{*}}]{GPIOx}{, }\item[{uint32\+\_\+t}]{GPIO\+\_\+\+PIN\+\_\+X}{, }\item[{uint8\+\_\+t}]{SW\+\_\+\+Active\+Level}{}\end{DoxyParamCaption})}



Инициализировать кнопку (структуру кнопки) 


\begin{DoxyParams}{Parameters}
{\em sw} & Указатель на структуру кнопки \\
\hline
{\em GPIOx} & Указатель на структуру порта для кнопки \\
\hline
{\em GPIO\+\_\+\+PIN\+\_\+X} & Пин для кнопки \\
\hline
{\em SW\+\_\+\+Active\+Level} & Состояния пина, когда кнопка нажата \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
HAL Status 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00258}{258}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.

\Hypertarget{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70}\index{Switch tools@{Switch tools}!GPIO\_Read\_Switch@{GPIO\_Read\_Switch}}
\index{GPIO\_Read\_Switch@{GPIO\_Read\_Switch}!Switch tools@{Switch tools}}
\doxysubsubsubsection{\texorpdfstring{GPIO\_Read\_Switch()}{GPIO\_Read\_Switch()}}
{\footnotesize\ttfamily \label{group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_ga960b24335b2026abcad126ab8c422d70} 
int GPIO\+\_\+\+Read\+\_\+\+Switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_g_p_i_o___switch_type_def}{GPIO\+\_\+\+Switch\+Type\+Def}} \texorpdfstring{$\ast$}{*}}]{sw}{}\end{DoxyParamCaption})}



Считать состоянии кнопки 


\begin{DoxyParams}{Parameters}
{\em sw} & Указатель на структуру кнопки \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
1 -\/ если кнопка нажата, 0 -\/ если отжата, -\/1 -\/ если ошибка
\end{DoxyReturn}
Функция включает в себя неблокирующую проверку на дребезг Т.\+е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки 

Definition at line \mbox{\hyperlink{general__gpio_8c_source_l00278}{278}} of file \mbox{\hyperlink{general__gpio_8c_source}{general\+\_\+gpio.\+c}}.

