STM32_ExtendedLibs/Doc/html/general__uart_8h_source.html
Razvalyaev 141ea6bac9 Переструктурирование:
- MyLibs - максимально платформонезависимые библиотеки (кроме разве что RTT)
- RTT
- STM32_General - библиотеки для периферии stm32
2025-10-21 05:03:54 +03:00

287 lines
37 KiB
HTML
Raw Permalink 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.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MyLibs: E:/.WORK/STM32/STM32_ExtendedLibs/STM32_General/Inc/general_uart.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<script type="text/javascript" src="darkmode_toggle.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">MyLibs<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Расширенные библиотеки для STM32</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.14.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('general__uart_8h_source.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">general_uart.h</div></div>
</div><!--header-->
<div class="contents">
<a href="general__uart_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/** </span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file general_uart.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для модуля инициализации UART.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">**************************************************************************</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @defgroup MY_LIBS_UART UART Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup MYLIBS_PERIPHERAL</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Функции и макросы для удобной работы с UART.</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">Модуль предоставляет функции для базовой инициализации UART</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"></span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"></span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">@par Пример использования:</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">@code</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">// Структура настроек UART</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">UART_SettingsTypeDef uart2Settings;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"></span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">void UART2_Init(void)</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">{</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> // Настройка UART2 с 115200 бод, 8 бит, 1 стоп-бит, без паритета</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> uart2Settings.huart.Instance = USART2;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> uart2Settings.huart.Init.BaudRate = 115200;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> uart2Settings.huart.Init.WordLength = UART_WORDLENGTH_8B;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> uart2Settings.huart.Init.StopBits = UART_STOPBITS_1;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> uart2Settings.huart.Init.Parity = UART_PARITY_NONE;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> uart2Settings.huart.Init.Mode = UART_MODE_TX_RX;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> uart2Settings.huart.Init.HwFlowCtl = UART_HWCONTROL_NONE;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> uart2Settings.huart.Init.OverSampling = UART_OVERSAMPLING_16;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"></span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> // Настройка GPIO</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> uart2Settings.GPIOx = GPIOA;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> uart2Settings.GPIO_PIN_TX = GPIO_PIN_2;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> uart2Settings.GPIO_PIN_RX = GPIO_PIN_3;</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"></span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> // DMA не используется в этом примере</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> uart2Settings.DMAChannel = NULL;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> uart2Settings.DMA_CHANNEL_X = 0;</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"></span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> // Инициализация UART</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> if(UART_Base_Init(&amp;uart2Settings) != HAL_OK)</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> {</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> // Обработка ошибки</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> Error_Handler();</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> }</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">}</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"></span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">* @note Требуется подключение модуля UART в библиотеке HAL </span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">@code </span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">#define HAL_UART_MODULE_ENABLED</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">* @{</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor">#ifndef __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#define __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"></span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">/** </span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> * @addtogroup UART_INIT Init defines</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @ingroup MY_LIBS_UART</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * @brief Настройка UART</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> */</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89"> 65</a></span><span class="preprocessor">#define HAL_UART_MODULE_ENABLED </span><span class="comment">///&lt; Включение HAL UART</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b"> 67</a></span><span class="preprocessor">#define USE_USART1 </span><span class="comment">///&lt; Включить USART1 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d"> 68</a></span><span class="preprocessor">#define USE_USART2 </span><span class="comment">///&lt; Включить USART2 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976"> 69</a></span><span class="preprocessor">#define USE_USART3 </span><span class="comment">///&lt; Включить USART3 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7"> 70</a></span><span class="preprocessor">#define USE_UART4 </span><span class="comment">///&lt; Включить UART4 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340"> 71</a></span><span class="preprocessor">#define USE_UART5 </span><span class="comment">///&lt; Включить UART5 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868"> 72</a></span><span class="preprocessor">#define USE_USART6 </span><span class="comment">///&lt; Включить USART6 в @ref UART_MspInit</span><span class="comment"></span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">/** UART_INIT</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> */</span><span class="preprocessor"></span><span class="comment"></span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"></span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="comment"></span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"></span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">/**</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> * @brief Структура настроек UART</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @details Содержит все необходимые параметры для инициализации UART,</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * включая GPIO и DMA.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00096" data-start="{" data-end="};">
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html"> 96</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>{</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea"> 98</a></span> UART_HandleTypeDef <a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>; <span class="comment">///&lt; HAL handle UART</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f"> 100</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">GPIOx</a>; <span class="comment">///&lt; Порт для UART</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49"> 101</a></span> uint16_t <a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">GPIO_PIN_RX</a>; <span class="comment">///&lt; Пин приема</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef"> 102</a></span> uint16_t <a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">GPIO_PIN_TX</a>; <span class="comment">///&lt; Пин передачи</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613"> 104</a></span> DMA_Stream_TypeDef *<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">DMAChannel</a>; <span class="comment">///&lt; Канал DMA (NULL если не нужен)</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19"> 105</a></span> uint32_t <a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19">DMA_CHANNEL_X</a>; <span class="comment">///&lt; Номер канала DMA (0 если не нужен)</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>} <a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a>;</div>
</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"></span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"></span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment">/* Инициализация UART с использованием структуры настроек */</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#gab9f07396b778505c934143e89953e154">UART_Base_Init</a>(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment">/* Проверка корректности структуры настроек UART */</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">UART_Check_Init_Struct</a>(<a class="code hl_struct" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/* Инициализация тактирования и прерываний для выбранного UART */</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>(UART_HandleTypeDef *huart);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">/* Деинициализация тактирования и прерываний для выбранного UART */</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">UART_MspDeInit</a>(UART_HandleTypeDef *huart);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment"></span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment">/** </span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * @cond UART_INTERNAL</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> */</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment">/* Настройка GPIO для UART */</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="keywordtype">void</span> <a class="code hl_function" href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b">UART_GPIO_Init</a>(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment">/* Настройка DMA для UART */</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keywordtype">void</span> <a class="code hl_function" href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05">UART_DMA_Init</a>(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor">#ifndef __USER_LINKDMA</span><span class="comment"></span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment">/** </span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> * @brief Аналог HAL макроса для привязки DMA к UART.</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> * @note @ref __HAL_LINKDMA.</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor">#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor">do{ \</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">(__HANDLE__)-&gt;__PPP_DMA_FIELD__ = (__DMA_HANDLE__); \</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">(__DMA_HANDLE__)-&gt;Parent = (__HANDLE__);} while(0U)</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment"></span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment">/** @endcond */</span><span class="comment"></span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor">#endif </span><span class="comment">// __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"></span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment">/** MY_LIBS_UART</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> */</span></div>
<div class="ttc" id="ageneral__uart_8c_html_a3abae05bbde5f3b402bf18ca13dc6a0b"><div class="ttname"><a href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b">UART_GPIO_Init</a></div><div class="ttdeci">void UART_GPIO_Init(GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX)</div><div class="ttdoc">Инициализация GPIO для UART.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00069">general_uart.c:69</a></div></div>
<div class="ttc" id="ageneral__uart_8c_html_ad82d0cbd19151675135fd75dad315d05"><div class="ttname"><a href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05">UART_DMA_Init</a></div><div class="ttdeci">void UART_DMA_Init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</div><div class="ttdoc">Инициализация DMA для UART.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00109">general_uart.c:109</a></div></div>
<div class="ttc" id="agroup___m_y___l_i_b_s___u_a_r_t_html_ga2a22e46ecb9e04b2ce197a0e9c09044a"><div class="ttname"><a href="group___m_y___l_i_b_s___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">UART_Check_Init_Struct</a></div><div class="ttdeci">HAL_StatusTypeDef UART_Check_Init_Struct(UART_SettingsTypeDef *suart)</div><div class="ttdoc">Проверка корректности структуры инициализации UART.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00364">general_uart.c:364</a></div></div>
<div class="ttc" id="agroup___m_y___l_i_b_s___u_a_r_t_html_ga93ed6ceef4e3b5e7885786125cce93bc"><div class="ttname"><a href="group___m_y___l_i_b_s___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">UART_MspDeInit</a></div><div class="ttdeci">void UART_MspDeInit(UART_HandleTypeDef *huart)</div><div class="ttdoc">Деинициализация тактирования и прерываний UART.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00267">general_uart.c:267</a></div></div>
<div class="ttc" id="agroup___m_y___l_i_b_s___u_a_r_t_html_gab9313fd2f9fc6873ca6bfbc5b96edbbb"><div class="ttname"><a href="group___m_y___l_i_b_s___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a></div><div class="ttdeci">void UART_MspInit(UART_HandleTypeDef *huart)</div><div class="ttdoc">Настройка тактирования и прерываний UART.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00146">general_uart.c:146</a></div></div>
<div class="ttc" id="agroup___m_y___l_i_b_s___u_a_r_t_html_gab9f07396b778505c934143e89953e154"><div class="ttname"><a href="group___m_y___l_i_b_s___u_a_r_t.html#gab9f07396b778505c934143e89953e154">UART_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef UART_Base_Init(UART_SettingsTypeDef *suart)</div><div class="ttdoc">Инициализация UART с помощью структуры UART_SettingsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="general__uart_8c_source.html#l00032">general_uart.c:32</a></div></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a></div><div class="ttdoc">Структура настроек UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00096">general_uart.h:97</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_a15ce92b03f7f189bfbe1ab88a5f94d19"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19">UART_SettingsTypeDef::DMA_CHANNEL_X</a></div><div class="ttdeci">uint32_t DMA_CHANNEL_X</div><div class="ttdoc">Номер канала DMA (0 если не нужен)</div><div class="ttdef"><b>Definition</b> <a href="#l00105">general_uart.h:105</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_a1ecc9ac6a1d2747ade56770cbab6a613"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">UART_SettingsTypeDef::DMAChannel</a></div><div class="ttdeci">DMA_Stream_TypeDef * DMAChannel</div><div class="ttdoc">Канал DMA (NULL если не нужен)</div><div class="ttdef"><b>Definition</b> <a href="#l00104">general_uart.h:104</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_a3fba2b52788fe453348b5d92ed52ba49"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">UART_SettingsTypeDef::GPIO_PIN_RX</a></div><div class="ttdeci">uint16_t GPIO_PIN_RX</div><div class="ttdoc">Пин приема</div><div class="ttdef"><b>Definition</b> <a href="#l00101">general_uart.h:101</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_a5f1babfcfb436cd77f5614253c0a5bef"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">UART_SettingsTypeDef::GPIO_PIN_TX</a></div><div class="ttdeci">uint16_t GPIO_PIN_TX</div><div class="ttdoc">Пин передачи</div><div class="ttdef"><b>Definition</b> <a href="#l00102">general_uart.h:102</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_accf2c9448a3ea8eb3b8c25a569276fea"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">UART_SettingsTypeDef::huart</a></div><div class="ttdeci">UART_HandleTypeDef huart</div><div class="ttdoc">HAL handle UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00098">general_uart.h:98</a></div></div>
<div class="ttc" id="astruct_u_a_r_t___settings_type_def_html_af6f9910d065bae715cdb4a1024143a8f"><div class="ttname"><a href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">UART_SettingsTypeDef::GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * GPIOx</div><div class="ttdoc">Порт для UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00100">general_uart.h:100</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_57feeba75fefbd1a9c832b76e3bce520.html">STM32_General</a></li><li class="navelem"><a href="dir_2cad7b5fa94233a09111fd73c6202518.html">Inc</a></li><li class="navelem"><a href="general__uart_8h.html">general_uart.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>