STM32_ExtendedLibs/Doc/html/general__uart_8c_source.html
2025-10-21 03:44:50 +03:00

527 lines
70 KiB
HTML
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.

<!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/MyLibsGeneral/Src/general_uart.c 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_8c_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.c</div></div>
</div><!--header-->
<div class="contents">
<a href="general__uart_8c.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.c</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">Реализация функций для работы с UART:</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> - Инициализация UART и его линий RX/TX</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> - Настройка DMA для UART</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> - Настройка GPIO для UART</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> - Настройка NVIC и тактирования 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="preprocessor">#include &quot;<a class="code" href="general__uart_8h.html">general_uart.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="general__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">//------------------------UART INIT FUNCTIONS------------------------</span><span class="comment"></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"> * @brief Инициализация UART с помощью структуры UART_SettingsTypeDef.</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * @param suart Указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * @details </span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * Инициализирует UART и его GPIO и при необходимости DMA.</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * Настройка аналогична HAL_UART_Init </span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * suart.huart.Init...</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * @endcode </span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * но дополнительно надо прописать пины RX/TX @ref UART_SettingsTypeDef</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * suart-&gt;GPIOx, suart-&gt;GPIO_PIN_RX, suart-&gt;GPIO_PIN_TX</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * @endcode</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="group___m_y___l_i_b_s___u_a_r_t.html#gab9f07396b778505c934143e89953e154"> 32</a></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="l00033" name="l00033"></a><span class="lineno"> 33</span>{ <span class="comment">// function takes setting structure for init</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">UART_Check_Init_Struct</a>(suart) != HAL_OK)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>.Init.Mode = UART_MODE_TX_RX;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_function" href="group___m_y___l_i_b_s___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>(&amp;suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (HAL_UART_Init(&amp;suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>) != HAL_OK)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_define" href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a>();</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// init gpio from UARTSettings structure</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_function" href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b">UART_GPIO_Init</a>(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">GPIOx</a>, suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">GPIO_PIN_RX</a>, suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">GPIO_PIN_TX</a>);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> __HAL_UART_ENABLE_IT(&amp;suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>, UART_IT_IDLE);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// init dma from UARTSettings structure if need</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">if</span> (suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">DMAChannel</a> != 0)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_function" href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05">UART_DMA_Init</a>(&amp;suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>, suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>.hdmarx, suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">DMAChannel</a>, suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19">DMA_CHANNEL_X</a>);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>}</div>
</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"></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"> * @brief Инициализация GPIO для UART.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> * @param GPIOx Порт для настройки.</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * @param GPIO_PIN_RX Пин для приема.</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> * @param GPIO_PIN_TX Пин для передачи.</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="}">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b"> 69</a></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="l00070" name="l00070"></a><span class="lineno"> 70</span>{ <span class="comment">// function takes port and pins (for rx and tx)</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a>(GPIOx);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">//USART3 GPIO Configuration</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="comment">//GPIO_PIN_TX ------&gt; USART_TX</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">//GPIO_PIN_RX ------&gt; USART_RX </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="preprocessor">#if defined(STM32F4xx) </span><span class="comment">// gpio init for 407</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> GPIO_InitStruct.Pin = GPIO_PIN_TX|GPIO_PIN_RX;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> GPIO_InitStruct.Alternate = GPIO_AF7_USART3;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="preprocessor">#elif defined(STM32F1xx) </span><span class="comment">// gpio init for atm403/stm103</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">//GPIO_PIN_TX ------&gt; USART_TX</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> GPIO_InitStruct.Pin = GPIO_PIN_TX;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment">// GPIO_PIN_RX ------&gt; USART_RX </span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> GPIO_InitStruct.Pin = GPIO_PIN_RX;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> GPIO_InitStruct.Mode = GPIO_MODE_INPUT;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span>}</div>
</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"></span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment">/** </span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> * @brief Инициализация DMA для UART.</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> * @param huart Указатель на хендл UART.</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> * @param hdma_rx Указатель на хендл DMA для линии приема UART.</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> * @param DMAChannel Указатель на канал DMA/поток DMA в STM32F407.</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * @param DMA_CHANNEL_X Канал DMA.</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00109" data-start="{" data-end="}">
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05"> 109</a></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="l00110" name="l00110"></a><span class="lineno"> 110</span>{ <span class="comment">// function takes uart and dma handlers and dmachannel for uart</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// for now only dma rx is supported, tx maybe later if needed</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// calc defines on boot_project_setup.h</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">/* USART3 DMA Init */</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="comment">/* USART3_RX Init */</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> hdma_rx-&gt;Instance = DMAChannel;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#if defined(STM32F4xx) </span><span class="comment">// dma channel choose for 407</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> hdma_rx-&gt;Init.Channel = DMA_CHANNEL_X;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> hdma_rx-&gt;Init.Direction = DMA_PERIPH_TO_MEMORY;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> hdma_rx-&gt;Init.PeriphInc = DMA_PINC_DISABLE;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> hdma_rx-&gt;Init.MemInc = DMA_MINC_ENABLE;</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> hdma_rx-&gt;Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> hdma_rx-&gt;Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> hdma_rx-&gt;Init.Mode = DMA_CIRCULAR;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> hdma_rx-&gt;Init.Priority = DMA_PRIORITY_LOW;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (HAL_DMA_Init(hdma_rx) != HAL_OK)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> {</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_define" href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a>();</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> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> __USER_LINKDMA(huart,hdmarx,hdma_rx); </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> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// __USER_LINKDMA is need because __HAL_LINKDMA is written for global defined hdma_rx</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// so you get error because hal uses . insted of -&gt;</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>}</div>
</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">/** </span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> * @brief Настройка тактирования и прерываний UART.</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> * @param huart Указатель на хендл UART.</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> дефайнами @ref UART_INIT в @ref general_uart.h определяются используемые UART.</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00146" data-start="{" data-end="}">
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="group___m_y___l_i_b_s___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb"> 146</a></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) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>{ </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment">// __RCC_DMA_UART_CLK_ENABLE();</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment">// /* DMA1_Stream1_IRQn interrupt configuration */</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment">// HAL_NVIC_SetPriority(DMA_UART_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA_UART_IRQn);</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// rcc, dma and interrupt init for USARTs</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="comment">// GPIO init was moved to own functions UART_GPIO_Init </span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor">#ifdef USE_USART1</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART1)</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="comment">/* DMA2 clock enable */</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> __HAL_RCC_DMA2_CLK_ENABLE();</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="comment">/* USART1 clock enable */</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> __HAL_RCC_USART1_CLK_ENABLE();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="comment">/* USART1 interrupt Init */</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> HAL_NVIC_EnableIRQ(USART1_IRQn);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART1</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="preprocessor">#ifdef USE_USART2</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART2)</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> {</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="comment">/* USART2 clock enable */</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> __HAL_RCC_USART2_CLK_ENABLE();</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="comment">/* USART2 interrupt Init */</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> HAL_NVIC_EnableIRQ(USART2_IRQn);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART2</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor">#ifdef USE_USART3</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART3)</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> { </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">/* USART3 clock enable */</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> __HAL_RCC_USART3_CLK_ENABLE(); </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="comment">/* USART3 interrupt Init */</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> HAL_NVIC_EnableIRQ(USART3_IRQn);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> }</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART3</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="preprocessor">#ifdef USE_UART4</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART4)</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="comment">/* UART4 clock enable */</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> __HAL_RCC_UART4_CLK_ENABLE();</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="comment">/* UART4 interrupt Init */</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> HAL_NVIC_EnableIRQ(UART4_IRQn);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART4</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="preprocessor">#ifdef USE_UART5</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART5)</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="comment">/* DMA1 clock enable */</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="comment">/* UART5 clock enable */</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> __HAL_RCC_DMA1_CLK_ENABLE();</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">/* UART5 interrupt Init */</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> HAL_NVIC_SetPriority(UART5_IRQn, 0, 0);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> HAL_NVIC_EnableIRQ(UART5_IRQn);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART5</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="preprocessor">#ifdef USE_USART6</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART6)</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="comment">/* DMA2 clock enable */</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> __HAL_RCC_DMA2_CLK_ENABLE();</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="comment">/* DMA interrupt init */</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">/* USART6 clock enable */</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> __HAL_RCC_USART6_CLK_ENABLE();</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="comment">/* USART6 interrupt Init */</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> HAL_NVIC_SetPriority(USART6_IRQn, 0, 0);</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> HAL_NVIC_EnableIRQ(USART6_IRQn);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> }</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART6</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>}</div>
</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="comment"></span> </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="comment">/** </span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment"> * @brief Деинициализация тактирования и прерываний UART.</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"> * @param huart Указатель на хендл UART.</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых UART,</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment"> дефайнами @ref UART_INIT в @ref general_uart.h определяются используемые UART.</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00267" data-start="{" data-end="}">
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"><a class="line" href="group___m_y___l_i_b_s___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc"> 267</a></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) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span>{ </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// rcc, dma and interrupt init for USARTs</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// GPIO init was moved to own functions UART_GPIO_Init </span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="preprocessor">#ifdef USE_USART1</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART1)</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> {</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="comment">/* USART1 clock reset */</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> __HAL_RCC_USART1_FORCE_RESET();</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> __HAL_RCC_USART1_RELEASE_RESET();</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> }</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART1</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="preprocessor">#ifdef USE_USART2</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART2)</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> {</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="comment">/* USART2 clock reset */</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> __HAL_RCC_USART2_FORCE_RESET();</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> __HAL_RCC_USART2_RELEASE_RESET();</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> }</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART2</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor">#ifdef USE_USART3</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART3)</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> { </div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="comment">/* USART3 clock reset */</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> __HAL_RCC_USART3_FORCE_RESET();</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> __HAL_RCC_USART3_RELEASE_RESET();</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART3</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="preprocessor">#ifdef USE_UART4</span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART4)</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> {</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="comment">/* UART4 clock reset */</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> __HAL_RCC_UART4_FORCE_RESET();</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> __HAL_RCC_UART4_RELEASE_RESET();</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> }</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART4</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="preprocessor">#ifdef USE_UART5</span></div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==UART5)</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> {</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <span class="comment">/* UART5 clock reset */</span></div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> __HAL_RCC_UART5_FORCE_RESET();</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> __HAL_RCC_UART5_RELEASE_RESET();</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> }</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="preprocessor">#endif </span><span class="comment">// USE_UART5</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="preprocessor">#ifdef USE_USART6</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(huart-&gt;Instance==USART6)</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> {</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);</span></div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="comment">/* USART6 clock reset */</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> __HAL_RCC_USART6_FORCE_RESET();</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> __HAL_RCC_USART6_RELEASE_RESET();</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> }</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="preprocessor">#endif </span><span class="comment">// USE_USART6</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span>}</div>
</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="comment"></span> </div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><span class="comment">/** </span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span><span class="comment"> * @brief Проверка корректности структуры инициализации UART.</span></div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span><span class="comment"> * @param suart Указатель на структуру с настройками UART.</span></div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00364" data-start="{" data-end="}">
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"><a class="line" href="group___m_y___l_i_b_s___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a"> 364</a></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="l00365" name="l00365"></a><span class="lineno"> 365</span>{</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">if</span> (!IS_UART_INSTANCE(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>.Instance))</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <span class="keywordflow">if</span> (!IS_UART_BAUDRATE(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>.Init.BaudRate) || (suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">huart</a>.Init.BaudRate == NULL))</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="keywordflow">if</span> (!IS_GPIO_ALL_INSTANCE(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">GPIOx</a>))</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="keywordflow">if</span> (!IS_GPIO_PIN(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">GPIO_PIN_RX</a>) &amp;&amp; !IS_GPIO_PIN(suart-&gt;<a class="code hl_variable" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">GPIO_PIN_TX</a>)) <span class="comment">// if both pins arent set up</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span>}</div>
</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> </div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span><span class="comment">//------------------------UART INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="ttc" id="ageneral__gpio_8h_html"><div class="ttname"><a href="general__gpio_8h.html">general_gpio.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации портов и работы с ними.</div></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="#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="#l00109">general_uart.c:109</a></div></div>
<div class="ttc" id="ageneral__uart_8h_html"><div class="ttname"><a href="general__uart_8h.html">general_uart.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации UART.</div></div>
<div class="ttc" id="agroup___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s_html_gae110df81afd885a390bbeb152d7b709f"><div class="ttname"><a href="group___e_r_r_o_r___h_a_n_d_l_e_r___d_e_f_i_n_e_s.html#gae110df81afd885a390bbeb152d7b709f">MyLibs_Error_Handler</a></div><div class="ttdeci">#define MyLibs_Error_Handler(params)</div><div class="ttdoc">Error_Handler который будет вызыватся в библиотеке</div><div class="ttdef"><b>Definition</b> <a href="mylibs__defs_8h_source.html#l00031">mylibs_defs.h:31</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="#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="#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="#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="#l00032">general_uart.c:32</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l_html_ga962f010f783b81fcdd27eb6b53db28e6"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">GPIO_Clock_Enable</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Clock_Enable(GPIO_TypeDef *GPIOx)</div><div class="ttdoc">Включить тактирование порта GPIO.</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00022">general_gpio.c:22</a></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="general__uart_8h_source.html#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="general__uart_8h_source.html#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="general__uart_8h_source.html#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="general__uart_8h_source.html#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="general__uart_8h_source.html#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="general__uart_8h_source.html#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="general__uart_8h_source.html#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_9e11e9a41112194af3eee6cc728f9515.html">MyLibsGeneral</a></li><li class="navelem"><a href="dir_9c80311a018e1f8cfb6659b73d634be4.html">Src</a></li><li class="navelem"><a href="general__uart_8c.html">general_uart.c</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>