init develop

This commit is contained in:
Razvalyaev 2025-11-07 20:42:51 +03:00
commit dcf5cb4d93
421 changed files with 43123 additions and 0 deletions

6
Doc/Documentation.vbs Normal file
View File

@ -0,0 +1,6 @@
' open_index.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
scriptPath = WScript.ScriptFullName
scriptFolder = fso.GetParentFolderName(scriptPath)
htmlPath = scriptFolder & "\html\index.html"
CreateObject("WScript.Shell").Run """" & htmlPath & """", 1, False

2993
Doc/Doxyfile Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,306 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/__general_flash.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">STM32_General<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__flash_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_flash.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include &quot;__general_flash.h&quot;</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span>FLASH_EraseInitTypeDef EraseInitStruct;</div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">extern</span> HAL_StatusTypeDef res_hal;</div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keywordtype">unsigned</span> CRC_Update;</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">//uint32_t PAGE_OFFSET = ((uint32_t)((4-1) * 0x0400));</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span>uint32_t PAGE_NUMB = 127;</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">/* Записать в память данные, произвольного размера */</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span>HAL_StatusTypeDef FLASH_Write_Data(uint32_t* Address, uint8_t* Data, <span class="keywordtype">int</span> Data_size)</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span>{</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> HAL_StatusTypeDef res_hal;</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> <span class="keywordtype">int</span> data_cnt = 0;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> uint32_t adr;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> uint32_t word_data;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> res_hal = HAL_FLASH_Unlock();</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">for</span> (adr = *Address; adr &lt; *Address + Data_size; adr = adr + 4)</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> word_data = (</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> Data[data_cnt] |</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> Data[data_cnt + 1] &lt;&lt; 8 |</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> Data[data_cnt + 2] &lt;&lt; 16 |</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> Data[data_cnt + 3] &lt;&lt; 24);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> res_hal = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, adr, word_data);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> data_cnt += 4;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</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> *Address += Data_size;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> res_hal = HAL_FLASH_Lock();</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">return</span> res_hal;</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> </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> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>HAL_StatusTypeDef FLASH_Enable_DualBankMode(<span class="keywordtype">void</span>)</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> HAL_StatusTypeDef res_hal;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> FLASH_AdvOBProgramInitTypeDef OB_DualBank;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </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> res_hal = HAL_FLASH_Unlock();</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> res_hal = HAL_FLASH_OB_Unlock();</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </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> FLASH-&gt;OPTCR |= FLASH_OPTCR_DB1M;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> res_hal = HAL_FLASH_OB_Launch();</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> res_hal = HAL_FLASH_OB_Lock();</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> res_hal = HAL_FLASH_Lock();</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> res_hal;</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> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> res_hal;</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> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment">/* Убрать защиту */</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>HAL_StatusTypeDef FLASH_WriteProtection(uint32_t BankN, uint32_t WriteProtection)</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> HAL_StatusTypeDef res_hal;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> FLASH_OBProgramInitTypeDef OBInit;</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> FLASH-&gt;SR |= FLASH_FLAG_WRPERR <span class="comment">// Write Protection Error</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> | FLASH_FLAG_PGSERR <span class="comment">// Programming Sequence Error</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> | FLASH_FLAG_PGAERR <span class="comment">// Programming Alignment Error</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> | FLASH_FLAG_OPERR; <span class="comment">// Operation Error</span></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> res_hal = HAL_FLASH_Unlock();</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> res_hal;</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"> 98</span> res_hal = HAL_FLASH_OB_Unlock(); <span class="comment">// Разблокировка Option Bytes</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Считываем текущую конфигурацию Option Bytes</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> HAL_FLASHEx_OBGetConfig(&amp;OBInit);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// Отключаем защиту на всех секторах второго банка</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> OBInit.OptionType = OPTIONBYTE_WRP;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> OBInit.WRPState = WriteProtection; <span class="comment">// Снять защиту</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> OBInit.WRPSector = OB_WRP_SECTOR_12; <span class="comment">// Снять защиту</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> OBInit.Banks = BankN; <span class="comment">// Указываем второй банк</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> res_hal = HAL_FLASHEx_OBProgram(&amp;OBInit);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> res_hal;</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">// Записываем изменения и перезагружаем чип</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> res_hal = HAL_FLASH_OB_Launch();</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// Считываем текущую конфигурацию Option Bytes</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> HAL_FLASHEx_OBGetConfig(&amp;OBInit);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">// Блокировка Option Bytes</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> res_hal = HAL_FLASH_OB_Lock(); </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> res_hal;</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> res_hal = HAL_FLASH_Lock();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> res_hal;</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><span class="comment">//-----------------ELEMENTARY FUNCTIONS---------------------</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">/* functions for reading bytes/halswords/words */</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>uint8_t FLASH_Read_Byte(uint32_t add)</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>{</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> (*(__IO uint8_t*)(add));</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>}</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>uint16_t FLASH_Read_HalfWord(uint32_t add)</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span>{</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> (*(__IO uint16_t*)(add));</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span>}</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>uint32_t FLASH_Read_Word(uint32_t add)</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>{</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">return</span> (*(__IO uint32_t*)(add));</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span>}</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">/* functions for writing bytes/halswords/words */</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>HAL_StatusTypeDef FLASH_Write_Byte(uint32_t Address, uint8_t Data)</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>{ </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> HAL_StatusTypeDef res_hal;</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> res_hal = HAL_FLASH_Unlock();</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="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> res_hal = HAL_FLASH_Program(FLASH_TYPEPROGRAM_BYTE, Address, (uint8_t)(Data));</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</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> res_hal = HAL_FLASH_Lock(); </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span>}</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span>HAL_StatusTypeDef FLASH_Write_HalfWord(uint32_t Address, uint16_t Data)</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span>{</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> HAL_StatusTypeDef res_hal;</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> res_hal = HAL_FLASH_Unlock();</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> res_hal = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, Address, (uint16_t)(Data));</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> res_hal = HAL_FLASH_Lock(); </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> res_hal;</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>HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint32_t Data)</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>{</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> HAL_StatusTypeDef res_hal;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> res_hal = HAL_FLASH_Unlock();</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> res_hal = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, (uint32_t)(Data)); </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> (res_hal != HAL_OK) <span class="keywordflow">return</span> res_hal;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> res_hal = HAL_FLASH_Lock(); </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">return</span> res_hal;</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="comment">//----------------------------------------------------------</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </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_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><b>__general_flash.c</b></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>

View File

@ -0,0 +1,158 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/__general_flash.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">STM32_General<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__flash_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_flash.h</div></div>
</div><!--header-->
<div class="contents">
<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">* @file general_flash.h</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @brief Заголовочны файл модуля работы с FLASH.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#ifndef __FLASH_GENERAL_H_</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#define __FLASH_GENERAL_H_</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"></span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">//////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</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">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;mylibs_defs.h&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> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</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">////////////////////////////---DEFINES---////////////////////////////</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">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"></span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"></span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"></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">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>HAL_StatusTypeDef FLASH_Enable_DualBankMode(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>HAL_StatusTypeDef FLASH_WriteProtection(uint32_t BankN, uint32_t WriteProtection);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment">/* functions for reading bytes/halswords/words */</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>uint8_t FLASH_Read_Byte(uint32_t add);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>uint16_t FLASH_Read_HalfWord(uint32_t add);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>uint32_t FLASH_Read_Word(uint32_t add);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">/* functions for writing bytes/halswords/words */</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>HAL_StatusTypeDef FLASH_Write_Byte(uint32_t Address, uint8_t Data);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>HAL_StatusTypeDef FLASH_Write_HalfWord(uint32_t Address, uint16_t Data);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint32_t Data);<span class="comment"></span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</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="preprocessor">#endif </span><span class="comment">// __FLASH_GENERAL_H_</span></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_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><b>__general_flash.h</b></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>

123
Doc/html/annotated.html Normal file
View File

@ -0,0 +1,123 @@
<!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>STM32_General: Class List</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">STM32_General<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('annotated.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">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html" target="_self">GPIO_LEDTypeDef</a></td><td class="desc">Структура светодиода </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_g_p_i_o___switch_type_def.html" target="_self">GPIO_SwitchTypeDef</a></td><td class="desc">Структура кнопки </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_s_p_i___settings_type_def.html" target="_self">SPI_SettingsTypeDef</a></td><td class="desc">Структура настроек SPI </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___encoder_type_def.html" target="_self">TIM_EncoderTypeDef</a></td><td class="desc">Структура инициализации енкодера </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_t_i_m___settings_type_def.html" target="_self">TIM_SettingsTypeDef</a></td><td class="desc">Структура инициализации таймера </td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_u_a_r_t___settings_type_def.html" target="_self">UART_SettingsTypeDef</a></td><td class="desc">Структура настроек UART </td></tr>
</table>
</div><!-- directory -->
</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="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>

View File

@ -0,0 +1,9 @@
var annotated_dup =
[
[ "GPIO_LEDTypeDef", "struct_g_p_i_o___l_e_d_type_def.html", "struct_g_p_i_o___l_e_d_type_def" ],
[ "GPIO_SwitchTypeDef", "struct_g_p_i_o___switch_type_def.html", "struct_g_p_i_o___switch_type_def" ],
[ "SPI_SettingsTypeDef", "struct_s_p_i___settings_type_def.html", "struct_s_p_i___settings_type_def" ],
[ "TIM_EncoderTypeDef", "struct_t_i_m___encoder_type_def.html", "struct_t_i_m___encoder_type_def" ],
[ "TIM_SettingsTypeDef", "struct_t_i_m___settings_type_def.html", "struct_t_i_m___settings_type_def" ],
[ "UART_SettingsTypeDef", "struct_u_a_r_t___settings_type_def.html", "struct_u_a_r_t___settings_type_def" ]
];

128
Doc/html/classes.html Normal file
View File

@ -0,0 +1,128 @@
<!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>STM32_General: Class Index</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">STM32_General<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('classes.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">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_G" name="letter_G">G</a></dt>
<dd><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></dd><dd><a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a></dd><dd><a class="el" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a></dd></dl>
</div>
</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="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>

61
Doc/html/clipboard.js Normal file
View File

@ -0,0 +1,61 @@
/**
The code below is based on the Doxygen Awesome project, see
https://github.com/jothepro/doxygen-awesome-css
MIT License
Copyright (c) 2021 - 2022 jothepro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
let clipboard_title = "Copy to clipboard"
let clipboard_icon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="#888" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
let clipboard_successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
let clipboard_successDuration = 1000
$(function() {
if(navigator.clipboard) {
const fragments = document.getElementsByClassName("fragment")
for(const fragment of fragments) {
const clipboard_div = document.createElement("div")
clipboard_div.classList.add("clipboard")
clipboard_div.innerHTML = clipboard_icon
clipboard_div.title = clipboard_title
$(clipboard_div).click(function() {
const content = this.parentNode.cloneNode(true)
// filter out line number and folded fragments from file listings
content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() })
let text = content.textContent
// remove trailing newlines and trailing spaces from empty lines
text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'')
navigator.clipboard.writeText(text);
this.classList.add("success")
this.innerHTML = clipboard_successIcon
window.setTimeout(() => { // switch back to normal icon after timeout
this.classList.remove("success")
this.innerHTML = clipboard_icon
}, clipboard_successDuration);
})
fragment.insertBefore(clipboard_div, fragment.firstChild)
}
}
})

58
Doc/html/cookie.js Normal file
View File

@ -0,0 +1,58 @@
/*!
Cookie helper functions
Copyright (c) 2023 Dimitri van Heesch
Released under MIT license.
*/
let Cookie = {
cookie_namespace: 'doxygen_',
readSetting(cookie,defVal) {
if (window.chrome) {
const val = localStorage.getItem(this.cookie_namespace+cookie) ||
sessionStorage.getItem(this.cookie_namespace+cookie);
if (val) return val;
} else {
let myCookie = this.cookie_namespace+cookie+"=";
if (document.cookie) {
const index = document.cookie.indexOf(myCookie);
if (index != -1) {
const valStart = index + myCookie.length;
let valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
return document.cookie.substring(valStart, valEnd);
}
}
}
return defVal;
},
writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
if (window.chrome) {
if (days==0) {
sessionStorage.setItem(this.cookie_namespace+cookie,val);
} else {
localStorage.setItem(this.cookie_namespace+cookie,val);
}
} else {
let date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
document.cookie = this.cookie_namespace + cookie + "=" +
val + "; SameSite=Lax;" + expiration + "path=/";
}
},
eraseSetting(cookie) {
if (window.chrome) {
if (localStorage.getItem(this.cookie_namespace+cookie)) {
localStorage.removeItem(this.cookie_namespace+cookie);
} else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
sessionStorage.removeItem(this.cookie_namespace+cookie);
}
} else {
this.writeSetting(cookie,'',-1);
}
},
}

228
Doc/html/darkmode_toggle.js Normal file
View File

@ -0,0 +1,228 @@
/**
The code below is based on the Doxygen Awesome project with some minor modifications
https://github.com/jothepro/doxygen-awesome-css
MIT License
Copyright (c) 2021 - 2022 jothepro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
class DarkModeToggle extends HTMLElement {
static darkmode_cookie_name = ''+'prefers-dark';
static lightmode_cookie_name = ''+'prefers-light';
static icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="1em" width="1em"><g fill="none" fill-rule="evenodd"><path d="M0 0h24v24H0z"></path><rect width="1" height="3" x="12" fill="currentColor" rx=".5"></rect><rect width="1" height="3" x="12" y="21" fill="currentColor" rx=".5"></rect><rect width="1" height="3" x="22" y="10.5" fill="currentColor" rx=".5" transform="rotate(90 22.5 12)"></rect><rect width="1" height="3" x="1" y="10.5" fill="currentColor" rx=".5" transform="rotate(90 1.5 12)"></rect><rect width="1" height="3" x="19" y="3" fill="currentColor" rx=".5" transform="rotate(-135 19.5 4.5)"></rect><rect width="1" height="3" x="19" y="18" fill="currentColor" rx=".5" transform="rotate(135 19.5 19.5)"></rect><rect width="1" height="3" x="4" y="3" fill="currentColor" rx=".5" transform="scale(1 -1) rotate(45 15.37 0)"></rect><rect width="1" height="3" x="4" y="18" fill="currentColor" rx=".5" transform="scale(1 -1) rotate(-45 -42.57 0)"></rect><circle cx="12" cy="12" r="6.5" stroke="currentColor"></circle><path fill="currentColor" stroke="currentColor" d="M12.5 18.48V5.52a6.5 6.5 0 010 12.96z"></path></g></svg>';
static title = "Toggle Light/Dark Mode"
static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode"
static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode"
static _staticConstructor = function() {
DarkModeToggle.enableDarkMode(DarkModeToggle.userPreference)
// Update the color scheme when the browsers preference changes
// without user interaction on the website.
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
DarkModeToggle.onSystemPreferenceChanged()
})
// Update the color scheme when the tab is made visible again.
// It is possible that the appearance was changed in another tab
// while this tab was in the background.
document.addEventListener("visibilitychange", visibilityState => {
if (document.visibilityState === 'visible') {
DarkModeToggle.onSystemPreferenceChanged()
}
});
}()
static init() {
$(function() {
$(document).ready(function() {
const toggleButton = document.createElement('dark-mode-toggle')
toggleButton.title = DarkModeToggle.title
toggleButton.innerHTML = DarkModeToggle.icon
toggleButton.tabIndex = 0;
function addButton() {
const titleArea = document.getElementById("titlearea");
const searchBox = document.getElementById("MSearchBox");
const mainMenu = document.getElementById("main-menu");
const navRow1 = document.getElementById("navrow1");
let mainMenuVisible = false;
if (mainMenu) {
const menuStyle = window.getComputedStyle(mainMenu);
mainMenuVisible = menuStyle.display!=='none'
}
const searchBoxPos1 = document.getElementById("searchBoxPos1");
const buttonLi = document.getElementById('toggle-dark-mode');
if (buttonLi) {
buttonLi.parentNode.removeChild(buttonLi);
}
if (searchBox) { // (1) search box visible
searchBox.parentNode.appendChild(toggleButton)
} else if (navRow1) { // (2) no search box, static menu bar
const li = document.createElement('li');
li.id = 'toggle-dark-mode';
li.style = 'float: right;'
li.appendChild(toggleButton);
toggleButton.style = 'width: 24px; height: 25px; padding-top: 11px; float: right;';
const row = document.querySelector('#navrow1 > ul:first-of-type');
row.appendChild(li)
} else if (mainMenu && mainMenuVisible) { // (3) no search box + dynamic menu bar expanded
const li = document.createElement('li');
li.id = 'toggle-dark-mode';
li.style = 'float: right;'
li.appendChild(toggleButton);
toggleButton.style = 'width: 14px; height: 36px; padding-top: 10px; float: right;';
mainMenu.appendChild(li)
} else if (searchBoxPos1) { // (4) no search box + dynamic menu bar collapsed
toggleButton.style = 'width: 24px; height: 36px; padding-top: 10px; float: right;';
searchBoxPos1.style = 'top: 0px;'
searchBoxPos1.appendChild(toggleButton);
} else if (titleArea) { // (5) no search box and no navigation tabs
toggleButton.style = 'width: 24px; height: 24px; position: absolute; right: 0px; top: 34px;';
titleArea.append(toggleButton);
}
}
$(document).ready(() => addButton());
$(window).resize(() => addButton());
let inFocus = false;
$(document).focusin(() => inFocus = true);
$(document).focusout(() => inFocus = false);
$(document).keyup(function(e) {
if (e.keyCode==27 && !inFocus) { // escape key maps to keycode `27`
e.stopPropagation();
DarkModeToggle.userPreference = !DarkModeToggle.userPreference
}
})
DarkModeToggle.setDarkModeVisibility(DarkModeToggle.darkModeEnabled)
})
})
}
constructor() {
super();
this.onclick=this.toggleDarkMode
this.onkeypress=function(e){if (e.keyCode==13) { this.toggleDarkMode(); }};
}
/**
* @returns `true` for dark-mode, `false` for light-mode system preference
*/
static get systemPreference() {
return window.matchMedia('(prefers-color-scheme: dark)').matches
}
static get prefersDarkModeInLightMode() {
return Cookie.readSetting(DarkModeToggle.darkmode_cookie_name,'0')=='1';
}
static set prefersDarkModeInLightMode(preference) {
if (preference) {
Cookie.writeSetting(DarkModeToggle.darkmode_cookie_name,'1');
} else {
Cookie.eraseSetting(DarkModeToggle.darkmode_cookie_name);
}
}
static get prefersLightModeInDarkMode() {
return Cookie.readSetting(DarkModeToggle.lightmode_cookie_name,'0')=='1'
}
static set prefersLightModeInDarkMode(preference) {
if (preference) {
Cookie.writeSetting(DarkModeToggle.lightmode_cookie_name,'1');
} else {
Cookie.eraseSetting(DarkModeToggle.lightmode_cookie_name);
}
}
/**
* @returns `true` for dark-mode, `false` for light-mode user preference
*/
static get userPreference() {
return (!DarkModeToggle.systemPreference && DarkModeToggle.prefersDarkModeInLightMode) ||
(DarkModeToggle.systemPreference && !DarkModeToggle.prefersLightModeInDarkMode)
}
static set userPreference(userPreference) {
DarkModeToggle.darkModeEnabled = userPreference
if (!userPreference) {
if (DarkModeToggle.systemPreference) {
DarkModeToggle.prefersLightModeInDarkMode = true
} else {
DarkModeToggle.prefersDarkModeInLightMode = false
}
} else {
if (!DarkModeToggle.systemPreference) {
DarkModeToggle.prefersDarkModeInLightMode = true
} else {
DarkModeToggle.prefersLightModeInDarkMode = false
}
}
DarkModeToggle.onUserPreferenceChanged()
}
static setDarkModeVisibility(enable) {
let darkModeStyle, lightModeStyle;
if(enable) {
darkModeStyle = 'inline-block';
lightModeStyle = 'none'
} else {
darkModeStyle = 'none';
lightModeStyle = 'inline-block'
}
document.querySelectorAll('.dark-mode-visible' ).forEach(el => el.style.display = darkModeStyle);
document.querySelectorAll('.light-mode-visible').forEach(el => el.style.display = lightModeStyle);
}
static enableDarkMode(enable) {
if(enable) {
DarkModeToggle.darkModeEnabled = true
document.documentElement.classList.add("dark-mode")
document.documentElement.classList.remove("light-mode")
} else {
DarkModeToggle.darkModeEnabled = false
document.documentElement.classList.remove("dark-mode")
document.documentElement.classList.add("light-mode")
}
DarkModeToggle.setDarkModeVisibility(enable)
}
static onSystemPreferenceChanged() {
DarkModeToggle.darkModeEnabled = DarkModeToggle.userPreference
DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled)
}
static onUserPreferenceChanged() {
DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled)
}
toggleDarkMode() {
DarkModeToggle.userPreference = !DarkModeToggle.userPreference
}
}
customElements.define("dark-mode-toggle", DarkModeToggle);
DarkModeToggle.init();

View File

@ -0,0 +1,118 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src -&gt; Inc Relation</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">STM32_General<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('dir_413f4e031a85da0d68269c6fd2f76e1c.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="contents">
<h3>Src &rarr; Inc Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in Src</th><th class="dirtab">Includes file in Inc</th></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__gpio_8c.html">general_gpio.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__spi_8c.html">general_spi.c</a></td><td class="dirtab"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__tim_8c.html">general_tim.c</a></td><td class="dirtab"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr><tr class="dirtab"><td class="dirtab"><a class="el" href="general__uart_8c.html">general_uart.c</a></td><td class="dirtab"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr></table></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</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>

View File

@ -0,0 +1,146 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src Directory Reference</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">STM32_General<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('dir_413f4e031a85da0d68269c6fd2f76e1c.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">Src Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Directory dependency graph for Src:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="dir_413f4e031a85da0d68269c6fd2f76e1c_dep.png" border="0" usemap="#adir__413f4e031a85da0d68269c6fd2f76e1c__dep" loading="lazy" alt="E:/.WORK/STM32/STM_Libs/STM32_General/Src"/></div>
<map name="adir__413f4e031a85da0d68269c6fd2f76e1c__dep" id="adir__413f4e031a85da0d68269c6fd2f76e1c__dep">
<area shape="rect" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" title="Src" alt="" coords="5,5,47,32"/>
<area shape="rect" href="dir_f93dfce691d792349f1c14ede440e2e6.html" title="Inc" alt="" coords="6,80,46,107"/>
<area shape="poly" href="dir_000001_000000.html" alt="" coords="29,33,29,64,23,64,23,33"/>
<area shape="rect" href="dir_000001_000000.html" title="6" alt="" coords="31,53,38,69"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fgeneral_5Fflash_2Ec" id="r__5F_5Fgeneral_5Fflash_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="____general__flash_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__general_flash.c</b></td></tr>
<tr class="memitem:general_5Fgpio_2Ec" id="r_general_5Fgpio_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="general__gpio_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__gpio_8c.html">general_gpio.c</a></td></tr>
<tr class="memdesc:general__gpio_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для инициализации портов и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fspi_2Ec" id="r_general_5Fspi_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="general__spi_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__spi_8c.html">general_spi.c</a></td></tr>
<tr class="memdesc:general__spi_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для инициализации SPI. <br /></td></tr>
<tr class="memitem:general_5Ftim_2Ec" id="r_general_5Ftim_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="general__tim_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__tim_8c.html">general_tim.c</a></td></tr>
<tr class="memdesc:general__tim_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для инициализации таймеров и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fuart_2Ec" id="r_general_5Fuart_2Ec"><td class="memItemLeft" align="right" valign="top"><a href="general__uart_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__uart_8c.html">general_uart.c</a></td></tr>
<tr class="memdesc:general__uart_8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Модуль для инициализации UART. <br /></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</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>

View File

@ -0,0 +1,8 @@
var dir_413f4e031a85da0d68269c6fd2f76e1c =
[
[ "__general_flash.c", "____general__flash_8c_source.html", null ],
[ "general_gpio.c", "general__gpio_8c.html", "general__gpio_8c" ],
[ "general_spi.c", "general__spi_8c.html", "general__spi_8c" ],
[ "general_tim.c", "general__tim_8c.html", "general__tim_8c" ],
[ "general_uart.c", "general__uart_8c.html", "general__uart_8c" ]
];

View File

@ -0,0 +1,6 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Src" name="E:/.WORK/STM32/STM_Libs/STM32_General/Src">
<area shape="rect" id="node1" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" title="Src" alt="" coords="5,5,47,32"/>
<area shape="rect" id="node2" href="dir_f93dfce691d792349f1c14ede440e2e6.html" title="Inc" alt="" coords="6,80,46,107"/>
<area shape="poly" id="edge1" href="dir_000001_000000.html" alt="" coords="29,33,29,64,23,64,23,33"/>
<area shape="rect" id="edge1-headlabel" href="dir_000001_000000.html" title="6" alt="" coords="31,53,38,69"/>
</map>

View File

@ -0,0 +1 @@
84f5691ac58cfa74c2d395b9e82882dd

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

View File

@ -0,0 +1,134 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc Directory Reference</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">STM32_General<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('dir_f93dfce691d792349f1c14ede440e2e6.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">Inc Directory Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
Files</h2></td></tr>
<tr class="memitem:_5F_5Fgeneral_5Fflash_2Eh" id="r__5F_5Fgeneral_5Fflash_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><b>__general_flash.h</b></td></tr>
<tr class="memitem:general_5Fgpio_2Eh" id="r_general_5Fgpio_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__gpio_8h.html">general_gpio.h</a></td></tr>
<tr class="memdesc:general__gpio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации портов и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fspi_2Eh" id="r_general_5Fspi_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__spi_8h.html">general_spi.h</a></td></tr>
<tr class="memdesc:general__spi_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации SPI. <br /></td></tr>
<tr class="memitem:general_5Ftim_2Eh" id="r_general_5Ftim_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__tim_8h.html">general_tim.h</a></td></tr>
<tr class="memdesc:general__tim_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации таймеров и работы с ними. <br /></td></tr>
<tr class="memitem:general_5Fuart_2Eh" id="r_general_5Fuart_2Eh"><td class="memItemLeft" align="right" valign="top"><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="general__uart_8h.html">general_uart.h</a></td></tr>
<tr class="memdesc:general__uart_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Заголовочный файл для модуля инициализации UART. <br /></td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</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>

View File

@ -0,0 +1,8 @@
var dir_f93dfce691d792349f1c14ede440e2e6 =
[
[ "__general_flash.h", "____general__flash_8h_source.html", null ],
[ "general_gpio.h", "general__gpio_8h.html", "general__gpio_8h" ],
[ "general_spi.h", "general__spi_8h.html", "general__spi_8h" ],
[ "general_tim.h", "general__tim_8h.html", "general__tim_8h" ],
[ "general_uart.h", "general__uart_8h.html", "general__uart_8h" ]
];

2459
Doc/html/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

28
Doc/html/doxygen.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

203
Doc/html/doxygen_crawl.html Normal file
View File

@ -0,0 +1,203 @@
<!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>
<title>Validator / crawler helper</title>
<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"/>
</head>
<body>
<a href="____general__flash_8c_source.html"/>
<a href="____general__flash_8h_source.html"/>
<a href="annotated.html"/>
<a href="classes.html"/>
<a href="dir_000001_000000.html"/>
<a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html"/>
<a href="dir_f93dfce691d792349f1c14ede440e2e6.html"/>
<a href="doxygen_crawl.html"/>
<a href="files.html"/>
<a href="functions.html"/>
<a href="functions_vars.html"/>
<a href="general__gpio_8c.html"/>
<a href="general__gpio_8c_source.html"/>
<a href="general__gpio_8h.html"/>
<a href="general__gpio_8h_source.html"/>
<a href="general__spi_8c.html"/>
<a href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5"/>
<a href="general__spi_8c_source.html"/>
<a href="general__spi_8h.html"/>
<a href="general__spi_8h_source.html"/>
<a href="general__tim_8c.html"/>
<a href="general__tim_8c_source.html"/>
<a href="general__tim_8h.html"/>
<a href="general__tim_8h_source.html"/>
<a href="general__uart_8c.html"/>
<a href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b"/>
<a href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05"/>
<a href="general__uart_8c_source.html"/>
<a href="general__uart_8h.html"/>
<a href="general__uart_8h_source.html"/>
<a href="globals.html"/>
<a href="globals_defs.html"/>
<a href="globals_enum.html"/>
<a href="globals_eval.html"/>
<a href="globals_func.html"/>
<a href="graph_legend.html"/>
<a href="group___g_e_n_e_r_a_l___c_o_n_f_i_g_s.html"/>
<a href="group___g_e_n_e_r_a_l___g_p_i_o.html"/>
<a href="group___g_e_n_e_r_a_l___s_p_i.html"/>
<a href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba"/>
<a href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f"/>
<a href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac"/>
<a href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4"/>
<a href="group___g_e_n_e_r_a_l___t_i_m.html"/>
<a href="group___g_e_n_e_r_a_l___u_a_r_t.html"/>
<a href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a"/>
<a href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc"/>
<a href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb"/>
<a href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154"/>
<a href="group___g_p_i_o___i_n_i_t.html"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653"/>
<a href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067"/>
<a href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70"/>
<a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7"/>
<a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html"/>
<a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b"/>
<a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834"/>
<a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e"/>
<a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html"/>
<a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761"/>
<a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"/>
<a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c"/>
<a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8"/>
<a href="group___m_y_l_i_b_s___t_i_m___o_c.html"/>
<a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6"/>
<a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889"/>
<a href="group___s_p_i___i_n_i_t.html"/>
<a href="group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf"/>
<a href="group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b"/>
<a href="group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc"/>
<a href="group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c"/>
<a href="group___t_i_m___i_n_i_t.html"/>
<a href="group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0"/>
<a href="group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2"/>
<a href="group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3"/>
<a href="group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be"/>
<a href="group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b"/>
<a href="group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b"/>
<a href="group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617"/>
<a href="group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb"/>
<a href="group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67"/>
<a href="group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46"/>
<a href="group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9"/>
<a href="group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c"/>
<a href="group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a"/>
<a href="group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac"/>
<a href="group___u_a_r_t___i_n_i_t.html"/>
<a href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89"/>
<a href="group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340"/>
<a href="group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976"/>
<a href="group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7"/>
<a href="group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d"/>
<a href="group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b"/>
<a href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868"/>
<a href="index.html"/>
<a href="index.html#инструкция-по-подключению"/>
<a href="index.html#структура-библиотеки"/>
<a href="struct_g_p_i_o___l_e_d_type_def-members.html"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816"/>
<a href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435"/>
<a href="struct_g_p_i_o___switch_type_def-members.html"/>
<a href="struct_g_p_i_o___switch_type_def.html"/>
<a href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89"/>
<a href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06"/>
<a href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405"/>
<a href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032"/>
<a href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a"/>
<a href="struct_s_p_i___settings_type_def-members.html"/>
<a href="struct_s_p_i___settings_type_def.html"/>
<a href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820"/>
<a href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95"/>
<a href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a"/>
<a href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc"/>
<a href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95"/>
<a href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1"/>
<a href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979"/>
<a href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176"/>
<a href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474"/>
<a href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422"/>
<a href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14"/>
<a href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab"/>
<a href="struct_t_i_m___encoder_type_def-members.html"/>
<a href="struct_t_i_m___encoder_type_def.html"/>
<a href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5"/>
<a href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2"/>
<a href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e"/>
<a href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5"/>
<a href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80"/>
<a href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3"/>
<a href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45"/>
<a href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9"/>
<a href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c"/>
<a href="struct_t_i_m___settings_type_def-members.html"/>
<a href="struct_t_i_m___settings_type_def.html"/>
<a href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718"/>
<a href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21"/>
<a href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0"/>
<a href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e"/>
<a href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014"/>
<a href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7"/>
<a href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969"/>
<a href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0"/>
<a href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c"/>
<a href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4"/>
<a href="struct_u_a_r_t___settings_type_def-members.html"/>
<a href="struct_u_a_r_t___settings_type_def.html"/>
<a href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19"/>
<a href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613"/>
<a href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49"/>
<a href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef"/>
<a href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea"/>
<a href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f"/>
<a href="topics.html"/>
</body>
</html>

198
Doc/html/dynsections.js Normal file
View File

@ -0,0 +1,198 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj) {
return dynsection.toggleVisibility(linkObj);
}
let dynsection = {
// helper function
updateStripes : function() {
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
$('table.directory tr').
removeClass('odd').filter(':visible:odd').addClass('odd');
},
toggleVisibility : function(linkObj) {
const base = $(linkObj).attr('id');
const summary = $('#'+base+'-summary');
const content = $('#'+base+'-content');
const trigger = $('#'+base+'-trigger');
const src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.slideUp('fast');
summary.show();
$(linkObj).find('.arrowhead').addClass('closed').removeClass('opened');
} else {
content.slideDown('fast');
summary.hide();
$(linkObj).find('.arrowhead').removeClass('closed').addClass('opened');
}
return false;
},
toggleLevel : function(level) {
$('table.directory tr').each(function() {
const l = this.id.split('_').length-1;
const i = $('#img'+this.id.substring(3));
const a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.find('.folder-icon').addClass('open');
a.find('.arrowhead').removeClass('closed').addClass('opened');
$(this).show();
} else if (l==level+1) {
a.find('.arrowhead').removeClass('opened').addClass('closed');
i.find('.folder-icon').removeClass('open');
$(this).show();
} else {
$(this).hide();
}
});
this.updateStripes();
},
toggleFolder : function(id) {
// the clicked row
const currentRow = $('#row_'+id);
// all rows after the clicked row
const rows = currentRow.nextAll("tr");
const re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
const childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
const currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfolder").find('.folder-icon').removeClass("open");
currentRowSpans.filter(".opened").removeClass("opened").addClass("closed");
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
const currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfolder").find('.folder-icon').addClass("open");
currentRowSpans.filter(".closed").removeClass("closed").addClass("opened");
// replace down arrows by right arrows for child rows
const childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfolder").find('.folder-icon').removeClass("open");
childRowsSpans.filter(".opened").removeClass("opened").addClass("closed");
childRows.show(); //show all children
}
this.updateStripes();
},
toggleInherit : function(id) {
let rows = $('tr.inherit.'+id);
let header = $('tr.inherit_header.'+id);
if (rows.filter(':first').is(':visible')===true) {
rows.hide();
$(header).find('.arrowhead').addClass('closed').removeClass('opened');
} else {
rows.show();
$(header).find('.arrowhead').removeClass('closed').addClass('opened');
}
},
};
let codefold = {
opened : true,
// toggle all folding blocks
toggle_all : function() {
if (this.opened) {
$('#fold_all').addClass('plus').removeClass('minus');
$('div[id^=foldopen]').hide();
$('div[id^=foldclosed]').show();
$('div[id^=foldclosed] span.fold').removeClass('minus').addClass('plus');
} else {
$('#fold_all').addClass('minus').removeClass('plus');
$('div[id^=foldopen]').show();
$('div[id^=foldclosed]').hide();
}
this.opened=!this.opened;
},
// toggle single folding block
toggle : function(id) {
$('#foldopen'+id).toggle();
$('#foldclosed'+id).toggle();
$('#foldopen'+id).next().find('span.fold').addClass('plus').removeClass('minus');
},
init : function() {
$('span[class=lineno]').css({
'padding-right':'4px',
'margin-right':'2px',
'display':'inline-block',
'width':'54px',
'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'
});
// add global toggle to first line
$('span[class=lineno]:first').append('<span class="fold minus" id="fold_all" '+
'onclick="javascript:codefold.toggle_all();"></span>');
// add vertical lines to other rows
$('span[class=lineno]').not(':eq(0)').append('<span class="fold"></span>');
// add toggle controls to lines with fold divs
$('div[class=foldopen]').each(function() {
// extract specific id to use
const id = $(this).attr('id').replace('foldopen','');
// extract start and end foldable fragment attributes
const start = $(this).attr('data-start');
const end = $(this).attr('data-end');
// replace normal fold span with controls for the first line of a foldable fragment
$(this).find('span[class=fold]:first').replaceWith('<span class="fold minus" '+
'onclick="javascript:codefold.toggle(\''+id+'\');"></span>');
// append div for folded (closed) representation
$(this).after('<div id="foldclosed'+id+'" class="foldclosed" style="display:none;"></div>');
// extract the first line from the "open" section to represent closed content
const line = $(this).children().first().clone();
// remove any glow that might still be active on the original line
$(line).removeClass('glow');
if (start) {
// if line already ends with a start marker (e.g. trailing {), remove it
$(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),''));
}
// replace minus with plus symbol
$(line).find('span[class=fold]').addClass('plus').removeClass('minus');
// append ellipsis
$(line).append(' '+start+'<a href="javascript:codefold.toggle(\''+id+'\')">&#8230;</a>'+end);
// insert constructed line into closed div
$('#foldclosed'+id).html(line);
});
},
};
/* @license-end */
$(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

129
Doc/html/files.html Normal file
View File

@ -0,0 +1,129 @@
<!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>STM32_General: File List</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">STM32_General<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('files.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">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="dynsection.toggleFolder('0_')"><span class="arrowhead opened"></span></span><span id="img_0_" class="iconfolder" onclick="dynsection.toggleFolder('0_')"><div class="folder-icon open"></div></span><a class="el" href="dir_f93dfce691d792349f1c14ede440e2e6.html" target="_self">Inc</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____general__flash_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.h</b></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__gpio_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8h.html" target="_self">general_gpio.h</a></td><td class="desc">Заголовочный файл для модуля инициализации портов и работы с ними </td></tr>
<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__spi_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8h.html" target="_self">general_spi.h</a></td><td class="desc">Заголовочный файл для модуля инициализации SPI </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__tim_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8h.html" target="_self">general_tim.h</a></td><td class="desc">Заголовочный файл для модуля инициализации таймеров и работы с ними </td></tr>
<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__uart_8h_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8h.html" target="_self">general_uart.h</a></td><td class="desc">Заголовочный файл для модуля инициализации UART </td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="dynsection.toggleFolder('1_')"><span class="arrowhead opened"></span></span><span id="img_1_" class="iconfolder" onclick="dynsection.toggleFolder('1_')"><div class="folder-icon open"></div></span><a class="el" href="dir_413f4e031a85da0d68269c6fd2f76e1c.html" target="_self">Src</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="____general__flash_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><b>__general_flash.c</b></td><td class="desc"></td></tr>
<tr id="row_1_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__gpio_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__gpio_8c.html" target="_self">general_gpio.c</a></td><td class="desc">Модуль для инициализации портов и работы с ними </td></tr>
<tr id="row_1_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__spi_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__spi_8c.html" target="_self">general_spi.c</a></td><td class="desc">Модуль для инициализации SPI </td></tr>
<tr id="row_1_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__tim_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__tim_8c.html" target="_self">general_tim.c</a></td><td class="desc">Модуль для инициализации таймеров и работы с ними </td></tr>
<tr id="row_1_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="general__uart_8c_source.html"><span class="icondoc"><div class="doc-icon"></div></span></a><a class="el" href="general__uart_8c.html" target="_self">general_uart.c</a></td><td class="desc">Модуль для инициализации UART </td></tr>
</table>
</div><!-- directory -->
</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="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>

5
Doc/html/files_dup.js Normal file
View File

@ -0,0 +1,5 @@
var files_dup =
[
[ "Inc", "dir_f93dfce691d792349f1c14ede440e2e6.html", "dir_f93dfce691d792349f1c14ede440e2e6" ],
[ "Src", "dir_413f4e031a85da0d68269c6fd2f76e1c.html", "dir_413f4e031a85da0d68269c6fd2f76e1c" ]
];

185
Doc/html/functions.html Normal file
View File

@ -0,0 +1,185 @@
<!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>STM32_General: Class Members</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">STM32_General<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('functions.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="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>CLK_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef</a></li>
<li>CLK_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef</a></li>
<li>CLK_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DMA_CHANNEL_X&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474">SPI_SettingsTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19">UART_SettingsTypeDef</a></li>
<li>DMAChannel&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95">SPI_SettingsTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>Encoder_Diff&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">TIM_EncoderTypeDef</a></li>
<li>Encoder_Shdw&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">TIM_EncoderTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>GPIO_PIN_RX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">UART_SettingsTypeDef</a></li>
<li>GPIO_PIN_SW&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI1&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI2&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">UART_SettingsTypeDef</a></li>
<li>GPIOx&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">TIM_EncoderTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>hspi&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">SPI_SettingsTypeDef</a></li>
<li>htim&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">TIM_EncoderTypeDef</a>, <a class="el" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">TIM_SettingsTypeDef</a></li>
<li>huart&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>LED_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef</a></li>
<li>LED_Period&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef</a></li>
<li>LED_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef</a></li>
<li>LED_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MISO_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef</a></li>
<li>MISO_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef</a></li>
<li>MISO_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef</a></li>
<li>MOSI_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>sBreakDeadTimeConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">TIM_SettingsTypeDef</a></li>
<li>sClockSourceConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">TIM_SettingsTypeDef</a></li>
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>
<li>sTickBaseUS&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef</a></li>
<li>sTimAHBFreqMHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef</a></li>
<li>sTimFreqHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">TIM_SettingsTypeDef</a></li>
<li>sTimMode&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">TIM_SettingsTypeDef</a></li>
<li>Sw&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">TIM_EncoderTypeDef</a></li>
<li>Sw_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">GPIO_SwitchTypeDef</a></li>
<li>Sw_FilterDelay&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">GPIO_SwitchTypeDef</a></li>
<li>Sw_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">GPIO_SwitchTypeDef</a></li>
<li>Sw_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">GPIO_SwitchTypeDef</a></li>
<li>Sw_PrevState&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">GPIO_SwitchTypeDef</a></li>
</ul>
</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="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>

View File

@ -0,0 +1,185 @@
<!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>STM32_General: Class Members - Variables</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">STM32_General<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('functions_vars.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="contents">
<div class="textblock">Here is a list of all documented variables with links to the class documentation for each member:</div>
<h3 class="doxsection"><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>CLK_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef</a></li>
<li>CLK_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef</a></li>
<li>CLK_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>DMA_CHANNEL_X&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474">SPI_SettingsTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19">UART_SettingsTypeDef</a></li>
<li>DMAChannel&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95">SPI_SettingsTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#a1ecc9ac6a1d2747ade56770cbab6a613">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>Encoder_Diff&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">TIM_EncoderTypeDef</a></li>
<li>Encoder_Shdw&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">TIM_EncoderTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>GPIO_PIN_RX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49">UART_SettingsTypeDef</a></li>
<li>GPIO_PIN_SW&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI1&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TI2&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">TIM_EncoderTypeDef</a></li>
<li>GPIO_PIN_TX&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef">UART_SettingsTypeDef</a></li>
<li>GPIOx&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">TIM_EncoderTypeDef</a>, <a class="el" href="struct_u_a_r_t___settings_type_def.html#af6f9910d065bae715cdb4a1024143a8f">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>hspi&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">SPI_SettingsTypeDef</a></li>
<li>htim&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">TIM_EncoderTypeDef</a>, <a class="el" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">TIM_SettingsTypeDef</a></li>
<li>huart&#160;:&#160;<a class="el" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea">UART_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>LED_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef</a></li>
<li>LED_Period&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef</a></li>
<li>LED_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef</a></li>
<li>LED_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>MISO_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef</a></li>
<li>MISO_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef</a></li>
<li>MISO_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIO_AlternageFunc&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef</a></li>
<li>MOSI_GPIOx&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef</a></li>
<li>MOSI_PIN&#160;:&#160;<a class="el" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>sBreakDeadTimeConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">TIM_SettingsTypeDef</a></li>
<li>sClockSourceConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">TIM_SettingsTypeDef</a></li>
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>
<li>sTickBaseUS&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef</a></li>
<li>sTimAHBFreqMHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef</a></li>
<li>sTimFreqHz&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">TIM_SettingsTypeDef</a></li>
<li>sTimMode&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">TIM_SettingsTypeDef</a></li>
<li>Sw&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">TIM_EncoderTypeDef</a></li>
<li>Sw_ActiveLvl&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">GPIO_SwitchTypeDef</a></li>
<li>Sw_FilterDelay&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">GPIO_SwitchTypeDef</a></li>
<li>Sw_Pin&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">GPIO_SwitchTypeDef</a></li>
<li>Sw_Port&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">GPIO_SwitchTypeDef</a></li>
<li>Sw_PrevState&#160;:&#160;<a class="el" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">GPIO_SwitchTypeDef</a></li>
</ul>
</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="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>

View File

@ -0,0 +1,174 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_gpio.c File Reference</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">STM32_General<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__gpio_8c.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_gpio.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для инициализации портов и работы с ними.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="general__gpio_8h_source.html">general_gpio.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_gpio.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__gpio_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__gpio_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__gpio_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__gpio_8c">
<area shape="rect" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="34,112,139,139"/>
<area shape="poly" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
<area shape="rect" title=" " alt="" coords="35,187,138,213"/>
<area shape="poly" title=" " alt="" coords="89,139,89,171,84,171,84,139"/>
</map>
</div>
</div>
<p><a href="general__gpio_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga962f010f783b81fcdd27eb6b53db28e6" id="r_ga962f010f783b81fcdd27eb6b53db28e6"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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> (GPIO_TypeDef *GPIOx)</td></tr>
<tr class="memdesc:ga962f010f783b81fcdd27eb6b53db28e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить тактирование порта GPIO. <br /></td></tr>
<tr class="memitem:gac936453c7a0841c0b17bcfdae4958084" id="r_gac936453c7a0841c0b17bcfdae4958084"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)</td></tr>
<tr class="memdesc:gac936453c7a0841c0b17bcfdae4958084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализировать светодиод (структуру светодиода) <br /></td></tr>
<tr class="memitem:ga4b9572949326b050694cd55d0a7e5f6c" id="r_ga4b9572949326b050694cd55d0a7e5f6c"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:ga4b9572949326b050694cd55d0a7e5f6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить светодиод <br /></td></tr>
<tr class="memitem:gaadda2d4f021390a4e392210a5ace5357" id="r_gaadda2d4f021390a4e392210a5ace5357"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:gaadda2d4f021390a4e392210a5ace5357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выключить светодиод <br /></td></tr>
<tr class="memitem:gae78b570447d55a462a679a89dbaa8ea2" id="r_gae78b570447d55a462a679a89dbaa8ea2"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint8_t led_state)</td></tr>
<tr class="memdesc:gae78b570447d55a462a679a89dbaa8ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить светодиод по переменной <br /></td></tr>
<tr class="memitem:gaf22f44ecaf6a1932b47edc5a845b03a9" id="r_gaf22f44ecaf6a1932b47edc5a845b03a9"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</td></tr>
<tr class="memdesc:gaf22f44ecaf6a1932b47edc5a845b03a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Активировать моргание светодиодом <br /></td></tr>
<tr class="memitem:gaa00f20021781464af3dfe74aa3e59a0a" id="r_gaa00f20021781464af3dfe74aa3e59a0a"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</td></tr>
<tr class="memdesc:gaa00f20021781464af3dfe74aa3e59a0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Активировать моргание светодиодом <br /></td></tr>
<tr class="memitem:gad6e6189824406c4d472b6340c7f19bb2" id="r_gad6e6189824406c4d472b6340c7f19bb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:gad6e6189824406c4d472b6340c7f19bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Управление динамическими режимами свечения светодиода <br /></td></tr>
<tr class="memitem:gacafee0e68877f2b25df843356871d1f7" id="r_gacafee0e68877f2b25df843356871d1f7"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a> (<a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)</td></tr>
<tr class="memdesc:gacafee0e68877f2b25df843356871d1f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализировать кнопку (структуру кнопки) <br /></td></tr>
<tr class="memitem:ga960b24335b2026abcad126ab8c422d70" id="r_ga960b24335b2026abcad126ab8c422d70"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a> (<a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw)</td></tr>
<tr class="memdesc:ga960b24335b2026abcad126ab8c422d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать состоянии кнопки <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для инициализации портов и работы с ними. </p>
<p>Реализация функций для работы с GPIO:</p><ul>
<li>Включение тактирования портов</li>
<li>Инициализация светодиодов и кнопок</li>
<li>Управление светодиодами: включение, выключение, моргание, плавное затухание</li>
<li>Чтение состояния кнопок с фильтром от дребезга </li>
</ul>
<p class="definition">Definition in file <a class="el" href="general__gpio_8c_source.html">general_gpio.c</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.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>

View File

@ -0,0 +1,13 @@
var general__gpio_8c =
[
[ "GPIO_Clock_Enable", "group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ],
[ "GPIO_LED_Init", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ],
[ "GPIO_LED_On", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ],
[ "GPIO_LED_Off", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ],
[ "GPIO_LED_Set", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ],
[ "GPIO_LED_Blink_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ],
[ "GPIO_LED_Fading_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ],
[ "GPIO_LED_Dynamic_Handle", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ],
[ "GPIO_Switch_Init", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ],
[ "GPIO_Read_Switch", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70", null ]
];

View File

@ -0,0 +1,7 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_gpio.c" name="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_gpio.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации портов и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="34,112,139,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="35,187,138,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="89,139,89,171,84,171,84,139"/>
</map>

View File

@ -0,0 +1 @@
ab87d23620ec2b6831bacfd9a4631e9d

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,489 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_gpio.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">STM32_General<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__gpio_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_gpio.c</div></div>
</div><!--header-->
<div class="contents">
<a href="general__gpio_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_gpio.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для инициализации портов и работы с ними.</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">* @details </span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">Реализация функций для работы с GPIO:</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> - Включение тактирования портов</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> - Инициализация светодиодов и кнопок</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> - Управление светодиодами: включение, выключение, моргание, плавное затухание</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="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">//------------------------GPIO INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"></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"> * @brief Включить тактирование порта GPIO</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="}">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6"> 22</a></span>HAL_StatusTypeDef <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>(GPIO_TypeDef *GPIOx)</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{ </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">if</span>(check_null_ptr_1(GPIOx))</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> HAL_StatusTypeDef status = HAL_OK;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (GPIOx==GPIOA)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> __HAL_RCC_GPIOA_CLK_ENABLE();</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOB)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> __HAL_RCC_GPIOB_CLK_ENABLE();</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#ifdef GPIOC</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOC)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> __HAL_RCC_GPIOC_CLK_ENABLE();</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#ifdef GPIOD</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOD)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> __HAL_RCC_GPIOD_CLK_ENABLE();</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#ifdef GPIOE</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOE)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> __HAL_RCC_GPIOE_CLK_ENABLE();</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#ifdef GPIOF</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOF)</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> __HAL_RCC_GPIOF_CLK_ENABLE();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#ifdef GPIOH</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GPIOx==GPIOF)</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> __HAL_RCC_GPIOH_CLK_ENABLE();</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> status = HAL_ERROR;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> status;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
</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="comment">//------------------------GPIO INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">//-------------------------------------------------------------------</span></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> </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">//------------------------GPIO LED FUNCTIONS-------------------------</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"></span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">/**</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> * @brief Инициализировать светодиод (структуру светодиода)</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> * @param GPIOx Указатель на структуру порта для светодиода</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * @param GPIO_PIN_X Пин для светодиода</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @param LED_ActiveLevel Состояния пина, при котором светодиод будет включен</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00073" data-start="{" data-end="}">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084"> 73</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>{</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">if</span>(check_null_ptr_3(led, GPIOx, GPIO_PIN_X))</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a> = GPIOx;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a> = GPIO_PIN_X;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a> = LED_ActiveLevel;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a>(led);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}</div>
</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">/**</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @brief Включить светодиод </span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00091" data-start="{" data-end="}">
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c"> 91</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> = <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">LED_IS_ON</a>;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> HAL_GPIO_WritePin(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a>);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</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"> 100</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}<span class="comment"></span></div>
</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 Выключить светодиод </span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00107" data-start="{" data-end="}">
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357"> 107</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>{</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> = <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">LED_IS_OFF</a>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> HAL_GPIO_WritePin(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>, !led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a>);</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> </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> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>}<span class="comment"></span></div>
</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment">/**</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> * @brief Выставить светодиод по переменной</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> * @param led_state Состояние светодиода</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2"> 125</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint8_t led_state)</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="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> HAL_ERROR; </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> <span class="keywordflow">if</span>(led_state)</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="keywordflow">return</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a>(led);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> }</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">else</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="keywordflow">return</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a>(led);</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="comment"></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"> * @brief Активировать моргание светодиодом</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> * @param period Период плавного моргания светодиода</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * @details Функция ставит режим моргания, который после управляется в @ref GPIO_LED_Dynamic_Handle</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___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9"> 146</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</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="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> = <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">LED_Period</a> = period;</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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span>}</div>
</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="comment"></span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment">/**</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment"> * @brief Активировать моргание светодиодом</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"> * @param led Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment"> * @param period Период плавного моргания светодиода</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> * @details Функция ставит режим моргания, который после управляется в @ref GPIO_LED_Dynamic_Handle</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00164" data-start="{" data-end="}">
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a"> 164</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>{</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> = <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a>;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">LED_Period</a> = period;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span>}</div>
</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment">//uint8_t LED_PWM_FADING_DUTYS[LED_PWM_TICKS] = {0 1 2 3 4 5 6 7 8 9 10 11 12 }</span><span class="comment"></span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment">/**</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"> * @brief Управление динамическими режимами свечения светодиода</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment"> * @param Указатель на структуру светодиода</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"> * @details Функция моргает/плавно моргает светодиодом в неблокирующем режиме</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"> * Т.е. функцию надо вызывать постоянно, чтобы она мониторила тики </span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"> * и в нужный момент переключала светодиод</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00184" data-start="{" data-end="}">
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2"> 184</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span>{</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span>(check_null_ptr_3(led, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>))</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">/* Режим моргания светодиода */</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">if</span>(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> == <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a>)</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> {</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> uint32_t tickcurrent = <a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>();</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="comment">/* Ожидание истечения периода моргания */</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">if</span>((tickcurrent - led-&gt;tickprev) &gt; led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">LED_Period</a>)</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> {</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="comment">/* Моргание */</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> HAL_GPIO_TogglePin(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> led-&gt;tickprev = tickcurrent;</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> }</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="comment">/* Режим плавного моргания светодиода */</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a> == <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a>)</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> {</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">static</span> <span class="keywordtype">unsigned</span> direction = 0;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">static</span> <span class="keywordtype">int</span> duty = 0;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> uint32_t tickcurrent = <a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>();</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">/* Ожидание момента изменения яркости */</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="comment">/* Период ШИМ 20 мс, поэтому менять яроксть надо 40 раз за период (туда обратно) */</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">if</span>((tickcurrent - led-&gt;tickprev) &gt; led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">LED_Period</a>/(<a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a>*2))</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> {</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="comment">/* Формирование разтухания */</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">if</span>(direction == 0)</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">if</span>(++duty &gt;= <a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a>)</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> direction = 1;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> duty = <a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a>;</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> }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="comment">/* Формирование затухания */</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">else</span></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="keywordflow">if</span>(--duty &lt;= 0)</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> direction = 0;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> duty = 0;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> }</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> }</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> led-&gt;tickprev = tickcurrent;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> }</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">/* Формирование ШИМ для изменения яркости */</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordtype">int</span> duty_crt = (duty*duty/<a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a>);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">if</span>(tickcurrent%<a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a> &lt; duty_crt)</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> HAL_GPIO_WritePin(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a>);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> {</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> HAL_GPIO_WritePin(led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>, led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>, !led-&gt;<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a>);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>}</div>
</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment">//------------------------GPIO LED FUNCTIONS-------------------------</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="comment">//------------------------GPIO SW FUNCTIONS-------------------------</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="comment"></span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment">/**</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment">* @brief Инициализировать кнопку (структуру кнопки)</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> * @param sw Указатель на структуру кнопки</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> * @param GPIOx Указатель на структуру порта для кнопки</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment"> * @param GPIO_PIN_X Пин для кнопки</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"> * @param SW_ActiveLevel Состояния пина, когда кнопка нажата</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment"> * @return HAL Status</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00258" data-start="{" data-end="}">
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7"> 258</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a>(<a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>{</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">if</span>(check_null_ptr_3(sw, GPIOx, GPIO_PIN_X))</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a> = GPIOx;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a> = GPIO_PIN_X;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">Sw_ActiveLvl</a> = SW_ActiveLevel;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span>}</div>
</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment"></span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="comment">/**</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="comment"> * @brief Считать состоянии кнопки </span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="comment"> * @param sw Указатель на структуру кнопки</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="comment"> * @return 1 - если кнопка нажата, </span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment"> * 0 - если отжата, </span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="comment"> * -1 - если ошибка</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment"> * @details Функция включает в себя неблокирующую проверку на дребезг</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment"> * Т.е. функцию надо вызывать постоянно, чтобы она мониторила состояние кнопки</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00278" data-start="{" data-end="}">
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70"> 278</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a>(<a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw)</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span>{</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span>(check_null_ptr_3(sw, sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a>, sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a>))</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span>(HAL_GPIO_ReadPin(sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a>, sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a>) == sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">Sw_ActiveLvl</a>)</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">Sw_PrevState</a> = 1;</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span>(sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">Sw_FilterDelay</a>) <span class="comment">// если включена защита от дребезга</span></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="keywordflow">if</span>(sw-&gt;tickprev == 0)</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> sw-&gt;tickprev = <a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>();</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span>((<a class="code hl_define" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>() - sw-&gt;tickprev) &gt;= sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">Sw_FilterDelay</a>)</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> {</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span>(HAL_GPIO_ReadPin(sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a>, sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a>) == sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">Sw_ActiveLvl</a>)</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> {</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> }</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> {</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> sw-&gt;tickprev = 0;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">return</span> 0;</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> }</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">else</span> <span class="comment">// если нет защиты от дребезга</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">if</span>(HAL_GPIO_ReadPin(sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a>, sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a>) == sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">Sw_ActiveLvl</a>)</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="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> }</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">else</span></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> sw-&gt;tickprev = 0;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> }</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> }</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> {</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> sw-&gt;<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">Sw_PrevState</a> = 0;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span>}</div>
</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="comment">//------------------------GPIO SW FUNCTIONS-------------------------</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</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="agroup___g_p_i_o___i_n_i_t_html_ga1d42e219765ec526d99e306638ac0023"><div class="ttname"><a href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a></div><div class="ttdeci">#define LED_PWM_TICKS</div><div class="ttdoc">Количество тиков в периоде ШИМ</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00036">general_gpio.h:36</a></div></div>
<div class="ttc" id="agroup___g_p_i_o___i_n_i_t_html_ga9c853b02c22f26023c34d1d404b6d653"><div class="ttname"><a href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a></div><div class="ttdeci">#define local_time()</div><div class="ttdoc">Локальное время</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00032">general_gpio.h: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="#l00022">general_gpio.c:22</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ga4b9572949326b050694cd55d0a7e5f6c"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Включить светодиод</div><div class="ttdef"><b>Definition</b> <a href="#l00091">general_gpio.c:91</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaa00f20021781464af3dfe74aa3e59a0a"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)</div><div class="ttdoc">Активировать моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="#l00164">general_gpio.c:164</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaadda2d4f021390a4e392210a5ace5357"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Выключить светодиод</div><div class="ttdef"><b>Definition</b> <a href="#l00107">general_gpio.c:107</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gac936453c7a0841c0b17bcfdae4958084"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_ActiveLevel)</div><div class="ttdoc">Инициализировать светодиод (структуру светодиода)</div><div class="ttdef"><b>Definition</b> <a href="#l00073">general_gpio.c:73</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gad6e6189824406c4d472b6340c7f19bb2"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a></div><div class="ttdeci">void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Управление динамическими режимами свечения светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00184">general_gpio.c:184</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gae78b570447d55a462a679a89dbaa8ea2"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state)</div><div class="ttdoc">Выставить светодиод по переменной</div><div class="ttdef"><b>Definition</b> <a href="#l00125">general_gpio.c:125</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaf22f44ecaf6a1932b47edc5a845b03a9"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)</div><div class="ttdoc">Активировать моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="#l00146">general_gpio.c:146</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a></div><div class="ttdeci">@ LED_IS_BLINKING</div><div class="ttdoc">Моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00066">general_gpio.h:66</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">LED_IS_OFF</a></div><div class="ttdeci">@ LED_IS_OFF</div><div class="ttdoc">Светодиод выключен</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00064">general_gpio.h:64</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a></div><div class="ttdeci">@ LED_IS_FADING</div><div class="ttdoc">Плавное моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00067">general_gpio.h:67</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">LED_IS_ON</a></div><div class="ttdeci">@ LED_IS_ON</div><div class="ttdoc">Светодиод включен</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00065">general_gpio.h:65</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_ga960b24335b2026abcad126ab8c422d70"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a></div><div class="ttdeci">int GPIO_Read_Switch(GPIO_SwitchTypeDef *sw)</div><div class="ttdoc">Считать состоянии кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00278">general_gpio.c:278</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_gacafee0e68877f2b25df843356871d1f7"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_ActiveLevel)</div><div class="ttdoc">Инициализировать кнопку (структуру кнопки)</div><div class="ttdef"><b>Definition</b> <a href="#l00258">general_gpio.c:258</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></div><div class="ttdoc">Структура светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00074">general_gpio.h:75</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a684ff60e4c94daf2221524cdc6fcc978"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef::LED_Pin</a></div><div class="ttdeci">uint32_t LED_Pin</div><div class="ttdoc">GPIO пин ножки светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00079">general_gpio.h:79</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a6cc026931a4681732f9a329ae03098ec"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef::LED_Period</a></div><div class="ttdeci">uint32_t LED_Period</div><div class="ttdoc">Период моргания светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00082">general_gpio.h:82</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a831923d4d157267ecc2f1add1c49adcf"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef::LED_Port</a></div><div class="ttdeci">GPIO_TypeDef * LED_Port</div><div class="ttdoc">GPIO порт ножки светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00078">general_gpio.h:78</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_abe9aadc0b28d042267f7155e187a1816"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef::LED_ActiveLvl</a></div><div class="ttdeci">uint8_t LED_ActiveLvl</div><div class="ttdoc">Активный уровень ножки (при котором светодиод горит)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00081">general_gpio.h:81</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_ad28d93023a00e3c5669bd3deda122435"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef::state</a></div><div class="ttdeci">GPIO_LEDStateTypeDef state</div><div class="ttdoc">Текущий режим работы светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00076">general_gpio.h:76</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></div><div class="ttdoc">Структура кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00091">general_gpio.h:92</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a245f1dc811279ce5d4598582db979a89"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">GPIO_SwitchTypeDef::Sw_PrevState</a></div><div class="ttdeci">uint32_t Sw_PrevState</div><div class="ttdoc">Предыдущее состояние кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00097">general_gpio.h:97</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a2600e599a961af2e280c721894df4c06"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">GPIO_SwitchTypeDef::Sw_FilterDelay</a></div><div class="ttdeci">uint32_t Sw_FilterDelay</div><div class="ttdoc">Фильтр от дребезга (в мс)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00098">general_gpio.h:98</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a4fadf5ead3ebccad521a52c064eeb405"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">GPIO_SwitchTypeDef::Sw_ActiveLvl</a></div><div class="ttdeci">uint8_t Sw_ActiveLvl</div><div class="ttdoc">Активный уровень ножки (при котором кнопка нажата)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00096">general_gpio.h:96</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a63d58d9cba49a5823175585ef2996032"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">GPIO_SwitchTypeDef::Sw_Pin</a></div><div class="ttdeci">uint32_t Sw_Pin</div><div class="ttdoc">GPIO пин ножки кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00094">general_gpio.h:94</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_afb369df75a6065fd89ac4ba97d98ab1a"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">GPIO_SwitchTypeDef::Sw_Port</a></div><div class="ttdeci">GPIO_TypeDef * Sw_Port</div><div class="ttdoc">GPIO порт ножки кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00093">general_gpio.h:93</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_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__gpio_8c.html">general_gpio.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>

View File

@ -0,0 +1,216 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.h File Reference</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">STM32_General<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__gpio_8h.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_gpio.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Заголовочный файл для модуля инициализации портов и работы с ними.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;mylibs_defs.h&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_gpio.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__gpio_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8h">
<area shape="rect" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__gpio_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__gpio_8hdep">
<area shape="rect" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="285,5,448,64"/>
<area shape="rect" href="general__tim_8h.html" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,112,168,171"/>
<area shape="poly" title=" " alt="" coords="276,72,164,114,162,109,275,67"/>
<area shape="rect" href="general__gpio_8c.html" title="Модуль для инициализации портов и работы с ними." alt="" coords="192,112,354,171"/>
<area shape="poly" title=" " alt="" coords="333,77,301,113,297,110,329,74"/>
<area shape="rect" href="general__spi_8c.html" title="Модуль для инициализации SPI." alt="" coords="379,112,541,171"/>
<area shape="poly" title=" " alt="" coords="404,74,436,110,432,113,400,77"/>
<area shape="rect" href="general__uart_8c.html" title="Модуль для инициализации UART." alt="" coords="565,112,728,171"/>
<area shape="poly" title=" " alt="" coords="458,67,571,109,569,114,457,72"/>
<area shape="rect" href="general__tim_8c.html" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,219,168,277"/>
<area shape="poly" title=" " alt="" coords="89,186,89,218,84,218,84,186"/>
</map>
</div>
</div>
<p><a href="general__gpio_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:GPIO_5FLEDTypeDef" id="r_GPIO_5FLEDTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура светодиода <a href="struct_g_p_i_o___l_e_d_type_def.html#details">More...</a><br /></td></tr>
<tr class="memitem:GPIO_5FSwitchTypeDef" id="r_GPIO_5FSwitchTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура кнопки <a href="struct_g_p_i_o___switch_type_def.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga9c853b02c22f26023c34d1d404b6d653" id="r_ga9c853b02c22f26023c34d1d404b6d653"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">local_time</a>()</td></tr>
<tr class="memdesc:ga9c853b02c22f26023c34d1d404b6d653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Локальное время <br /></td></tr>
<tr class="memitem:ga1d42e219765ec526d99e306638ac0023" id="r_ga1d42e219765ec526d99e306638ac0023"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">LED_PWM_TICKS</a>&#160;&#160;&#160;15</td></tr>
<tr class="memdesc:ga1d42e219765ec526d99e306638ac0023"><td class="mdescLeft">&#160;</td><td class="mdescRight">Количество тиков в периоде ШИМ <br /></td></tr>
<tr class="memitem:gaf2e697ac60e05813d45ea2c9c9e79c25" id="r_gaf2e697ac60e05813d45ea2c9c9e79c25"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25">LED_ON</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gaf2e697ac60e05813d45ea2c9c9e79c25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Состояние пина для включения светодиода <br /></td></tr>
<tr class="memitem:ga80700bb63bd56ebabbb4728aa433fd29" id="r_ga80700bb63bd56ebabbb4728aa433fd29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29">LED_OFF</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga80700bb63bd56ebabbb4728aa433fd29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Состояние пина для выключения светодиода <br /></td></tr>
<tr class="memitem:ga19d9e3aced311179a2914e0c9b13d0f9" id="r_ga19d9e3aced311179a2914e0c9b13d0f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9">SW_ON</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga19d9e3aced311179a2914e0c9b13d0f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Состояние пина при нажатой кнопке <br /></td></tr>
<tr class="memitem:gacd8900c9ec0efde1da3253b718574067" id="r_gacd8900c9ec0efde1da3253b718574067"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067">SW_OFF</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:gacd8900c9ec0efde1da3253b718574067"><td class="mdescLeft">&#160;</td><td class="mdescRight">Состояние пина при отжатой кнопке <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaac2b90d8b8c9579b6aa5d3bbda9b1ff1" id="r_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">GPIO_LEDStateTypeDef</a> { <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">LED_IS_OFF</a> = 0
, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">LED_IS_ON</a> = 1
, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a> = 2
, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a> = 3
}</td></tr>
<tr class="memdesc:gaac2b90d8b8c9579b6aa5d3bbda9b1ff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Режимы работы светодиода <a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga962f010f783b81fcdd27eb6b53db28e6" id="r_ga962f010f783b81fcdd27eb6b53db28e6"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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> (GPIO_TypeDef *GPIOx)</td></tr>
<tr class="memdesc:ga962f010f783b81fcdd27eb6b53db28e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить тактирование порта GPIO. <br /></td></tr>
<tr class="memitem:gacafee0e68877f2b25df843356871d1f7" id="r_gacafee0e68877f2b25df843356871d1f7"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a> (<a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)</td></tr>
<tr class="memdesc:gacafee0e68877f2b25df843356871d1f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализировать кнопку (структуру кнопки) <br /></td></tr>
<tr class="memitem:ga960b24335b2026abcad126ab8c422d70" id="r_ga960b24335b2026abcad126ab8c422d70"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a> (<a class="el" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *swstart)</td></tr>
<tr class="memdesc:ga960b24335b2026abcad126ab8c422d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать состоянии кнопки <br /></td></tr>
<tr class="memitem:gac936453c7a0841c0b17bcfdae4958084" id="r_gac936453c7a0841c0b17bcfdae4958084"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)</td></tr>
<tr class="memdesc:gac936453c7a0841c0b17bcfdae4958084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализировать светодиод (структуру светодиода) <br /></td></tr>
<tr class="memitem:ga4b9572949326b050694cd55d0a7e5f6c" id="r_ga4b9572949326b050694cd55d0a7e5f6c"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:ga4b9572949326b050694cd55d0a7e5f6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить светодиод <br /></td></tr>
<tr class="memitem:gaadda2d4f021390a4e392210a5ace5357" id="r_gaadda2d4f021390a4e392210a5ace5357"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:gaadda2d4f021390a4e392210a5ace5357"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выключить светодиод <br /></td></tr>
<tr class="memitem:gae78b570447d55a462a679a89dbaa8ea2" id="r_gae78b570447d55a462a679a89dbaa8ea2"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint8_t led_state)</td></tr>
<tr class="memdesc:gae78b570447d55a462a679a89dbaa8ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Выставить светодиод по переменной <br /></td></tr>
<tr class="memitem:gaf22f44ecaf6a1932b47edc5a845b03a9" id="r_gaf22f44ecaf6a1932b47edc5a845b03a9"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</td></tr>
<tr class="memdesc:gaf22f44ecaf6a1932b47edc5a845b03a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Активировать моргание светодиодом <br /></td></tr>
<tr class="memitem:gaa00f20021781464af3dfe74aa3e59a0a" id="r_gaa00f20021781464af3dfe74aa3e59a0a"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period)</td></tr>
<tr class="memdesc:gaa00f20021781464af3dfe74aa3e59a0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Активировать моргание светодиодом <br /></td></tr>
<tr class="memitem:gad6e6189824406c4d472b6340c7f19bb2" id="r_gad6e6189824406c4d472b6340c7f19bb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a> (<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led)</td></tr>
<tr class="memdesc:gad6e6189824406c4d472b6340c7f19bb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Управление динамическими режимами свечения светодиода <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для модуля инициализации портов и работы с ними. </p>
<p class="definition">Definition in file <a class="el" href="general__gpio_8h_source.html">general_gpio.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__gpio_8h.html">general_gpio.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>

View File

@ -0,0 +1,25 @@
var general__gpio_8h =
[
[ "local_time", "group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653", null ],
[ "LED_PWM_TICKS", "group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023", null ],
[ "LED_ON", "group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25", null ],
[ "LED_OFF", "group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29", null ],
[ "SW_ON", "group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9", null ],
[ "SW_OFF", "group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067", null ],
[ "GPIO_LEDStateTypeDef", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1", [
[ "LED_IS_OFF", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae", null ],
[ "LED_IS_ON", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea", null ],
[ "LED_IS_BLINKING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb", null ],
[ "LED_IS_FADING", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b", null ]
] ],
[ "GPIO_Clock_Enable", "group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6", null ],
[ "GPIO_Switch_Init", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7", null ],
[ "GPIO_Read_Switch", "group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70", null ],
[ "GPIO_LED_Init", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084", null ],
[ "GPIO_LED_On", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c", null ],
[ "GPIO_LED_Off", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357", null ],
[ "GPIO_LED_Set", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2", null ],
[ "GPIO_LED_Blink_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9", null ],
[ "GPIO_LED_Fading_Start", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a", null ],
[ "GPIO_LED_Dynamic_Handle", "group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2", null ]
];

View File

@ -0,0 +1,13 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="285,5,448,64"/>
<area shape="rect" id="Node000002" href="$general__tim_8h.html" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,112,168,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="276,72,164,114,162,109,275,67"/>
<area shape="rect" id="Node000004" href="$general__gpio_8c.html" title="Модуль для инициализации портов и работы с ними." alt="" coords="192,112,354,171"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="333,77,301,113,297,110,329,74"/>
<area shape="rect" id="Node000005" href="$general__spi_8c.html" title="Модуль для инициализации SPI." alt="" coords="379,112,541,171"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="404,74,436,110,432,113,400,77"/>
<area shape="rect" id="Node000006" href="$general__uart_8c.html" title="Модуль для инициализации UART." alt="" coords="565,112,728,171"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="458,67,571,109,569,114,457,72"/>
<area shape="rect" id="Node000003" href="$general__tim_8c.html" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,219,168,277"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="89,186,89,218,84,218,84,186"/>
</map>

View File

@ -0,0 +1 @@
d1578555423da8b189f071ac19f3d9b9

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>

View File

@ -0,0 +1 @@
68bed431cd7572bafd590f5698f90bc9

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,385 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_gpio.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">STM32_General<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__gpio_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_gpio.h</div></div>
</div><!--header-->
<div class="contents">
<a href="general__gpio_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_gpio.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для модуля инициализации портов и работы с ними.</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 GENERAL_GPIO GPIO Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup STM32_GENERAL</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Функции и макросы для удобной работы с GPIO.</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">Модуль предоставляет универсальные инструменты для работы с GPIO):</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> - @ref MYLIBS_GPIO_GENERAL — инициализация и общие функции работы с портами.</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> - @ref MYLIBS_GPIO_SWITCH — работа с GPIO как с кнопкой: чтение состояния, </span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> фильтрация дребезга, настройка активного уровня.</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> - @ref MYLIBS_GPIO_LEDS — работа с GPIO как со светодиодом: включение, </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"></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="preprocessor">#ifndef __GPIO_GENERAL_H_</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#define __GPIO_GENERAL_H_</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &quot;mylibs_defs.h&quot;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"></span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">/** </span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * @addtogroup GPIO_INIT GPIO Init defines</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * @ingroup MYLIBS_GPIO_GENERAL</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * @ingroup GENERAL_CONFIGS Конфигурации STM32 General</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * @brief Настройка состояний кнопок и количества тиков в периоде ШИМ</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * @{</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> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#ifndef local_time</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653"> 32</a></span><span class="preprocessor">#define local_time() HAL_GetTick() </span><span class="comment">///&lt; Локальное время</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif</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="preprocessor">#ifndef LED_PWM_TICKS</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023"> 36</a></span><span class="preprocessor">#define LED_PWM_TICKS 15 </span><span class="comment">///&lt; Количество тиков в периоде ШИМ</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#endif</span></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><span class="preprocessor">#ifndef LED_ON</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25"> 40</a></span><span class="preprocessor">#define LED_ON 1 </span><span class="comment">///&lt; Состояние пина для включения светодиода</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="preprocessor">#ifndef LED_OFF</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29"> 43</a></span><span class="preprocessor">#define LED_OFF 0 </span><span class="comment">///&lt; Состояние пина для выключения светодиода</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="preprocessor">#endif</span></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><span class="preprocessor">#ifndef SW_ON</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9"> 47</a></span><span class="preprocessor">#define SW_ON 1 </span><span class="comment">///&lt; Состояние пина при нажатой кнопке</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#ifndef SW_OFF</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067"> 50</a></span><span class="preprocessor">#define SW_OFF 0 </span><span class="comment">///&lt; Состояние пина при отжатой кнопке</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor">#endif</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">/** GPIO_INIT</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"> */</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</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">/**</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> * @brief Режимы работы светодиода</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> * @ingroup MYLIBS_GPIO_LEDS</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00062" data-start="{" data-end="};">
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1"> 62</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>{</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae"> 64</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">LED_IS_OFF</a> = 0, <span class="comment">///&lt; Светодиод выключен</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea"> 65</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">LED_IS_ON</a> = 1, <span class="comment">///&lt; Светодиод включен</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb"> 66</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a> = 2, <span class="comment">///&lt; Моргание светодиодом</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b"> 67</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a> = 3, <span class="comment">///&lt; Плавное моргание светодиодом</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}<a class="code hl_enumeration" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">GPIO_LEDStateTypeDef</a>;</div>
</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"></span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/**</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @brief Структура светодиода</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * @ingroup MYLIBS_GPIO_LEDS</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00074" data-start="{" data-end="};">
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html"> 74</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></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"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435"> 76</a></span> <a class="code hl_enumeration" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">GPIO_LEDStateTypeDef</a> <a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">state</a>; <span class="comment">///&lt; Текущий режим работы светодиода</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf"> 78</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">LED_Port</a>; <span class="comment">///&lt; GPIO порт ножки светодиода</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978"> 79</a></span> uint32_t <a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">LED_Pin</a>; <span class="comment">///&lt; GPIO пин ножки светодиода</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816"> 81</a></span> uint8_t <a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">LED_ActiveLvl</a>; <span class="comment">///&lt; Активный уровень ножки (при котором светодиод горит)</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec"> 82</a></span> uint32_t <a class="code hl_variable" href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">LED_Period</a>; <span class="comment">///&lt; Период моргания светодиода</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> uint32_t tickprev;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span>}<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a>;</div>
</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"></span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment">/**</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @brief Структура кнопки</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * @ingroup MYLIBS_GPIO_SWITCH</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00091" data-start="{" data-end="};">
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html"> 91</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a"> 93</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">Sw_Port</a>; <span class="comment">///&lt; GPIO порт ножки кнопки</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032"> 94</a></span> uint32_t <a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">Sw_Pin</a>; <span class="comment">///&lt; GPIO пин ножки кнопки</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405"> 96</a></span> uint8_t <a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">Sw_ActiveLvl</a>; <span class="comment">///&lt; Активный уровень ножки (при котором кнопка нажата)</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89"> 97</a></span> uint32_t <a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">Sw_PrevState</a>; <span class="comment">///&lt; Предыдущее состояние кнопки</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06"> 98</a></span> uint32_t <a class="code hl_variable" href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">Sw_FilterDelay</a>; <span class="comment">///&lt; Фильтр от дребезга (в мс)</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"> 100</span> uint32_t tickprev; </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}<a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a>;</div>
</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"></span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">/** </span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * @addtogroup MYLIBS_GPIO_GENERAL General tools</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> * @ingroup GENERAL_GPIO</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> * @brief Общие функции/макросы для работы с GPIO</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> // Включаем тактирование порта GPIOA</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> GPIO_Clock_Enable(GPIOA);</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"> */</span></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>HAL_StatusTypeDef <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>(GPIO_TypeDef *GPIOx);</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"></span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment">/** MYLIBS_GPIO_GENERAL</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> */</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"></span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">/** </span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> * @addtogroup MYLIBS_GPIO_SWITCH Switch tools</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * @ingroup GENERAL_GPIO</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * @brief Функции для работы с GPIO, как с кнопкой</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> MX_GPIO_Init(); // инициализация пина аппаратная</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> </span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> // Инициализация кнопки на порте GPIOB, пин 0, активный уровень 1</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> GPIO_SwitchTypeDef sw1;</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> GPIO_Switch_Init(&amp;sw1, GPIOB, GPIO_PIN_0, 1); // или дефайн SW_ON/SW_OFF</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"></span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"> // Считываем состояние кнопки</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment"> if(GPIO_Read_Switch(&amp;sw1))</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</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"> LED_ON();</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> }</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> else</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> {</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> // Кнопка отжата</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> LED_OFF();</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"> }</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment"> @endcode</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"> */</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment">/* Инициализировать кнопку (структуру кнопки) */</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a>(<a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State);</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="keywordtype">int</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a>(<a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> *swstart);</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">/** MYLIBS_GPIO_SWITCH</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment"> */</span></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><span class="comment"></span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment">/** </span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> * @addtogroup MYLIBS_GPIO_LEDS LED tools</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * @ingroup GENERAL_GPIO</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * @brief Функции для работы с GPIO, для управления светодиодом</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> MX_GPIO_Init(); // инициализация пина аппаратная</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"></span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment"> // Инициализация светодиода на порте GPIOA, пин 5, активный уровень 0</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"> GPIO_LEDTypeDef led;</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> GPIO_LED_Init(&amp;led, GPIOA, GPIO_PIN_5, 0); // или дефайн LED_ON/LED_OFF</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"></span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"> // Включение светодиода</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment"> GPIO_LED_On(&amp;led);</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment"></span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment"> // Запуск моргания</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment"> GPIO_LED_Blink_Start(&amp;led, 500); // Период 500 мс</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"></span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment"> // В основном цикле</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"> while (1) {</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"> GPIO_LED_Dynamic_Handle(&amp;led);</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"> }</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> */</span></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">/* Инициализировать светодиод (структуру светодиода) */</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="comment">/* Включить светодиод */</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a> (<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="comment">/* Выключить светодиод */</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a> (<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led);</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="comment">/* Выставить светодиод по переменной */</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a> (<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint8_t led_state);</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment">/* Активировать моргание светодиодом */</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a> (<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="comment">/* Активировать моргание светодиодом */</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led, uint32_t period);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment">/* Управление динамическими режимами свечения светодиода */</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a>(<a class="code hl_struct" href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a> *led);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"></span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment">/** MYLIBS_GPIO_LEDS</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></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="comment"></span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment">/** </span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment"> * @cond GPIO_INTERNAL</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment"> */</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="comment">// /**</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment">// * @brief Маппинг альтернативной функции SPI между GPIO</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment">// * @ingroup MYLIBS_GPIO_GENERAL</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="comment">// */</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment">// #define SPI_Alternate_Mapping(INSTANCE) \</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment">// ((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment">// (((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment">// (((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment">// (((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment">// (0))</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"></span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">/**</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment"> * @brief Маппинг альтернативной функции TIM между GPIO</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment"> * @ingroup MYLIBS_GPIO_GENERAL</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment"> */</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="preprocessor">#define GPIO_TIM_Alternate_Mapping(INSTANCE) \</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="preprocessor">((((INSTANCE) == TIM1) || ((INSTANCE) == TIM2))? GPIO_AF1_TIM1: \</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="preprocessor">(((INSTANCE) == TIM3) || ((INSTANCE) == TIM4) || ((INSTANCE) == TIM5))? GPIO_AF2_TIM3: \</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="preprocessor">(((INSTANCE) == TIM8) || ((INSTANCE) == TIM9) || ((INSTANCE) == TIM10) || ((INSTANCE) == TIM11))? GPIO_AF3_TIM8: \</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="preprocessor">(((INSTANCE) == TIM12) || ((INSTANCE) == TIM13) || ((INSTANCE) == TIM14))? GPIO_AF9_TIM12: \</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="preprocessor">(0))</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment"></span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="comment">/** @endcond */</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="preprocessor">#endif </span><span class="comment">// __GPIO_GENERAL_H_</span></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="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ga4b9572949326b050694cd55d0a7e5f6c"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">GPIO_LED_On</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_On(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Включить светодиод</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00091">general_gpio.c:91</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaa00f20021781464af3dfe74aa3e59a0a"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">GPIO_LED_Fading_Start</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Fading_Start(GPIO_LEDTypeDef *led, uint32_t period)</div><div class="ttdoc">Активировать моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00164">general_gpio.c:164</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaac2b90d8b8c9579b6aa5d3bbda9b1ff1"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">GPIO_LEDStateTypeDef</a></div><div class="ttdeci">GPIO_LEDStateTypeDef</div><div class="ttdoc">Режимы работы светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00062">general_gpio.h:63</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaadda2d4f021390a4e392210a5ace5357"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">GPIO_LED_Off</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Off(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Выключить светодиод</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00107">general_gpio.c:107</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gac936453c7a0841c0b17bcfdae4958084"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">GPIO_LED_Init</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Init(GPIO_LEDTypeDef *led, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t LED_On_State)</div><div class="ttdoc">Инициализировать светодиод (структуру светодиода)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00073">general_gpio.c:73</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gad6e6189824406c4d472b6340c7f19bb2"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">GPIO_LED_Dynamic_Handle</a></div><div class="ttdeci">void GPIO_LED_Dynamic_Handle(GPIO_LEDTypeDef *led)</div><div class="ttdoc">Управление динамическими режимами свечения светодиода</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00184">general_gpio.c:184</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gae78b570447d55a462a679a89dbaa8ea2"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">GPIO_LED_Set</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Set(GPIO_LEDTypeDef *led, uint8_t led_state)</div><div class="ttdoc">Выставить светодиод по переменной</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00125">general_gpio.c:125</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_gaf22f44ecaf6a1932b47edc5a845b03a9"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">GPIO_LED_Blink_Start</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_LED_Blink_Start(GPIO_LEDTypeDef *led, uint32_t period)</div><div class="ttdoc">Активировать моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00146">general_gpio.c:146</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">LED_IS_BLINKING</a></div><div class="ttdeci">@ LED_IS_BLINKING</div><div class="ttdoc">Моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="#l00066">general_gpio.h:66</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">LED_IS_OFF</a></div><div class="ttdeci">@ LED_IS_OFF</div><div class="ttdoc">Светодиод выключен</div><div class="ttdef"><b>Definition</b> <a href="#l00064">general_gpio.h:64</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">LED_IS_FADING</a></div><div class="ttdeci">@ LED_IS_FADING</div><div class="ttdoc">Плавное моргание светодиодом</div><div class="ttdef"><b>Definition</b> <a href="#l00067">general_gpio.h:67</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___l_e_d_s_html_ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">LED_IS_ON</a></div><div class="ttdeci">@ LED_IS_ON</div><div class="ttdoc">Светодиод включен</div><div class="ttdef"><b>Definition</b> <a href="#l00065">general_gpio.h:65</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_ga960b24335b2026abcad126ab8c422d70"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a></div><div class="ttdeci">int GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart)</div><div class="ttdoc">Считать состоянии кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00278">general_gpio.c:278</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_gacafee0e68877f2b25df843356871d1f7"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)</div><div class="ttdoc">Инициализировать кнопку (структуру кнопки)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00258">general_gpio.c:258</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html">GPIO_LEDTypeDef</a></div><div class="ttdoc">Структура светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00074">general_gpio.h:75</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a684ff60e4c94daf2221524cdc6fcc978"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a684ff60e4c94daf2221524cdc6fcc978">GPIO_LEDTypeDef::LED_Pin</a></div><div class="ttdeci">uint32_t LED_Pin</div><div class="ttdoc">GPIO пин ножки светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00079">general_gpio.h:79</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a6cc026931a4681732f9a329ae03098ec"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a6cc026931a4681732f9a329ae03098ec">GPIO_LEDTypeDef::LED_Period</a></div><div class="ttdeci">uint32_t LED_Period</div><div class="ttdoc">Период моргания светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00082">general_gpio.h:82</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_a831923d4d157267ecc2f1add1c49adcf"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#a831923d4d157267ecc2f1add1c49adcf">GPIO_LEDTypeDef::LED_Port</a></div><div class="ttdeci">GPIO_TypeDef * LED_Port</div><div class="ttdoc">GPIO порт ножки светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00078">general_gpio.h:78</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_abe9aadc0b28d042267f7155e187a1816"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#abe9aadc0b28d042267f7155e187a1816">GPIO_LEDTypeDef::LED_ActiveLvl</a></div><div class="ttdeci">uint8_t LED_ActiveLvl</div><div class="ttdoc">Активный уровень ножки (при котором светодиод горит)</div><div class="ttdef"><b>Definition</b> <a href="#l00081">general_gpio.h:81</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___l_e_d_type_def_html_ad28d93023a00e3c5669bd3deda122435"><div class="ttname"><a href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef::state</a></div><div class="ttdeci">GPIO_LEDStateTypeDef state</div><div class="ttdoc">Текущий режим работы светодиода</div><div class="ttdef"><b>Definition</b> <a href="#l00076">general_gpio.h:76</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></div><div class="ttdoc">Структура кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00091">general_gpio.h:92</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a245f1dc811279ce5d4598582db979a89"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89">GPIO_SwitchTypeDef::Sw_PrevState</a></div><div class="ttdeci">uint32_t Sw_PrevState</div><div class="ttdoc">Предыдущее состояние кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00097">general_gpio.h:97</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a2600e599a961af2e280c721894df4c06"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06">GPIO_SwitchTypeDef::Sw_FilterDelay</a></div><div class="ttdeci">uint32_t Sw_FilterDelay</div><div class="ttdoc">Фильтр от дребезга (в мс)</div><div class="ttdef"><b>Definition</b> <a href="#l00098">general_gpio.h:98</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a4fadf5ead3ebccad521a52c064eeb405"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405">GPIO_SwitchTypeDef::Sw_ActiveLvl</a></div><div class="ttdeci">uint8_t Sw_ActiveLvl</div><div class="ttdoc">Активный уровень ножки (при котором кнопка нажата)</div><div class="ttdef"><b>Definition</b> <a href="#l00096">general_gpio.h:96</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_a63d58d9cba49a5823175585ef2996032"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032">GPIO_SwitchTypeDef::Sw_Pin</a></div><div class="ttdeci">uint32_t Sw_Pin</div><div class="ttdoc">GPIO пин ножки кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00094">general_gpio.h:94</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html_afb369df75a6065fd89ac4ba97d98ab1a"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a">GPIO_SwitchTypeDef::Sw_Port</a></div><div class="ttdeci">GPIO_TypeDef * Sw_Port</div><div class="ttdoc">GPIO порт ножки кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00093">general_gpio.h:93</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_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__gpio_8h.html">general_gpio.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>

View File

@ -0,0 +1,229 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_spi.c File Reference</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">STM32_General<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__spi_8c.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_spi.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для инициализации SPI.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="general__spi_8h_source.html">general_spi.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="general__gpio_8h_source.html">general_gpio.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_spi.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__spi_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__spi_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__spi_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__spi_8c">
<area shape="rect" title="Модуль для инициализации SPI." alt="" coords="36,5,198,64"/>
<area shape="rect" href="general__spi_8h.html" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,112,104,139"/>
<area shape="poly" title=" " alt="" coords="99,66,74,101,70,97,95,63"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="127,112,232,139"/>
<area shape="poly" title=" " alt="" coords="140,63,164,97,160,101,135,66"/>
<area shape="rect" title=" " alt="" coords="66,187,168,213"/>
<area shape="poly" title=" " alt="" coords="67,137,98,173,94,177,63,141"/>
<area shape="poly" title=" " alt="" coords="171,141,140,177,136,173,167,137"/>
</map>
</div>
</div>
<p><a href="general__spi_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0e177e3c57a8fcdc73b5602e72ec66ba" id="r_ga0e177e3c57a8fcdc73b5602e72ec66ba"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a> (<a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</td></tr>
<tr class="memdesc:ga0e177e3c57a8fcdc73b5602e72ec66ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация SPI с помощью структуры <a class="el" href="struct_s_p_i___settings_type_def.html" title="Структура настроек SPI.">SPI_SettingsTypeDef</a>. <br /></td></tr>
<tr class="memitem:ae80d21e5cab86571709a2619442733b5" id="r_ae80d21e5cab86571709a2619442733b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a> (<a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</td></tr>
<tr class="memdesc:ae80d21e5cab86571709a2619442733b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация GPIO для SPI. <br /></td></tr>
<tr class="memitem:abb78b8bd5303e88f969694e6fe03c411" id="r_abb78b8bd5303e88f969694e6fe03c411"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abb78b8bd5303e88f969694e6fe03c411">SPI_DMA_Init</a> (SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</td></tr>
<tr class="memitem:gab9f13318daf02bc5b5f302ae392dccac" id="r_gab9f13318daf02bc5b5f302ae392dccac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a> (SPI_HandleTypeDef *hspi)</td></tr>
<tr class="memdesc:gab9f13318daf02bc5b5f302ae392dccac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка тактирования и прерываний SPI. <br /></td></tr>
<tr class="memitem:gac279cc3eaa35541edfe330a1844a85e4" id="r_gac279cc3eaa35541edfe330a1844a85e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a> (SPI_HandleTypeDef *hspi)</td></tr>
<tr class="memdesc:gac279cc3eaa35541edfe330a1844a85e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация тактирования и прерываний SPI. <br /></td></tr>
<tr class="memitem:ga333dd251bc878931086d48aa932b1a5f" id="r_ga333dd251bc878931086d48aa932b1a5f"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a> (<a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</td></tr>
<tr class="memdesc:ga333dd251bc878931086d48aa932b1a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Проверка корректности структуры инициализации SPI. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для инициализации SPI. </p>
<p>Реализация функций для работы с SPI:</p><ul>
<li>Инициализация SPI и его линий CLK/MISO/MOSI</li>
<li>Настройка GPIO для SPI</li>
<li>Настройка NVIC и тактирования SPI </li>
</ul>
<p class="definition">Definition in file <a class="el" href="general__spi_8c_source.html">general_spi.c</a>.</p>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="ae80d21e5cab86571709a2619442733b5" name="ae80d21e5cab86571709a2619442733b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae80d21e5cab86571709a2619442733b5">&#9670;&#160;</a></span>SPI_GPIO_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SPI_GPIO_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>sspi</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Инициализация GPIO для SPI. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sspi</td><td>Указатель на структуру с настройками SPI. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="general__spi_8c_source.html#l00058">58</a> of file <a class="el" href="general__spi_8c_source.html">general_spi.c</a>.</p>
</div>
</div>
<a id="abb78b8bd5303e88f969694e6fe03c411" name="abb78b8bd5303e88f969694e6fe03c411"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb78b8bd5303e88f969694e6fe03c411">&#9670;&#160;</a></span>SPI_DMA_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SPI_DMA_Init </td>
<td>(</td>
<td class="paramtype">SPI_HandleTypeDef *</td> <td class="paramname"><span class="paramname"><em>hspi</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DMA_HandleTypeDef *</td> <td class="paramname"><span class="paramname"><em>hdma_rx</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DMA_Stream_TypeDef *</td> <td class="paramname"><span class="paramname"><em>DMAChannel</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t</td> <td class="paramname"><span class="paramname"><em>DMA_CHANNEL_X</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="general__spi_8c_source.html#l00089">89</a> of file <a class="el" href="general__spi_8c_source.html">general_spi.c</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__spi_8c.html">general_spi.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>

View File

@ -0,0 +1,8 @@
var general__spi_8c =
[
[ "SPI_Base_Init", "group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba", null ],
[ "SPI_GPIO_Init", "general__spi_8c.html#ae80d21e5cab86571709a2619442733b5", null ],
[ "SPI_MspInit", "group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac", null ],
[ "SPI_MspDeInit", "group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4", null ],
[ "SPI_Check_Init_Struct", "group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f", null ]
];

View File

@ -0,0 +1,10 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_spi.c" name="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_spi.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации SPI." alt="" coords="36,5,198,64"/>
<area shape="rect" id="Node000002" href="$general__spi_8h.html" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,112,104,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="99,66,74,101,70,97,95,63"/>
<area shape="rect" id="Node000004" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="127,112,232,139"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="140,63,164,97,160,101,135,66"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="66,187,168,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="67,137,98,173,94,177,63,141"/>
<area shape="poly" id="edge4_Node000004_Node000003" title=" " alt="" coords="171,141,140,177,136,173,167,137"/>
</map>

View File

@ -0,0 +1 @@
8b63f3984c201b2d11b0a9c8ae6ad314

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,427 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_spi.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">STM32_General<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__spi_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_spi.c</div></div>
</div><!--header-->
<div class="contents">
<a href="general__spi_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_spi.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для инициализации SPI.</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">Реализация функций для работы с SPI:</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> - Инициализация SPI и его линий CLK/MISO/MOSI</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> - Настройка GPIO для SPI</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> - Настройка NVIC и тактирования SPI</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="general__spi_8h.html">general_spi.h</a>&quot;</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__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">//------------------------SPI INIT FUNCTIONS------------------------</span><span class="comment"></span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">/** </span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * @brief Инициализация SPI с помощью структуры SPI_SettingsTypeDef.</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * @param sspi Указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * @details </span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * Инициализирует SPI и его GPIO.</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * Настройка аналогична HAL_SPI_Init </span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * suart.hspi.Init...</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * @endcode </span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * но дополнительно надо прописать пины CLK/MISO/MOSI @ref SPI_SettingsTypeDef</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00028" data-start="{" data-end="}">
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba"> 28</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span>{ <span class="comment">// function takes setting structure for init</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span>(<a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a>(sspi) != HAL_OK)</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> HAL_ERROR;</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> <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>(&amp;sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>); </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">if</span> (HAL_SPI_Init(&amp;sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>) != HAL_OK)</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> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> }</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> <span class="comment">// init gpio from SPISettings structure</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_function" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a>(sspi);</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><span class="comment">// // init dma from SPISettings structure if need</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// if (sspi-&gt;DMAChannel != 0)</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment">// SPI_DMA_Init(&amp;sspi-&gt;hspi, sspi-&gt;hspi.hdmarx, sspi-&gt;DMAChannel, sspi-&gt;DMA_CHANNEL_X);</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="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
</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><span class="comment"></span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">/** </span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"> * @brief Инициализация GPIO для SPI.</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> * @param sspi Указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5"> 58</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{ </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> GPIO_InitTypeDef GPIO_InitStruct = {0}; </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// GPIO INIT </span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</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>(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">CLK_GPIOx</a>);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</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>(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">MISO_GPIOx</a>);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</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>(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">MOSI_GPIOx</a>); </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// CLK PIN INIT</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> GPIO_InitStruct.Pin = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">CLK_PIN</a>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> GPIO_InitStruct.Alternate = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">CLK_GPIO_AlternageFunc</a>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> HAL_GPIO_Init(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">CLK_GPIOx</a>, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// MISO PIN INIT</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> GPIO_InitStruct.Pin = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">MISO_PIN</a>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> GPIO_InitStruct.Alternate = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">MISO_GPIO_AlternageFunc</a>;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> GPIO_InitStruct.Pull = GPIO_NOPULL;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> HAL_GPIO_Init(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">MISO_GPIOx</a>, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// MOSI PIN INIT</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> GPIO_InitStruct.Pin = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">MOSI_PIN</a>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> GPIO_InitStruct.Alternate = sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">MOSI_GPIO_AlternageFunc</a>;</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> HAL_GPIO_Init(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">MOSI_GPIOx</a>, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>}</div>
</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> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="keywordtype">void</span> SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>{ <span class="comment">// function takes spi and dma handlers and dmachannel for spi</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">// // for now only dma rx is supported, tx maybe later if needed</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">// // calc defines on boot_project_setup.h</span></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">// /* SPI3 DMA Init */</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment">// /* SPI3_RX Init */</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment">// </span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">// hdma_rx-&gt;Instance = DMAChannel;</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">//#if defined(STM32F4xx) // dma channel choose for 407</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment">// hdma_rx-&gt;Init.Channel = DMA_CHANNEL_X;</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">//#endif</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment">// hdma_rx-&gt;Init.Direction = DMA_PERIPH_TO_MEMORY;</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment">// hdma_rx-&gt;Init.PeriphInc = DMA_PINC_DISABLE;</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment">// hdma_rx-&gt;Init.MemInc = DMA_MINC_ENABLE;</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment">// hdma_rx-&gt;Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment">// hdma_rx-&gt;Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// hdma_rx-&gt;Init.Mode = DMA_CIRCULAR;</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment">// hdma_rx-&gt;Init.Priority = DMA_PRIORITY_LOW;</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment">// if (HAL_DMA_Init(hdma_rx) != HAL_OK)</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment">// {</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">// MyLibs_Error_Handler();</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> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment">// __USER_LINKDMA(hspi,hdmarx,hdma_rx); </span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">// </span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</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="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment">// // so you get error because hal uses . insted of -&gt;</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>}</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"></span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/** </span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> * @brief Настройка тактирования и прерываний SPI.</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> * @param hspi Указатель на хендл SPI.</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> дефайнами @ref SPI_INIT в @ref general_spi.h определяются используемые SPI.</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00127" data-start="{" data-end="}">
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac"> 127</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>(SPI_HandleTypeDef *hspi) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>{ </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// rcc, dma and interrupt init for SPIs</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// GPIO init was moved to own functions SPI_GPIO_Init </span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="preprocessor">#ifdef USE_SPI1</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI1)</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">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">/* SPI1 clock enable */</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> __HAL_RCC_SPI1_CLK_ENABLE();</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="comment">/* SPI1 interrupt Init */</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> HAL_NVIC_EnableIRQ(SPI1_IRQn);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI1</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor">#ifdef USE_SPI2</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI2)</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="comment">/* SPI2 clock enable */</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> __HAL_RCC_SPI2_CLK_ENABLE();</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="comment">/* SPI2 interrupt Init */</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> HAL_NVIC_SetPriority(SPI2_IRQn, 0, 0);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> HAL_NVIC_EnableIRQ(SPI2_IRQn);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> }</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI2</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor">#ifdef USE_SPI3</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI3)</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">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="comment">/* SPI3 clock enable */</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> __HAL_RCC_SPI3_CLK_ENABLE(); </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="comment">/* SPI3 interrupt Init */</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> HAL_NVIC_SetPriority(SPI3_IRQn, 0, 0);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> HAL_NVIC_EnableIRQ(SPI3_IRQn);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI3</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"></span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">/** </span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment"> * @brief Деинициализация тактирования и прерываний SPI.</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> * @param hspi Указатель на хендл SPI.</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых SPI,</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="comment"> дефайнами @ref SPI_INIT в @ref general_spi.h определяются используемые SPI.</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4"> 191</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a>(SPI_HandleTypeDef *hspi) <span class="comment">// analog for hal function</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span>{ </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// rcc, dma and interrupt init for SPIs</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// GPIO init was moved to own functions SPI_GPIO_Init </span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">if</span>(0);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="preprocessor">#ifdef USE_SPI1</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI1)</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> {</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment">// /* DMA2 clock enable */</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment">// __HAL_RCC_DMA2_CLK_ENABLE();</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment">// HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="comment">/* SPI1 clock reset */</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> __HAL_RCC_SPI1_FORCE_RESET();</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> __HAL_RCC_SPI1_RELEASE_RESET();</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> }</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI1</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor">#ifdef USE_SPI2</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hspi-&gt;Instance==SPI2)</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment">// /* DMA1 clock enable */</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment">// /* DMA interrupt init */</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);</span></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">/* SPI2 clock reset */</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> __HAL_RCC_SPI2_FORCE_RESET();</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> __HAL_RCC_SPI2_RELEASE_RESET();</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_SPI2</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="preprocessor">#ifdef USE_SPI3</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>(hspi-&gt;Instance==SPI3)</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><span class="comment">// __HAL_RCC_DMA1_CLK_ENABLE();</span></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><span class="comment">// HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment">// HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);</span></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">/* SPI3 clock reset */</span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> __HAL_RCC_SPI3_FORCE_RESET();</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> __HAL_RCC_SPI3_RELEASE_RESET();</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="preprocessor">#endif </span><span class="comment">// USE_SPI3</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span>}</div>
</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"></span> </div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="comment">/** </span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="comment"> * @brief Проверка корректности структуры инициализации SPI.</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="comment"> * @param sspi Указатель на структуру с настройками SPI.</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00246" data-start="{" data-end="}">
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"><a class="line" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f"> 246</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span>{</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// check is settings are valid</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">if</span> (!IS_SPI_ALL_INSTANCE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Instance))</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="comment">// check init settings</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">if</span> (!IS_SPI_MODE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.Mode))</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">if</span> (!IS_SPI_DIRECTION(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.Direction))</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">if</span> (!IS_SPI_DATASIZE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.DataSize))</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">if</span> (!IS_SPI_BAUDRATE_PRESCALER(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.BaudRatePrescaler))</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (!IS_SPI_CPOL(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CLKPolarity))</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (!IS_SPI_CPHA(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CLKPhase))</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">if</span> (!IS_SPI_NSS(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.NSS))</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">if</span> (!IS_SPI_FIRST_BIT(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.FirstBit))</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span> (!IS_SPI_CRC_CALCULATION(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CRCCalculation))</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (!IS_SPI_CRC_POLYNOMIAL(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.NSS) &amp;&amp; </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> (sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.CRCCalculation != SPI_CRCCALCULATION_DISABLE))</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span> (!IS_SPI_TIMODE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>.Init.TIMode))</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="comment">// check gpio</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">if</span> (!IS_GPIO_ALL_INSTANCE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">CLK_GPIOx</a>) || !IS_GPIO_ALL_INSTANCE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">MISO_GPIOx</a>) || !IS_GPIO_ALL_INSTANCE(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">MOSI_GPIOx</a>))</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">if</span> (!IS_GPIO_PIN(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">CLK_PIN</a>) &amp;&amp; !IS_GPIO_PIN(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">MISO_PIN</a>) &amp;&amp; !IS_GPIO_PIN(sspi-&gt;<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">MOSI_PIN</a>)) <span class="comment">// if both pins arent set up</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span>}</div>
</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__spi_8c_html_ae80d21e5cab86571709a2619442733b5"><div class="ttname"><a href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a></div><div class="ttdeci">void SPI_GPIO_Init(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Инициализация GPIO для SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00058">general_spi.c:58</a></div></div>
<div class="ttc" id="ageneral__spi_8h_html"><div class="ttname"><a href="general__spi_8h.html">general_spi.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации SPI.</div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_ga0e177e3c57a8fcdc73b5602e72ec66ba"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Инициализация SPI с помощью структуры SPI_SettingsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="#l00028">general_spi.c:28</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_ga333dd251bc878931086d48aa932b1a5f"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a></div><div class="ttdeci">HAL_StatusTypeDef SPI_Check_Init_Struct(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Проверка корректности структуры инициализации SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00246">general_spi.c:246</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_gab9f13318daf02bc5b5f302ae392dccac"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a></div><div class="ttdeci">void SPI_MspInit(SPI_HandleTypeDef *hspi)</div><div class="ttdoc">Настройка тактирования и прерываний SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00127">general_spi.c:127</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_gac279cc3eaa35541edfe330a1844a85e4"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a></div><div class="ttdeci">void SPI_MspDeInit(SPI_HandleTypeDef *hspi)</div><div class="ttdoc">Деинициализация тактирования и прерываний SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00191">general_spi.c:191</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_s_p_i___settings_type_def_html"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></div><div class="ttdoc">Структура настроек SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00104">general_spi.h:105</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0af3bdb273818ff97eb4ff3cff918820"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef::MOSI_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MOSI_GPIOx</div><div class="ttdoc">Порт MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00116">general_spi.h:116</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0d55a2941854f61934487f3d209cfa95"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef::MISO_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MISO_GPIOx</div><div class="ttdoc">Порт MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00112">general_spi.h:112</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3366c654d7ec6dd41c6a0b504dc8509a"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef::MISO_PIN</a></div><div class="ttdeci">uint32_t MISO_PIN</div><div class="ttdoc">Пин MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00113">general_spi.h:113</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3bcb1ed12da3544e02e6d36493669bdc"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef::CLK_PIN</a></div><div class="ttdeci">uint32_t CLK_PIN</div><div class="ttdoc">Пин CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00109">general_spi.h:109</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3f3748103a0b7861f6700042fd691ba1"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef::CLK_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t CLK_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00110">general_spi.h:110</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a6a15d48eccf92959de3a086031fdc979"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef::CLK_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * CLK_GPIOx</div><div class="ttdoc">Порт CLK.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00108">general_spi.h:108</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a961208869faf4a7369aaf4edde75f176"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef::MOSI_PIN</a></div><div class="ttdeci">uint32_t MOSI_PIN</div><div class="ttdoc">Пин MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00117">general_spi.h:117</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_ad203d8b8d67e4f477d002d15b03ba422"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">SPI_SettingsTypeDef::hspi</a></div><div class="ttdeci">SPI_HandleTypeDef hspi</div><div class="ttdoc">HAL handle SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00106">general_spi.h:106</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_aecd7a5c6e205335b8ed229d74cd35d14"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef::MISO_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MISO_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MISO.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00114">general_spi.h:114</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_afbe75a1c36650a4a9b41fa706a4c7eab"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef::MOSI_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MOSI_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MOSI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8h_source.html#l00118">general_spi.h:118</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_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__spi_8c.html">general_spi.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>

View File

@ -0,0 +1,181 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.h File Reference</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">STM32_General<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__spi_8h.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_spi.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Заголовочный файл для модуля инициализации SPI.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;mylibs_defs.h&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_spi.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__spi_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8h">
<area shape="rect" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,5,168,64"/>
<area shape="rect" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__spi_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__spi_8hdep">
<area shape="rect" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,5,168,64"/>
<area shape="rect" href="general__spi_8c.html" title="Модуль для инициализации SPI." alt="" coords="5,112,168,171"/>
<area shape="poly" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>
</div>
</div>
<p><a href="general__spi_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:SPI_5FSettingsTypeDef" id="r_SPI_5FSettingsTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура настроек SPI. <a href="struct_s_p_i___settings_type_def.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga8ad4712bf4add56892d057778e826e0c" id="r_ga8ad4712bf4add56892d057778e826e0c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c">HAL_SPI_MODULE_ENABLED</a></td></tr>
<tr class="memdesc:ga8ad4712bf4add56892d057778e826e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включение HAL SPI. <br /></td></tr>
<tr class="memitem:ga2fe0c8aeb2c61679f32836fef479eedf" id="r_ga2fe0c8aeb2c61679f32836fef479eedf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf">USE_SPI1</a></td></tr>
<tr class="memdesc:ga2fe0c8aeb2c61679f32836fef479eedf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить SPI1 в <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga53687cddb8e39e76a79b8ffaa152fb2b" id="r_ga53687cddb8e39e76a79b8ffaa152fb2b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b">USE_SPI2</a></td></tr>
<tr class="memdesc:ga53687cddb8e39e76a79b8ffaa152fb2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить SPI2 в <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga5fdd6e5934a8005ef05b80f6d95883dc" id="r_ga5fdd6e5934a8005ef05b80f6d95883dc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc">USE_SPI3</a></td></tr>
<tr class="memdesc:ga5fdd6e5934a8005ef05b80f6d95883dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить SPI3 в <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga0e177e3c57a8fcdc73b5602e72ec66ba" id="r_ga0e177e3c57a8fcdc73b5602e72ec66ba"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a> (<a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</td></tr>
<tr class="memdesc:ga0e177e3c57a8fcdc73b5602e72ec66ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация SPI с помощью структуры <a class="el" href="struct_s_p_i___settings_type_def.html" title="Структура настроек SPI.">SPI_SettingsTypeDef</a>. <br /></td></tr>
<tr class="memitem:ga333dd251bc878931086d48aa932b1a5f" id="r_ga333dd251bc878931086d48aa932b1a5f"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a> (<a class="el" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi)</td></tr>
<tr class="memdesc:ga333dd251bc878931086d48aa932b1a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Проверка корректности структуры инициализации SPI. <br /></td></tr>
<tr class="memitem:gab9f13318daf02bc5b5f302ae392dccac" id="r_gab9f13318daf02bc5b5f302ae392dccac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a> (SPI_HandleTypeDef *hspi)</td></tr>
<tr class="memdesc:gab9f13318daf02bc5b5f302ae392dccac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка тактирования и прерываний SPI. <br /></td></tr>
<tr class="memitem:gac279cc3eaa35541edfe330a1844a85e4" id="r_gac279cc3eaa35541edfe330a1844a85e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a> (SPI_HandleTypeDef *hspi)</td></tr>
<tr class="memdesc:gac279cc3eaa35541edfe330a1844a85e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация тактирования и прерываний SPI. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для модуля инициализации SPI. </p>
<p class="definition">Definition in file <a class="el" href="general__spi_8h_source.html">general_spi.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__spi_8h.html">general_spi.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>

View File

@ -0,0 +1,11 @@
var general__spi_8h =
[
[ "HAL_SPI_MODULE_ENABLED", "group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c", null ],
[ "USE_SPI1", "group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf", null ],
[ "USE_SPI2", "group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b", null ],
[ "USE_SPI3", "group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc", null ],
[ "SPI_Base_Init", "group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba", null ],
[ "SPI_Check_Init_Struct", "group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f", null ],
[ "SPI_MspInit", "group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac", null ],
[ "SPI_MspDeInit", "group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4", null ]
];

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" href="$general__spi_8c.html" title="Модуль для инициализации SPI." alt="" coords="5,112,168,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>

View File

@ -0,0 +1 @@
c903c276cca85c5923ff5068f197f939

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации SPI." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>

View File

@ -0,0 +1 @@
83dc252106efd70993d5839178a5da7e

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,305 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_spi.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">STM32_General<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__spi_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_spi.h</div></div>
</div><!--header-->
<div class="contents">
<a href="general__spi_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_spi.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для модуля инициализации SPI.</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 GENERAL_SPI SPI Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup STM32_GENERAL</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Функции и макросы для удобной работы с SPI.</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">Модуль предоставляет функции для базовой инициализации SPI</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">// Структура настроек SPI</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">SPI_SettingsTypeDef spi1Settings;</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 SPI1_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"> // Настройка SPI1 как Master, 8 бит, полный дуплекс</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> spi1Settings.hspi.Instance = SPI1;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> spi1Settings.hspi.Init.Mode = SPI_MODE_MASTER;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> spi1Settings.hspi.Init.Direction = SPI_DIRECTION_2LINES;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> spi1Settings.hspi.Init.DataSize = SPI_DATASIZE_8BIT;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> spi1Settings.hspi.Init.CLKPolarity = SPI_POLARITY_LOW;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> spi1Settings.hspi.Init.CLKPhase = SPI_PHASE_1EDGE;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> spi1Settings.hspi.Init.NSS = SPI_NSS_SOFT;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> spi1Settings.hspi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> spi1Settings.hspi.Init.FirstBit = SPI_FIRSTBIT_MSB;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> spi1Settings.hspi.Init.TIMode = SPI_TIMODE_DISABLE;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> spi1Settings.hspi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"></span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> // Настройка GPIO</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"> spi1Settings.CLK_GPIOx = GPIOA;</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> spi1Settings.CLK_PIN = GPIO_PIN_5;</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> spi1Settings.CLK_GPIO_AlternageFunc = GPIO_AF5_SPI1;</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"></span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> spi1Settings.MISO_GPIOx = GPIOA;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> spi1Settings.MISO_PIN = GPIO_PIN_6;</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> spi1Settings.MISO_GPIO_AlternageFunc = GPIO_AF5_SPI1;</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"> spi1Settings.MOSI_GPIOx = GPIOA;</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> spi1Settings.MOSI_PIN = GPIO_PIN_7;</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> spi1Settings.MOSI_GPIO_AlternageFunc = GPIO_AF5_SPI1;</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"> // Инициализация SPI</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"> if(SPI_Base_Init(&amp;spi1Settings) != HAL_OK)</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment"> {</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> // Обработка ошибки</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment"> Error_Handler();</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"> }</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">@endcode</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment"></span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"></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">* @note Требуется подключение модуля SPI в библиотеке HAL </span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment">@code </span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">#define HAL_SPI_MODULE_ENABLED</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">* @{</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="preprocessor">#ifndef __SPI_GENERAL_H_</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#define __SPI_GENERAL_H_</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"></span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">/** </span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * @addtogroup SPI_INIT SPI Init defines</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @ingroup GENERAL_SPI</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * @ingroup GENERAL_CONFIGS Конфигурации STM32 General</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * @brief Настройка SPI</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></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c"> 76</a></span><span class="preprocessor">#define HAL_SPI_MODULE_ENABLED </span><span class="comment">///&lt; Включение HAL SPI</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf"> 78</a></span><span class="preprocessor">#define USE_SPI1 </span><span class="comment">///&lt; Включить SPI1 в @ref SPI_MspInit</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b"> 79</a></span><span class="preprocessor">#define USE_SPI2 </span><span class="comment">///&lt; Включить SPI2 в @ref SPI_MspInit</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc"> 80</a></span><span class="preprocessor">#define USE_SPI3 </span><span class="comment">///&lt; Включить SPI3 в @ref SPI_MspInit</span><span class="comment"></span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment">/** SPI_INIT</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> */</span><span class="preprocessor"></span><span class="comment"></span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="preprocessor">#include &quot;mylibs_defs.h&quot;</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</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">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="comment"></span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"></span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment">/**</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * @brief Структура настроек SPI</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> * @details Содержит все необходимые параметры для инициализации SPI,</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> * включая GPIO и DMA.</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00104" data-start="{" data-end="};">
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html"> 104</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>{</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422"> 106</a></span> SPI_HandleTypeDef <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">hspi</a>; <span class="comment">///&lt; HAL handle SPI</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979"> 108</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">CLK_GPIOx</a>; <span class="comment">///&lt; Порт CLK</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc"> 109</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">CLK_PIN</a>; <span class="comment">///&lt; Пин CLK</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1"> 110</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">CLK_GPIO_AlternageFunc</a>; <span class="comment">///&lt; Альтернативная функция для CLK</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95"> 112</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">MISO_GPIOx</a>; <span class="comment">///&lt; Порт MISO</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a"> 113</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">MISO_PIN</a>; <span class="comment">///&lt; Пин MISO</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14"> 114</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">MISO_GPIO_AlternageFunc</a>; <span class="comment">///&lt; Альтернативная функция для MISO</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820"> 116</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">MOSI_GPIOx</a>; <span class="comment">///&lt; Порт MOSI</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176"> 117</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">MOSI_PIN</a>; <span class="comment">///&lt; Пин MOSI</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab"> 118</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">MOSI_GPIO_AlternageFunc</a>; <span class="comment">///&lt; Альтернативная функция для MOSI</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95"> 120</a></span> DMA_Stream_TypeDef *<a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95">DMAChannel</a>; <span class="comment">///&lt; Канал DMA (NULL если не нужен)</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474"> 121</a></span> uint32_t <a class="code hl_variable" href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474">DMA_CHANNEL_X</a>; <span class="comment">///&lt; Номер канала DMA (0 если не нужен)</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span>} <a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a>;<span class="comment"></span></div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"></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">///////////////////////////---FUNCTIONS---///////////////////////////</span></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><span class="comment">/* Инициализация SPI с использованием структуры настроек */</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);</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><span class="comment">/* Проверка корректности структуры настроек SPI */</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);</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">/* Инициализация тактирования и прерываний для выбранного SPI */</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a>(SPI_HandleTypeDef *hspi);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment">/* Деинициализация тактирования и прерываний для выбранного SPI */</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a>(SPI_HandleTypeDef *hspi);</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment"></span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">/** </span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * @cond SPI_INTERNAL</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> */</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">/* Настройка GPIO для SPI */</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="keywordtype">void</span> <a class="code hl_function" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a>(<a class="code hl_struct" href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a> *sspi);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment">/* Настройка DMA для SPI */</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="keywordtype">void</span> SPI_DMA_Init(SPI_HandleTypeDef *hspi, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor">#ifndef __USER_LINKDMA</span><span class="comment"></span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment">/** </span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"> * @brief Аналог HAL макроса для привязки DMA к UART.</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> * @note @ref __HAL_LINKDMA.</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor">#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor">do{ \</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor">(__HANDLE__)-&gt;__PPP_DMA_FIELD__ = (__DMA_HANDLE__); \</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor">(__DMA_HANDLE__)-&gt;Parent = (__HANDLE__);} while(0U)</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"></span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment">/** @endcond */</span><span class="comment"></span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></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="preprocessor">#endif </span><span class="comment">// __SPI_GENERAL_H_</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"></span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment">/** GENERAL_SPI</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> */</span></div>
<div class="ttc" id="ageneral__spi_8c_html_ae80d21e5cab86571709a2619442733b5"><div class="ttname"><a href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">SPI_GPIO_Init</a></div><div class="ttdeci">void SPI_GPIO_Init(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Инициализация GPIO для SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00058">general_spi.c:58</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_ga0e177e3c57a8fcdc73b5602e72ec66ba"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">SPI_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef SPI_Base_Init(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Инициализация SPI с помощью структуры SPI_SettingsTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00028">general_spi.c:28</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_ga333dd251bc878931086d48aa932b1a5f"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">SPI_Check_Init_Struct</a></div><div class="ttdeci">HAL_StatusTypeDef SPI_Check_Init_Struct(SPI_SettingsTypeDef *sspi)</div><div class="ttdoc">Проверка корректности структуры инициализации SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00246">general_spi.c:246</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_gab9f13318daf02bc5b5f302ae392dccac"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">SPI_MspInit</a></div><div class="ttdeci">void SPI_MspInit(SPI_HandleTypeDef *hspi)</div><div class="ttdoc">Настройка тактирования и прерываний SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00127">general_spi.c:127</a></div></div>
<div class="ttc" id="agroup___g_e_n_e_r_a_l___s_p_i_html_gac279cc3eaa35541edfe330a1844a85e4"><div class="ttname"><a href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">SPI_MspDeInit</a></div><div class="ttdeci">void SPI_MspDeInit(SPI_HandleTypeDef *hspi)</div><div class="ttdoc">Деинициализация тактирования и прерываний SPI.</div><div class="ttdef"><b>Definition</b> <a href="general__spi_8c_source.html#l00191">general_spi.c:191</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html">SPI_SettingsTypeDef</a></div><div class="ttdoc">Структура настроек SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00104">general_spi.h:105</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0af3bdb273818ff97eb4ff3cff918820"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0af3bdb273818ff97eb4ff3cff918820">SPI_SettingsTypeDef::MOSI_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MOSI_GPIOx</div><div class="ttdoc">Порт MOSI.</div><div class="ttdef"><b>Definition</b> <a href="#l00116">general_spi.h:116</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a0d55a2941854f61934487f3d209cfa95"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a0d55a2941854f61934487f3d209cfa95">SPI_SettingsTypeDef::MISO_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * MISO_GPIOx</div><div class="ttdoc">Порт MISO.</div><div class="ttdef"><b>Definition</b> <a href="#l00112">general_spi.h:112</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3366c654d7ec6dd41c6a0b504dc8509a"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3366c654d7ec6dd41c6a0b504dc8509a">SPI_SettingsTypeDef::MISO_PIN</a></div><div class="ttdeci">uint32_t MISO_PIN</div><div class="ttdoc">Пин MISO.</div><div class="ttdef"><b>Definition</b> <a href="#l00113">general_spi.h:113</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3bcb1ed12da3544e02e6d36493669bdc"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3bcb1ed12da3544e02e6d36493669bdc">SPI_SettingsTypeDef::CLK_PIN</a></div><div class="ttdeci">uint32_t CLK_PIN</div><div class="ttdoc">Пин CLK.</div><div class="ttdef"><b>Definition</b> <a href="#l00109">general_spi.h:109</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3cfd9469b0617a68bbd2a161ba06bb95"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3cfd9469b0617a68bbd2a161ba06bb95">SPI_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="#l00120">general_spi.h:120</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a3f3748103a0b7861f6700042fd691ba1"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a3f3748103a0b7861f6700042fd691ba1">SPI_SettingsTypeDef::CLK_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t CLK_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для CLK.</div><div class="ttdef"><b>Definition</b> <a href="#l00110">general_spi.h:110</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a6a15d48eccf92959de3a086031fdc979"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a6a15d48eccf92959de3a086031fdc979">SPI_SettingsTypeDef::CLK_GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * CLK_GPIOx</div><div class="ttdoc">Порт CLK.</div><div class="ttdef"><b>Definition</b> <a href="#l00108">general_spi.h:108</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_a961208869faf4a7369aaf4edde75f176"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#a961208869faf4a7369aaf4edde75f176">SPI_SettingsTypeDef::MOSI_PIN</a></div><div class="ttdeci">uint32_t MOSI_PIN</div><div class="ttdoc">Пин MOSI.</div><div class="ttdef"><b>Definition</b> <a href="#l00117">general_spi.h:117</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_aa0edaa145076d2383b3e0095d156d474"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#aa0edaa145076d2383b3e0095d156d474">SPI_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="#l00121">general_spi.h:121</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_ad203d8b8d67e4f477d002d15b03ba422"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#ad203d8b8d67e4f477d002d15b03ba422">SPI_SettingsTypeDef::hspi</a></div><div class="ttdeci">SPI_HandleTypeDef hspi</div><div class="ttdoc">HAL handle SPI.</div><div class="ttdef"><b>Definition</b> <a href="#l00106">general_spi.h:106</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_aecd7a5c6e205335b8ed229d74cd35d14"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#aecd7a5c6e205335b8ed229d74cd35d14">SPI_SettingsTypeDef::MISO_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MISO_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MISO.</div><div class="ttdef"><b>Definition</b> <a href="#l00114">general_spi.h:114</a></div></div>
<div class="ttc" id="astruct_s_p_i___settings_type_def_html_afbe75a1c36650a4a9b41fa706a4c7eab"><div class="ttname"><a href="struct_s_p_i___settings_type_def.html#afbe75a1c36650a4a9b41fa706a4c7eab">SPI_SettingsTypeDef::MOSI_GPIO_AlternageFunc</a></div><div class="ttdeci">uint32_t MOSI_GPIO_AlternageFunc</div><div class="ttdoc">Альтернативная функция для MOSI.</div><div class="ttdef"><b>Definition</b> <a href="#l00118">general_spi.h:118</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_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__spi_8h.html">general_spi.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>

View File

@ -0,0 +1,178 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_tim.c File Reference</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">STM32_General<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__tim_8c.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_tim.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для инициализации таймеров и работы с ними.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="general__tim_8h_source.html">general_tim.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_tim.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__tim_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__tim_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__tim_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__tim_8c">
<area shape="rect" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" href="general__tim_8h.html" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="37,112,136,139"/>
<area shape="poly" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
<area shape="rect" title=" " alt="" coords="35,261,138,288"/>
<area shape="poly" title=" " alt="" coords="84,140,69,187,70,218,78,247,72,248,65,219,64,186,78,138"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="79,187,184,213"/>
<area shape="poly" title=" " alt="" coords="97,138,118,172,114,175,92,141"/>
<area shape="poly" title=" " alt="" coords="126,215,105,249,100,247,122,212"/>
</map>
</div>
</div>
<p><a href="general__tim_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7044214f24a9868ba7e1650b55e639ec" id="r_ga7044214f24a9868ba7e1650b55e639ec"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a> (<a class="el" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a> *stim)</td></tr>
<tr class="memdesc:ga7044214f24a9868ba7e1650b55e639ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация таймера. <br /></td></tr>
<tr class="memitem:ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc" id="r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc, TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация режима энкодер у таймера. <br /></td></tr>
<tr class="memitem:gadb2f465d89f609e035867e980c3a29c6" id="r_gadb2f465d89f609e035867e980c3a29c6"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a> (TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)</td></tr>
<tr class="memdesc:gadb2f465d89f609e035867e980c3a29c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация выхода ШИМ таймера. <br /></td></tr>
<tr class="memitem:gae2608ca8023e9a0713af0b4fbfbc1889" id="r_gae2608ca8023e9a0713af0b4fbfbc1889"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a> (TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</td></tr>
<tr class="memdesc:gae2608ca8023e9a0713af0b4fbfbc1889"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация OC компаратора таймера. <br /></td></tr>
<tr class="memitem:gac3bc6525f88c275e47eb864e6d567501" id="r_gac3bc6525f88c275e47eb864e6d567501"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</td></tr>
<tr class="memdesc:gac3bc6525f88c275e47eb864e6d567501"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать энкодер. <br /></td></tr>
<tr class="memitem:ga117b795017e9e3a357ddefe323412761" id="r_ga117b795017e9e3a357ddefe323412761"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</td></tr>
<tr class="memdesc:ga117b795017e9e3a357ddefe323412761"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать кнопку энкодера. <br /></td></tr>
<tr class="memitem:ga88c552a133cb6e3015453cccab74c07e" id="r_ga88c552a133cb6e3015453cccab74c07e"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a> (TIM_HandleTypeDef *htim, uint16_t delay)</td></tr>
<tr class="memdesc:ga88c552a133cb6e3015453cccab74c07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Задержка в тиках таймера (блокирующая). <br /></td></tr>
<tr class="memitem:ga4c0dfde4e15f677600605348b4e97834" id="r_ga4c0dfde4e15f677600605348b4e97834"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a> (TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga4c0dfde4e15f677600605348b4e97834"><td class="mdescLeft">&#160;</td><td class="mdescRight">Начать отсчет неблокирующей задержки. <br /></td></tr>
<tr class="memitem:ga108637af414bff3373059273b815ce9b" id="r_ga108637af414bff3373059273b815ce9b"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a> (TIM_HandleTypeDef *htim, uint16_t delay)</td></tr>
<tr class="memdesc:ga108637af414bff3373059273b815ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Задержка в тиках таймера (неблокирующая). <br /></td></tr>
<tr class="memitem:gaad47337be7ba2f6c0777c40d7278c931" id="r_gaad47337be7ba2f6c0777c40d7278c931"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a> (TIM_HandleTypeDef *htim, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> it_mode)</td></tr>
<tr class="memdesc:gaad47337be7ba2f6c0777c40d7278c931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация CLK и NVIC таймеров. <br /></td></tr>
<tr class="memitem:ga879e3f1c919c02990736730275367115" id="r_ga879e3f1c919c02990736730275367115"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a> (TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga879e3f1c919c02990736730275367115"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация CLK и NVIC таймеров. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для инициализации таймеров и работы с ними. </p>
<p>Реализация функций для работы с TIM:</p><ul>
<li>Инициализация таймера и его каналов</li>
<li>Формирование задержек через таймеры</li>
<li>Считывание энкодера </li>
</ul>
<p class="definition">Definition in file <a class="el" href="general__tim_8c_source.html">general_tim.c</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__tim_8c.html">general_tim.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>

View File

@ -0,0 +1,14 @@
var general__tim_8c =
[
[ "TIM_Base_Init", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec", null ],
[ "TIM_Encoder_Init", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc", null ],
[ "TIM_Output_PWM_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6", null ],
[ "TIM_OC_Comparator_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889", null ],
[ "TIM_Encoder_Read", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501", null ],
[ "TIM_Encoder_ReadSwitch", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761", null ],
[ "TIM_Delay", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e", null ],
[ "TIM_Delay_Start", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834", null ],
[ "TIM_Delay_NonBlocking", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b", null ],
[ "TIM_Base_MspInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931", null ],
[ "TIM_Base_MspDeInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115", null ]
];

View File

@ -0,0 +1,10 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_tim.c" name="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_tim.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" href="$general__tim_8h.html" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="37,112,136,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="35,261,138,288"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="84,140,69,187,70,218,78,247,72,248,65,219,64,186,78,138"/>
<area shape="rect" id="Node000004" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="79,187,184,213"/>
<area shape="poly" id="edge3_Node000002_Node000004" title=" " alt="" coords="97,138,118,172,114,175,92,141"/>
<area shape="poly" id="edge4_Node000004_Node000003" title=" " alt="" coords="126,215,105,249,100,247,122,212"/>
</map>

View File

@ -0,0 +1 @@
84a30a38fa125914f0ea422aa76f801a

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -0,0 +1,895 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_tim.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">STM32_General<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__tim_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_tim.c</div></div>
</div><!--header-->
<div class="contents">
<a href="general__tim_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_tim.c</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Модуль для инициализации таймеров и работы с ними.</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">Реализация функций для работы с TIM:</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> - Инициализация таймера и его каналов</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> - Формирование задержек через таймеры</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> - Считывание энкодера</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;<a class="code" href="general__tim_8h.html">general_tim.h</a>&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">//-------------------------TIM INIT FUNCTIONS------------------------ </span><span class="comment"></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"> * @brief Инициализация таймера.</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment"> * @param stim Указатель на структуру с настройками таймера.</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * @details </span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * Инициализирует таймер исходя из настроек верхнего уровня:</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * - Длительность одного тика @ref TIM_MHzTickBaseTypeDef</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * - Частота таймера (в Гц, float)</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * - Частота тактирования таймера от шины (в Гц, float)</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * </span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * При невозможности выставления частоты при заданой длительности тика</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * длительность тика увеличивается до тех пор, пока частота не будет достигнута.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * </span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * При выставлении дефайна @ref UPDATE_TIM_PARAMS_AFTER_INITIALIZATION</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"> * </span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * Также остается возможность низкоуровневой настройки по структурам @ref TIM_SettingsTypeDef.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> * Для этого надо высокоуровневые настройки приравнять к нулю</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="}">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec"> 34</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a>(<a class="code hl_struct" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a> *stim)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span>{ <span class="comment">// function takes structure for init</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// check that htim is defined</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">if</span>(check_null_ptr_2(stim, stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Instance))</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </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> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a>) <span class="comment">// if tickbase isnt disable</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>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">sTimAHBFreqMHz</a> == NULL)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> HAL_ERROR; </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler = (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">sTimAHBFreqMHz</a>*stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a>) - 1;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">if</span> ((stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">sTimFreqHz</a> != NULL))</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period = ((1000000/stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a>) / stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">sTimFreqHz</a>) - 1;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period == NULL)</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period = 0xFFFF;</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> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a>)</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler = (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler + 1)/stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a> - 1;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period = (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period + 1)*stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a> - 1;</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> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a> = 1;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</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">// fix overflow of presc and period if need</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler &gt; 0xFFFF) || (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period &gt; 0xFFFF); i++)</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> { </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (i&gt;10) <span class="comment">// if it isnt fixed after 10 itteration - return HAL_ERRPOR</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"> 67</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// if timbase is too big (prescaller too big for choosen base from MHZ)</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler &gt; 0xFFFF)</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">// переносим часть пресскалера в период</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler = ((stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler + 1)/2) - 1;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period = ((stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period + 1)*2) - 1;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// обновляем TickBase, если есть куда обновлять</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> &gt; 1)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> /= 2;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// обновляем sTickBasePrescaler, если sTickBaseUS - уже в минимуме</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> == 1)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a> *= 2;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">else</span> <span class="comment">// if TickBase = 0 - return error</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> HAL_ERROR;</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">// if freq is too low (period too big for choosen base)</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period &gt; 0xFFFF)</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> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period = ((stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Period + 1)/2) - 1;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler = ((stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Init.Prescaler + 1)*2) - 1;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// обновляем TickBase</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> *= 2;</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> }</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">//-------------TIM BASE INIT----------------</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// tim base init </span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">sTimMode</a>);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">if</span> (HAL_TIM_Base_Init(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>) != HAL_OK)</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> HAL_ERROR;</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"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">//-------------CLOCK SRC INIT---------------</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// fill sClockSourceConfig if its NULL</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">if</span> (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">sClockSourceConfig</a>.ClockSource == NULL)</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">sClockSourceConfig</a>.ClockSource = TIM_CLOCKSOURCE_INTERNAL; </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// clock source init </span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">if</span> (HAL_TIM_ConfigClockSource(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, &amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">sClockSourceConfig</a>) != HAL_OK)</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> HAL_ERROR;</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> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">//--------------SLAVE INIT------------------ </span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// if slave mode enables - config it</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">sSlaveConfig</a>.SlaveMode)</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> {</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// slave mode init </span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">if</span> (HAL_TIM_SlaveConfigSynchro(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, &amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">sSlaveConfig</a>) != HAL_OK)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> } </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">//--------------MASTER INIT----------------- </span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// master mode init </span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">if</span> (HAL_TIMEx_MasterConfigSynchronization(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, &amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">sMasterConfig</a>) != HAL_OK)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> } </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">//--------------BDTR INIT----------------- </span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (HAL_TIMEx_ConfigBreakDeadTime(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, &amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">sBreakDeadTimeConfig</a>) != HAL_OK)</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> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">//----------------IT CLEAR------------------- </span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> __HAL_TIM_CLEAR_IT(&amp;stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>, TIM_IT_UPDATE);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// обновляем TickBase</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor"> #ifdef UPDATE_TIM_PARAMS_AFTER_INITIALIZATION</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> = (stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Instance-&gt;PSC+1)*stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a>/(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">sTimAHBFreqMHz</a>);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">if</span>(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> == 0) <span class="comment">// if prescaler is too high</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> { <span class="comment">// recalc what is prescaler irl</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a> = 1;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a> = stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">sTimAHBFreqMHz</a>/(stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Instance-&gt;PSC+1);</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="preprocessor"> #endif</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> stim-&gt;<a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>.Instance-&gt;CNT = 0;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>}</div>
</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </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><span class="comment"></span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment">/** </span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> * @brief Инициализация режима энкодер у таймера.</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * @param henc Указатель на хендл энкодера.</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00168" data-start="{" data-end="}">
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"> 168</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc, TIM_HandleTypeDef *htim)</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="keywordflow">if</span>(check_null_ptr_3(henc, htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">if</span>(check_null_ptr_3(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">GPIO_PIN_TI1</a>, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">GPIO_PIN_TI2</a>))</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> HAL_StatusTypeDef RES = HAL_ERROR;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a> = htim;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// setup channel for pwm</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> RES = HAL_TIM_Encoder_Init(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>, &amp;henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">sConfig</a>);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">if</span> (RES != HAL_OK)</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> {</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> }</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> RES = <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>(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">if</span>(RES != HAL_OK)</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> }</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> GPIO_InitStruct.Pin = henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">GPIO_PIN_TI1</a>|henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">GPIO_PIN_TI2</a>;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> GPIO_InitStruct.Alternate = GPIO_TIM_Alternate_Mapping(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>-&gt;Instance);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">if</span>(GPIO_InitStruct.Alternate)</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> HAL_GPIO_Init(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">if</span>(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">GPIO_PIN_SW</a>)</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="comment">/*Configure switch pin */</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> GPIO_InitStruct.Pin = henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">GPIO_PIN_SW</a>;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> GPIO_InitStruct.Mode = GPIO_MODE_INPUT;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> HAL_GPIO_Init(henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a>(&amp;henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">Sw</a>, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">GPIO_PIN_SW</a>, 0);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span>}</div>
</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="comment"></span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment">/** </span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment"> * @brief Инициализация выхода ШИМ таймера.</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment"> * @param sConfigOC Указатель на настрйоки канала таймера.</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment"> * @param TIM_CHANNEL Канал таймера для настройки.</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment"> * @param GPIOx Порт для вывода ШИМ.</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment"> * @param GPIO_PIN Пин для вывода ШИМ.</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment"> * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00226" data-start="{" data-end="}">
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6"> 226</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a>(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)</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="keywordflow">if</span>(check_null_ptr_3(htim, htim-&gt;Instance, sConfigOC))</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">if</span>(check_null_ptr_2(GPIOx, GPIO_PIN))</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> GPIO_InitTypeDef GPIO_InitStruct = {0};</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> HAL_StatusTypeDef RES = HAL_ERROR;</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// setup channel for pwm</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> RES = HAL_TIM_PWM_ConfigChannel(htim, sConfigOC, TIM_CHANNEL);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">if</span> (RES != HAL_OK)</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> {</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> }</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// choose port for enable clock</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> RES = <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="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span>(RES != HAL_OK)</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> {</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }</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> GPIO_InitStruct.Pin = GPIO_PIN;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">if</span>(sConfigOC-&gt;OCPolarity == TIM_OCNPOLARITY_HIGH)</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> GPIO_InitStruct.Pull = GPIO_PULLDOWN;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> GPIO_InitStruct.Pull = GPIO_PULLUP;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> GPIO_InitStruct.Alternate = GPIO_TIM_Alternate_Mapping(htim-&gt;Instance);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">if</span>(GPIO_InitStruct.Alternate)</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> HAL_GPIO_Init(GPIOx, &amp;GPIO_InitStruct);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span>}</div>
</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment"></span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment">/** </span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="comment"> * @brief Инициализация OC компаратора таймера.</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment"> * @param TIM_CHANNEL Канал таймера для настройки.</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="comment"> * @note Предварительно надо инициализировать таймер @ref TIM_Base_Init.</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00272" data-start="{" data-end="}">
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889"> 272</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a>(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span>{ </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> TIM_OC_InitTypeDef sConfigOC = {0};</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> HAL_StatusTypeDef RES = HAL_ERROR;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> sConfigOC.OCMode = TIM_OCMODE_ACTIVE;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> sConfigOC.Pulse = 0;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> </div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> RES = HAL_TIM_OC_ConfigChannel(htim, &amp;sConfigOC, TIM_CHANNEL);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (RES != HAL_OK)</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> {</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> MyLibs_Error_Handler();</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">return</span> RES;</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="keywordflow">return</span> RES;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span>}</div>
</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="comment">//-------------------------TIM USER FUNCTIONS------------------------ </span><span class="comment"></span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="comment">/** </span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="comment"> * @brief Считать энкодер.</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="comment"> * @param henc Указатель на хендл энкодера.</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="comment"> * @details Читает разницу энкодера, которую он накопил после </span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="comment"> * предыдущего вызова этой функции.</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00303" data-start="{" data-end="}">
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501"> 303</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span>{</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">if</span>(check_null_ptr_3(henc, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>, henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>-&gt;Instance))</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> uint16_t cnt_now = (uint16_t)henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>-&gt;Instance-&gt;CNT;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> int16_t diff = (int16_t)(cnt_now - henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">Encoder_Shdw</a>); <span class="comment">// переполнение корректно обрабатывается</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">Encoder_Diff</a> = diff;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">Encoder_Shdw</a> = cnt_now;</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span>}<span class="comment"></span></div>
</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="comment">/** </span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="comment"> * @brief Считать кнопку энкодера.</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="comment"> * @param henc Указатель на хендл энкодера.</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment"> * @return 1 - если кнопка нажата, </span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment"> * 0 - если отжата, </span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="comment"> * -1 - если ошибка</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00322" data-start="{" data-end="}">
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761"> 322</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</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="keywordflow">if</span>(check_null_ptr_1(henc))</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">return</span> -1;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a>(&amp;henc-&gt;<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">Sw</a>);</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span>}</div>
</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="comment"></span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="comment">/** </span></div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span><span class="comment"> * @brief Задержка в тиках таймера (блокирующая).</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span><span class="comment"> * @param delay Задержка в тиках таймера.</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span><span class="comment"> * @details Формирует задержку с блокировкой программы.</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00337" data-start="{" data-end="}">
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e"> 337</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a>(TIM_HandleTypeDef *htim, uint16_t delay)</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span>{</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">return</span> HAL_ERROR;</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="keywordflow">if</span>(delay &gt;= htim-&gt;Instance-&gt;ARR)</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> {</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keywordflow">return</span> HAL_ERROR;</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> htim-&gt;Instance-&gt;CNT = 0;</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">while</span>(1)</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> {</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> <span class="keywordflow">if</span>(htim-&gt;Instance-&gt;CNT &gt; delay)</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> {</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> }</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span>}</div>
</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span><span class="comment"></span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="comment">/** </span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span><span class="comment"> * @brief Начать отсчет неблокирующей задержки.</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span><span class="comment"> * @details Сбрасывает счетчик для начала отсчета неблокирующей задержки.</span></div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span><span class="comment"> * @ref TIM_Delay_NonBlocking для проверки статуса задержки</span></div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00363" data-start="{" data-end="}">
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834"> 363</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a>(TIM_HandleTypeDef *htim)</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span>{ </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> htim-&gt;Instance-&gt;CNT = 0;</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">return</span> HAL_OK;</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span>}</div>
</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="comment"></span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="comment">/** </span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span><span class="comment"> * @brief Задержка в тиках таймера (неблокирующая).</span></div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span><span class="comment"> * @param delay Задержка в тиках таймера.</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span><span class="comment"> * @return HAL status.</span></div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span><span class="comment"> * @details Формирует задержку с блокировкой программы.</span></div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="comment"> * Перед ожиданием задержки надо запутстить таймер @ref TIM_Delay_Start</span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span><span class="comment"> * @note Таймер не должен использоваться на время этой задержки</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00382" data-start="{" data-end="}">
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b"> 382</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a>(TIM_HandleTypeDef *htim, uint16_t delay)</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span>{ </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> </div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">if</span>(delay &gt;= htim-&gt;Instance-&gt;ARR)</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> {</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <span class="keywordflow">return</span> HAL_ERROR;</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> }</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">if</span>(htim-&gt;Instance-&gt;CNT &lt;= delay)</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> {</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">return</span> HAL_BUSY;</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> }</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> {</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordflow">return</span> HAL_OK;</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> }</div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span>}</div>
</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span><span class="comment"></span> </div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span><span class="comment">/** </span></div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span><span class="comment"> * @brief Инициализация CLK и NVIC таймеров.</span></div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span><span class="comment"> * @note Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров,</span></div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span><span class="comment"> дефайнами @ref TIM_INIT в @ref general_tim.h определяются используемые таймеры.</span></div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00408" data-start="{" data-end="}">
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931"> 408</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>(TIM_HandleTypeDef* htim, <a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> it_mode)</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span>{</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> </div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> it_mode = it_mode&amp;TIM_IT_CONF;</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span><span class="preprocessor">#ifdef USE_TIM1</span></div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM1)</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> {</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="comment">/* TIM2 clock enable */</span></div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> __HAL_RCC_TIM1_CLK_ENABLE();</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> <span class="comment">/* TIM2 interrupt Init */</span></div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> {</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> }</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> }</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="preprocessor">#ifdef USE_TIM2</span></div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM2)</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> {</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <span class="comment">/* TIM2 clock enable */</span></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> __HAL_RCC_TIM2_CLK_ENABLE();</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="comment">/* TIM2 interrupt Init */</span></div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> {</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> HAL_NVIC_EnableIRQ(TIM2_IRQn);</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> }</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> }</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span><span class="preprocessor">#ifdef USE_TIM3</span></div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM3)</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> {</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="comment">/* TIM3 clock enable */</span></div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> __HAL_RCC_TIM3_CLK_ENABLE();</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> </div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="comment">/* TIM3 interrupt Init */</span></div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> {</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> HAL_NVIC_EnableIRQ(TIM3_IRQn);</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> }</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> }</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span><span class="preprocessor">#ifdef USE_TIM4</span></div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM4)</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="comment">/* TIM4 clock enable */</span></div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> __HAL_RCC_TIM4_CLK_ENABLE();</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> </div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <span class="comment">/* TIM4 interrupt Init */</span></div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> {</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> HAL_NVIC_SetPriority(TIM4_IRQn, 0, 0);</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> HAL_NVIC_EnableIRQ(TIM4_IRQn);</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> }</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> }</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="preprocessor">#ifdef USE_TIM5</span></div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM5)</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="comment">/* TIM5 clock enable */</span></div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> __HAL_RCC_TIM5_CLK_ENABLE();</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="comment">/* TIM5 interrupt Init */</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> {</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> HAL_NVIC_SetPriority(TIM5_IRQn, 0, 0);</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> HAL_NVIC_EnableIRQ(TIM5_IRQn);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> }</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> }</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="preprocessor">#ifdef USE_TIM6</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM6)</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> {</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="comment">/* TIM6 clock enable */</span></div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> __HAL_RCC_TIM6_CLK_ENABLE();</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="comment">/* TIM6 interrupt Init */</span></div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> }</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> }</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span><span class="preprocessor">#ifdef USE_TIM7</span></div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM7)</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> {</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="comment">/* TIM7 clock enable */</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> __HAL_RCC_TIM7_CLK_ENABLE();</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> </div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="comment">/* TIM7 interrupt Init */</span></div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> {</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> HAL_NVIC_EnableIRQ(TIM7_IRQn);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> }</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> }</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span><span class="preprocessor">#ifdef USE_TIM8</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM8)</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> {</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="comment">/* TIM8 clock enable */</span></div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> __HAL_RCC_TIM8_CLK_ENABLE();</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="comment">/* TIM8 interrupt Init */</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> {</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span><span class="preprocessor">#ifdef USE_TIM9</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM9)</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> {</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="comment">/* TIM9 clock enable */</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> __HAL_RCC_TIM9_CLK_ENABLE();</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> </div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="comment">/* TIM9 interrupt Init */</span></div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> {</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> HAL_NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 0, 0);</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> HAL_NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> }</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> }</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><span class="preprocessor">#ifdef USE_TIM10</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM10)</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> {</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="comment">/* TIM10 clock enable */</span></div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> __HAL_RCC_TIM10_CLK_ENABLE();</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="comment">/* TIM10 interrupt Init */</span></div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> {</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn, 0, 0);</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> }</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> } </div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span><span class="preprocessor">#ifdef USE_TIM11</span></div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM11)</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> {</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="comment">/* TIM11 clock enable */</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> __HAL_RCC_TIM11_CLK_ENABLE();</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="comment">/* TIM11 interrupt Init */</span></div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> {</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> HAL_NVIC_SetPriority(TIM1_TRG_COM_TIM11_IRQn, 0, 0);</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> HAL_NVIC_EnableIRQ(TIM1_TRG_COM_TIM11_IRQn);</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> }</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> }</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span><span class="preprocessor">#ifdef USE_TIM12</span></div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM12)</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> {</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="comment">/* TIM12 clock enable */</span></div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> __HAL_RCC_TIM12_CLK_ENABLE();</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="comment">/* TIM12 interrupt Init */</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> {</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> HAL_NVIC_SetPriority(TIM8_BRK_TIM12_IRQn, 0, 0);</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> HAL_NVIC_EnableIRQ(TIM8_BRK_TIM12_IRQn);</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> }</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> }</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span><span class="preprocessor">#ifdef USE_TIM13</span></div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM13)</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> {</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="comment">/* TIM13 clock enable */</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> __HAL_RCC_TIM13_CLK_ENABLE();</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> </div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="comment">/* TIM13 interrupt Init */</span></div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> {</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 0, 0);</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> }</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> }</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="preprocessor">#ifdef USE_TIM14</span></div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM14)</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> {</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="comment">/* TIM14 clock enable */</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> __HAL_RCC_TIM14_CLK_ENABLE();</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> </div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="comment">/* TIM14 interrupt Init */</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">if</span>(it_mode)</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> {</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> HAL_NVIC_SetPriority(TIM8_TRG_COM_TIM14_IRQn, 0, 0);</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> HAL_NVIC_EnableIRQ(TIM8_TRG_COM_TIM14_IRQn);</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> }</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> }</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span>}<span class="comment"></span></div>
</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span><span class="comment">/** </span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span><span class="comment"> * @brief Деинициализация CLK и NVIC таймеров.</span></div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span><span class="comment"> * @param htim Указатель на хендл таймера.</span></div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span><span class="comment"> * @note Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров,</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span><span class="comment"> дефайнами @ref TIM_INIT в @ref general_tim.h определяются используемые таймеры.</span></div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00617" data-start="{" data-end="}">
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115"> 617</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a>(TIM_HandleTypeDef* htim)</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span>{</div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="keywordflow">if</span>(check_null_ptr_2(htim, htim-&gt;Instance))</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> </div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span><span class="preprocessor">#ifdef USE_TIM1</span></div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM1)</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> {</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> __HAL_RCC_TIM1_FORCE_RESET();</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> __HAL_RCC_TIM1_RELEASE_RESET();</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> }</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="preprocessor">#ifdef USE_TIM2</span></div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM2)</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> {</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> __HAL_RCC_TIM2_FORCE_RESET();</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> __HAL_RCC_TIM2_RELEASE_RESET();</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> }</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span><span class="preprocessor">#ifdef USE_TIM3</span></div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM3)</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> {</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> __HAL_RCC_TIM3_FORCE_RESET();</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> __HAL_RCC_TIM3_RELEASE_RESET();</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> }</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span><span class="preprocessor">#ifdef USE_TIM4</span></div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM4)</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> {</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> __HAL_RCC_TIM4_FORCE_RESET();</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> __HAL_RCC_TIM4_RELEASE_RESET();</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> }</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span><span class="preprocessor">#ifdef USE_TIM5</span></div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM5)</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> {</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> __HAL_RCC_TIM5_FORCE_RESET();</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> __HAL_RCC_TIM5_RELEASE_RESET();</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> }</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span><span class="preprocessor">#ifdef USE_TIM6</span></div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM6)</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> {</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> __HAL_RCC_TIM6_FORCE_RESET();</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> __HAL_RCC_TIM6_RELEASE_RESET();</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> }</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span><span class="preprocessor">#ifdef USE_TIM7</span></div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM7)</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> {</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> __HAL_RCC_TIM7_FORCE_RESET();</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> __HAL_RCC_TIM7_RELEASE_RESET();</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> }</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><span class="preprocessor">#ifdef USE_TIM8</span></div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM8)</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> __HAL_RCC_TIM8_FORCE_RESET();</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> __HAL_RCC_TIM8_RELEASE_RESET();</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> }</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span><span class="preprocessor">#ifdef USE_TIM9</span></div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM9)</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> {</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> __HAL_RCC_TIM9_FORCE_RESET();</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> __HAL_RCC_TIM9_RELEASE_RESET();</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> }</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span><span class="preprocessor">#ifdef USE_TIM10</span></div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM10)</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> {</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> __HAL_RCC_TIM10_FORCE_RESET();</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> __HAL_RCC_TIM10_RELEASE_RESET();</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> } </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span><span class="preprocessor">#ifdef USE_TIM11</span></div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM11)</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> {</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> __HAL_RCC_TIM11_FORCE_RESET();</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> __HAL_RCC_TIM11_RELEASE_RESET();</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> }</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span><span class="preprocessor">#ifdef USE_TIM12</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM12)</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> {</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> __HAL_RCC_TIM12_FORCE_RESET();</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> __HAL_RCC_TIM12_RELEASE_RESET();</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> }</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span><span class="preprocessor">#ifdef USE_TIM13</span></div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM13)</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> {</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> __HAL_RCC_TIM13_FORCE_RESET();</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> __HAL_RCC_TIM13_RELEASE_RESET();</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> }</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span><span class="preprocessor">#endif </span></div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span><span class="preprocessor">#ifdef USE_TIM14</span></div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">if</span>(htim-&gt;Instance==TIM14)</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> {</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> __HAL_RCC_TIM14_FORCE_RESET();</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> __HAL_RCC_TIM14_RELEASE_RESET();</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> }</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span>}</div>
</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span><span class="comment">//-------------------------TIM INIT FUNCTIONS------------------------</span></div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span><span class="comment">//-------------------------------------------------------------------</span></div>
<div class="ttc" id="ageneral__tim_8h_html"><div class="ttname"><a href="general__tim_8h.html">general_tim.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации таймеров и работы с ними.</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="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_ga960b24335b2026abcad126ab8c422d70"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">GPIO_Read_Switch</a></div><div class="ttdeci">int GPIO_Read_Switch(GPIO_SwitchTypeDef *swstart)</div><div class="ttdoc">Считать состоянии кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00278">general_gpio.c:278</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h_html_gacafee0e68877f2b25df843356871d1f7"><div class="ttname"><a href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">GPIO_Switch_Init</a></div><div class="ttdeci">HAL_StatusTypeDef GPIO_Switch_Init(GPIO_SwitchTypeDef *sw, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN_X, uint8_t SW_On_State)</div><div class="ttdoc">Инициализировать кнопку (структуру кнопки)</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8c_source.html#l00258">general_gpio.c:258</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga108637af414bff3373059273b815ce9b"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)</div><div class="ttdoc">Задержка в тиках таймера (неблокирующая).</div><div class="ttdef"><b>Definition</b> <a href="#l00382">general_tim.c:382</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga4c0dfde4e15f677600605348b4e97834"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)</div><div class="ttdoc">Начать отсчет неблокирующей задержки.</div><div class="ttdef"><b>Definition</b> <a href="#l00363">general_tim.c:363</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga88c552a133cb6e3015453cccab74c07e"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)</div><div class="ttdoc">Задержка в тиках таймера (блокирующая).</div><div class="ttdef"><b>Definition</b> <a href="#l00337">general_tim.c:337</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_ga117b795017e9e3a357ddefe323412761"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a></div><div class="ttdeci">int TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc)</div><div class="ttdoc">Считать кнопку энкодера.</div><div class="ttdef"><b>Definition</b> <a href="#l00322">general_tim.c:322</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc, TIM_HandleTypeDef *htim)</div><div class="ttdoc">Инициализация режима энкодер у таймера.</div><div class="ttdef"><b>Definition</b> <a href="#l00168">general_tim.c:168</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_gac3bc6525f88c275e47eb864e6d567501"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc)</div><div class="ttdoc">Считать энкодер.</div><div class="ttdef"><b>Definition</b> <a href="#l00303">general_tim.c:303</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ga7044214f24a9868ba7e1650b55e639ec"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)</div><div class="ttdoc">Инициализация таймера.</div><div class="ttdef"><b>Definition</b> <a href="#l00034">general_tim.c:34</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ga879e3f1c919c02990736730275367115"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a></div><div class="ttdeci">void TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)</div><div class="ttdoc">Деинициализация CLK и NVIC таймеров.</div><div class="ttdef"><b>Definition</b> <a href="#l00617">general_tim.c:617</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_gaad47337be7ba2f6c0777c40d7278c931"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a></div><div class="ttdeci">void TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)</div><div class="ttdoc">Инициализация CLK и NVIC таймеров.</div><div class="ttdef"><b>Definition</b> <a href="#l00408">general_tim.c:408</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_gaeb611874216a4661fb83366b99b9e787"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a></div><div class="ttdeci">TIM_ITModeTypeDef</div><div class="ttdoc">Режим прерываний таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00078">general_tim.h:79</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___o_c_html_gadb2f465d89f609e035867e980c3a29c6"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t GPIO_PIN)</div><div class="ttdoc">Инициализация выхода ШИМ таймера.</div><div class="ttdef"><b>Definition</b> <a href="#l00226">general_tim.c:226</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___o_c_html_gae2608ca8023e9a0713af0b4fbfbc1889"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</div><div class="ttdoc">Инициализация OC компаратора таймера.</div><div class="ttdef"><b>Definition</b> <a href="#l00272">general_tim.c:272</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a></div><div class="ttdoc">Структура инициализации енкодера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00142">general_tim.h:143</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a021f0c585e9e62d68a4b09f630d8b6e5"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef::sConfig</a></div><div class="ttdeci">TIM_Encoder_InitTypeDef sConfig</div><div class="ttdoc">Указатель на структуру настройки энкодера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00148">general_tim.h:148</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a0dacce3dde7df3122583869d96a372a2"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">TIM_EncoderTypeDef::Encoder_Shdw</a></div><div class="ttdeci">uint16_t Encoder_Shdw</div><div class="ttdoc">Последние считанные тики</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00145">general_tim.h:145</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a4fc05ef011205a6702cb3d006bab677e"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef::GPIO_PIN_TI1</a></div><div class="ttdeci">uint32_t GPIO_PIN_TI1</div><div class="ttdoc">Пин, куда подключается канал TI1.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00151">general_tim.h:151</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a67ad037b92162546763fc9c425b5e3c5"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">TIM_EncoderTypeDef::GPIO_PIN_TI2</a></div><div class="ttdeci">uint32_t GPIO_PIN_TI2</div><div class="ttdoc">Пин, куда подключается канал TI2.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00152">general_tim.h:152</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a6973108a83d2a3ea4fc3e0e8a501af80"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef::GPIO_PIN_SW</a></div><div class="ttdeci">uint32_t GPIO_PIN_SW</div><div class="ttdoc">Пин, куда кнопка энкодера (если есть)</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00153">general_tim.h:153</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a6f769f027b760a4b496e2b2b77bf54a3"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">TIM_EncoderTypeDef::Encoder_Diff</a></div><div class="ttdeci">int16_t Encoder_Diff</div><div class="ttdoc">Считанная разница</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00144">general_tim.h:144</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a99295760ff8b27d1e6f1710f29383a45"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">TIM_EncoderTypeDef::Sw</a></div><div class="ttdeci">GPIO_SwitchTypeDef Sw</div><div class="ttdoc">Структура кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00155">general_tim.h:155</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_ad29873fc8cdc71462e6d8744621120e9"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">TIM_EncoderTypeDef::GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * GPIOx</div><div class="ttdoc">Порт, куда подключается энкодер</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00150">general_tim.h:150</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_adc80bd5a90444c31d84157f35c59b95c"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">TIM_EncoderTypeDef::htim</a></div><div class="ttdeci">TIM_HandleTypeDef * htim</div><div class="ttdoc">Указатель на HAL handle таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00147">general_tim.h:147</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a></div><div class="ttdoc">Структура инициализации таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00114">general_tim.h:115</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a11151fe125960cb8e61328ffd06b7718"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef::sTickBasePrescaler</a></div><div class="ttdeci">uint8_t sTickBasePrescaler</div><div class="ttdoc">Дополнительный делитель, для удобного деления sTickBaseUS.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00124">general_tim.h:124</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a2d9d277dd395424b964445ec1bc65b21"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef::sMasterConfig</a></div><div class="ttdeci">TIM_MasterConfigTypeDef sMasterConfig</div><div class="ttdoc">Настройки мастер режима таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00119">general_tim.h:119</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a3805f627567798c3cd1d79a0da42bea0"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">TIM_SettingsTypeDef::sClockSourceConfig</a></div><div class="ttdeci">TIM_ClockConfigTypeDef sClockSourceConfig</div><div class="ttdoc">Настройки тактирования таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00117">general_tim.h:117</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a58da1b4c0f6d12d7d9fb2f170b9b9e6e"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef::sTickBaseUS</a></div><div class="ttdeci">TIM_MHzTickBaseTypeDef sTickBaseUS</div><div class="ttdoc">Длительность одного тика</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00123">general_tim.h:123</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a7073358fd3a722687eb85238ab570014"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef::sTimAHBFreqMHz</a></div><div class="ttdeci">float sTimAHBFreqMHz</div><div class="ttdoc">Частота шины тактирования таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00125">general_tim.h:125</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a961f19f0e1672715c27bc94d7871dbb7"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">TIM_SettingsTypeDef::sBreakDeadTimeConfig</a></div><div class="ttdeci">TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig</div><div class="ttdoc">Настройки дедтаймов таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00120">general_tim.h:120</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a9694cf0910a69d48ff94f8aeac106969"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef::sSlaveConfig</a></div><div class="ttdeci">TIM_SlaveConfigTypeDef sSlaveConfig</div><div class="ttdoc">Настройки слейв режима таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00118">general_tim.h:118</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_ab90e370c3edda88e76583293c250d2b0"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">TIM_SettingsTypeDef::sTimMode</a></div><div class="ttdeci">TIM_ITModeTypeDef sTimMode</div><div class="ttdoc">Настройки прерывания таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00122">general_tim.h:122</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_ada49efdbd35a8e442c3cff630d42f34c"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">TIM_SettingsTypeDef::htim</a></div><div class="ttdeci">TIM_HandleTypeDef htim</div><div class="ttdoc">HAL handle таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00116">general_tim.h:116</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_af6057ff3f60f5e01b41d4a347b79a5e4"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">TIM_SettingsTypeDef::sTimFreqHz</a></div><div class="ttdeci">float sTimFreqHz</div><div class="ttdoc">Желаемая частота таймера</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8h_source.html#l00126">general_tim.h:126</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_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="general__tim_8c.html">general_tim.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>

View File

@ -0,0 +1,276 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.h File Reference</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">STM32_General<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__tim_8h.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_tim.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Заголовочный файл для модуля инициализации таймеров и работы с ними.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;mylibs_defs.h&quot;</code><br />
<code>#include &quot;<a class="el" href="general__gpio_8h_source.html">general_gpio.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_tim.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__tim_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8h">
<area shape="rect" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" title=" " alt="" coords="35,187,138,213"/>
<area shape="poly" title=" " alt="" coords="78,65,70,100,69,138,78,171,73,172,64,139,64,99,73,64"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="79,112,184,139"/>
<area shape="poly" title=" " alt="" coords="103,63,121,97,116,99,99,66"/>
<area shape="poly" title=" " alt="" coords="126,141,105,175,100,172,122,138"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__tim_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__tim_8hdep">
<area shape="rect" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" href="general__tim_8c.html" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,112,168,171"/>
<area shape="poly" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>
</div>
</div>
<p><a href="general__tim_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:TIM_5FSettingsTypeDef" id="r_TIM_5FSettingsTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура инициализации таймера <a href="struct_t_i_m___settings_type_def.html#details">More...</a><br /></td></tr>
<tr class="memitem:TIM_5FEncoderTypeDef" id="r_TIM_5FEncoderTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура инициализации енкодера <a href="struct_t_i_m___encoder_type_def.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga23382b8f04b3e6db2c59dfa1ef5ea4a2" id="r_ga23382b8f04b3e6db2c59dfa1ef5ea4a2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga23382b8f04b3e6db2c59dfa1ef5ea4a2">HAL_TIM_MODULE_ENABLED</a></td></tr>
<tr class="memitem:ga54a98c21365e0bc45b81555d2b101f2b" id="r_ga54a98c21365e0bc45b81555d2b101f2b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b">USE_TIM1</a></td></tr>
<tr class="memdesc:ga54a98c21365e0bc45b81555d2b101f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM1 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga72535a44955b43cbcd56e25039ab32eb" id="r_ga72535a44955b43cbcd56e25039ab32eb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb">USE_TIM2</a></td></tr>
<tr class="memdesc:ga72535a44955b43cbcd56e25039ab32eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM2 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga5b5685a43273b6e37242a4aba3ee0617" id="r_ga5b5685a43273b6e37242a4aba3ee0617"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617">USE_TIM3</a></td></tr>
<tr class="memdesc:ga5b5685a43273b6e37242a4aba3ee0617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM3 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga1493b39c9214501180b81b4c892f9be0" id="r_ga1493b39c9214501180b81b4c892f9be0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0">USE_TIM4</a></td></tr>
<tr class="memdesc:ga1493b39c9214501180b81b4c892f9be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM4 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga252f4fba93fc265110e83760e0590af3" id="r_ga252f4fba93fc265110e83760e0590af3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3">USE_TIM5</a></td></tr>
<tr class="memdesc:ga252f4fba93fc265110e83760e0590af3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM5 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga8fe31b98160627d19038222910be3f46" id="r_ga8fe31b98160627d19038222910be3f46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46">USE_TIM6</a></td></tr>
<tr class="memdesc:ga8fe31b98160627d19038222910be3f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM6 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga7cdc54cc8cbbb6e9f60001f1e3e6ec67" id="r_ga7cdc54cc8cbbb6e9f60001f1e3e6ec67"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67">USE_TIM7</a></td></tr>
<tr class="memdesc:ga7cdc54cc8cbbb6e9f60001f1e3e6ec67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM7 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga28ba33d7c6bf22821dafa5bcee4854be" id="r_ga28ba33d7c6bf22821dafa5bcee4854be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be">USE_TIM8</a></td></tr>
<tr class="memdesc:ga28ba33d7c6bf22821dafa5bcee4854be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM8 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:gaac627c0e98c9594cc41b1b46eb39e44a" id="r_gaac627c0e98c9594cc41b1b46eb39e44a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a">USE_TIM9</a></td></tr>
<tr class="memdesc:gaac627c0e98c9594cc41b1b46eb39e44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM9 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga98c0691052d1da2c4053dd3586ff7ce9" id="r_ga98c0691052d1da2c4053dd3586ff7ce9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9">USE_TIM10</a></td></tr>
<tr class="memdesc:ga98c0691052d1da2c4053dd3586ff7ce9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM10 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga176c97f06ebcf14e06e5c5bdbfac44c2" id="r_ga176c97f06ebcf14e06e5c5bdbfac44c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2">USE_TIM11</a></td></tr>
<tr class="memdesc:ga176c97f06ebcf14e06e5c5bdbfac44c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM11 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga4e2b0e6cdf9eed74581b575c3fd9516b" id="r_ga4e2b0e6cdf9eed74581b575c3fd9516b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b">USE_TIM12</a></td></tr>
<tr class="memdesc:ga4e2b0e6cdf9eed74581b575c3fd9516b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM12 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:gaf48ef87650517652ddec039a189507ac" id="r_gaf48ef87650517652ddec039a189507ac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac">USE_TIM13</a></td></tr>
<tr class="memdesc:gaf48ef87650517652ddec039a189507ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM13 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga9ae40be31d5271abe3e49f896d916d5c" id="r_ga9ae40be31d5271abe3e49f896d916d5c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c">USE_TIM14</a></td></tr>
<tr class="memdesc:ga9ae40be31d5271abe3e49f896d916d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить TIM14 в <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>. <br /></td></tr>
<tr class="memitem:a867308f75c1be4f2090bcda3bcd900c9" id="r_a867308f75c1be4f2090bcda3bcd900c9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a867308f75c1be4f2090bcda3bcd900c9">TIM_IT_CONF_Pos</a>&#160;&#160;&#160;0</td></tr>
<tr class="memitem:a8c43257cbfd6ac70b6eb0839e47bbd07" id="r_a8c43257cbfd6ac70b6eb0839e47bbd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8c43257cbfd6ac70b6eb0839e47bbd07">TIM_IT_CONF</a>&#160;&#160;&#160;(1&lt;&lt;(TIM_IT_CONF_Pos))</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaeb611874216a4661fb83366b99b9e787" id="r_gaeb611874216a4661fb83366b99b9e787"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> { <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8">TIM_DEFAULT</a> = 0
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c">TIM_IT_MODE</a> = TIM_IT_CONF
}</td></tr>
<tr class="memdesc:gaeb611874216a4661fb83366b99b9e787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Режим прерываний таймера <a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">More...</a><br /></td></tr>
<tr class="memitem:gaa0a51c870325217ac099881f09dd0800" id="r_gaa0a51c870325217ac099881f09dd0800"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">TIM_MHzTickBaseTypeDef</a> { <br />
&#160;&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5">TIM_Base_Disable</a> = 0
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2">TIM_TickBase_1US</a> = 1
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f">TIM_TickBase_10US</a> = 10
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30">TIM_TickBase_100US</a> = 100
, <br />
&#160;&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25">TIM_TickBase_1MS</a> = 1000
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa">TIM_TickBase_10MS</a> = 10000
, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da">TIM_TickBase_100MS</a> = 100000
<br />
}</td></tr>
<tr class="memdesc:gaa0a51c870325217ac099881f09dd0800"><td class="mdescLeft">&#160;</td><td class="mdescRight">Длительность тика таймера (частота тактирования таймера) <a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7044214f24a9868ba7e1650b55e639ec" id="r_ga7044214f24a9868ba7e1650b55e639ec"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a> (<a class="el" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a> *stim)</td></tr>
<tr class="memdesc:ga7044214f24a9868ba7e1650b55e639ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация таймера. <br /></td></tr>
<tr class="memitem:gaad47337be7ba2f6c0777c40d7278c931" id="r_gaad47337be7ba2f6c0777c40d7278c931"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a> (TIM_HandleTypeDef *htim, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> it_mode)</td></tr>
<tr class="memdesc:gaad47337be7ba2f6c0777c40d7278c931"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация CLK и NVIC таймеров. <br /></td></tr>
<tr class="memitem:ga879e3f1c919c02990736730275367115" id="r_ga879e3f1c919c02990736730275367115"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a> (TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga879e3f1c919c02990736730275367115"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация CLK и NVIC таймеров. <br /></td></tr>
<tr class="memitem:ga4c0dfde4e15f677600605348b4e97834" id="r_ga4c0dfde4e15f677600605348b4e97834"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a> (TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga4c0dfde4e15f677600605348b4e97834"><td class="mdescLeft">&#160;</td><td class="mdescRight">Начать отсчет неблокирующей задержки. <br /></td></tr>
<tr class="memitem:ga88c552a133cb6e3015453cccab74c07e" id="r_ga88c552a133cb6e3015453cccab74c07e"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a> (TIM_HandleTypeDef *htim, uint16_t delay)</td></tr>
<tr class="memdesc:ga88c552a133cb6e3015453cccab74c07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Задержка в тиках таймера (блокирующая). <br /></td></tr>
<tr class="memitem:ga108637af414bff3373059273b815ce9b" id="r_ga108637af414bff3373059273b815ce9b"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a> (TIM_HandleTypeDef *htim, uint16_t delay)</td></tr>
<tr class="memdesc:ga108637af414bff3373059273b815ce9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Задержка в тиках таймера (неблокирующая). <br /></td></tr>
<tr class="memitem:gadb2f465d89f609e035867e980c3a29c6" id="r_gadb2f465d89f609e035867e980c3a29c6"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a> (TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN)</td></tr>
<tr class="memdesc:gadb2f465d89f609e035867e980c3a29c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация выхода ШИМ таймера. <br /></td></tr>
<tr class="memitem:gae2608ca8023e9a0713af0b4fbfbc1889" id="r_gae2608ca8023e9a0713af0b4fbfbc1889"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a> (TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</td></tr>
<tr class="memdesc:gae2608ca8023e9a0713af0b4fbfbc1889"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация OC компаратора таймера. <br /></td></tr>
<tr class="memitem:ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc" id="r_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc1, TIM_HandleTypeDef *htim)</td></tr>
<tr class="memdesc:ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация режима энкодер у таймера. <br /></td></tr>
<tr class="memitem:gac3bc6525f88c275e47eb864e6d567501" id="r_gac3bc6525f88c275e47eb864e6d567501"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</td></tr>
<tr class="memdesc:gac3bc6525f88c275e47eb864e6d567501"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать энкодер. <br /></td></tr>
<tr class="memitem:ga117b795017e9e3a357ddefe323412761" id="r_ga117b795017e9e3a357ddefe323412761"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a> (<a class="el" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc)</td></tr>
<tr class="memdesc:ga117b795017e9e3a357ddefe323412761"><td class="mdescLeft">&#160;</td><td class="mdescRight">Считать кнопку энкодера. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для модуля инициализации таймеров и работы с ними. </p>
<p class="definition">Definition in file <a class="el" href="general__tim_8h_source.html">general_tim.h</a>.</p>
</div><a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="a867308f75c1be4f2090bcda3bcd900c9" name="a867308f75c1be4f2090bcda3bcd900c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a867308f75c1be4f2090bcda3bcd900c9">&#9670;&#160;</a></span>TIM_IT_CONF_Pos</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TIM_IT_CONF_Pos&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="general__tim_8h_source.html#l00058">58</a> of file <a class="el" href="general__tim_8h_source.html">general_tim.h</a>.</p>
</div>
</div>
<a id="a8c43257cbfd6ac70b6eb0839e47bbd07" name="a8c43257cbfd6ac70b6eb0839e47bbd07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c43257cbfd6ac70b6eb0839e47bbd07">&#9670;&#160;</a></span>TIM_IT_CONF</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TIM_IT_CONF&#160;&#160;&#160;(1&lt;&lt;(TIM_IT_CONF_Pos))</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="general__tim_8h_source.html#l00065">65</a> of file <a class="el" href="general__tim_8h_source.html">general_tim.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__tim_8h.html">general_tim.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>

View File

@ -0,0 +1,41 @@
var general__tim_8h =
[
[ "USE_TIM1", "group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b", null ],
[ "USE_TIM2", "group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb", null ],
[ "USE_TIM3", "group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617", null ],
[ "USE_TIM4", "group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0", null ],
[ "USE_TIM5", "group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3", null ],
[ "USE_TIM6", "group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46", null ],
[ "USE_TIM7", "group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67", null ],
[ "USE_TIM8", "group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be", null ],
[ "USE_TIM9", "group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a", null ],
[ "USE_TIM10", "group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9", null ],
[ "USE_TIM11", "group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2", null ],
[ "USE_TIM12", "group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b", null ],
[ "USE_TIM13", "group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac", null ],
[ "USE_TIM14", "group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c", null ],
[ "TIM_ITModeTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787", [
[ "TIM_DEFAULT", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8", null ],
[ "TIM_IT_MODE", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c", null ]
] ],
[ "TIM_MHzTickBaseTypeDef", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800", [
[ "TIM_Base_Disable", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5", null ],
[ "TIM_TickBase_1US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2", null ],
[ "TIM_TickBase_10US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f", null ],
[ "TIM_TickBase_100US", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30", null ],
[ "TIM_TickBase_1MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25", null ],
[ "TIM_TickBase_10MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa", null ],
[ "TIM_TickBase_100MS", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da", null ]
] ],
[ "TIM_Base_Init", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec", null ],
[ "TIM_Base_MspInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931", null ],
[ "TIM_Base_MspDeInit", "group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115", null ],
[ "TIM_Delay_Start", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834", null ],
[ "TIM_Delay", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e", null ],
[ "TIM_Delay_NonBlocking", "group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b", null ],
[ "TIM_Output_PWM_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6", null ],
[ "TIM_OC_Comparator_Init", "group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889", null ],
[ "TIM_Encoder_Init", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc", null ],
[ "TIM_Encoder_Read", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501", null ],
[ "TIM_Encoder_ReadSwitch", "group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761", null ]
];

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" href="$general__tim_8c.html" title="Модуль для инициализации таймеров и работы с ними." alt="" coords="5,112,168,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>

View File

@ -0,0 +1 @@
a8e0a47d794f40d1b0117bb367d455f1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,8 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации таймеров и работы с ними." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="35,187,138,213"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="78,65,70,100,69,138,78,171,73,172,64,139,64,99,73,64"/>
<area shape="rect" id="Node000003" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="79,112,184,139"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="103,63,121,97,116,99,99,66"/>
<area shape="poly" id="edge3_Node000003_Node000002" title=" " alt="" coords="126,141,105,175,100,172,122,138"/>
</map>

View File

@ -0,0 +1 @@
1be5ffb5446d8199f5f989eb22435083

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,469 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_tim.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">STM32_General<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__tim_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_tim.h</div></div>
</div><!--header-->
<div class="contents">
<a href="general__tim_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_tim.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Заголовочный файл для модуля инициализации таймеров и работы с ними.</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 GENERAL_TIM TIM Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup STM32_GENERAL</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">* @brief Функции и макросы для удобной работы с TIM.</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">Модуль предоставляет универсальные инструменты для работы с TIM:</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> - @ref MYLIBS_TIM_GENERAL — базовая инициализация таймеров и прерываний.</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> - @ref MYLIBS_TIM_DELAY — функции задержки через таймеры (blocking и non-blocking).</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment"> - @ref MYLIBS_TIM_OC — настройка каналов Output Compare и PWM.</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment"> - @ref MYLIBS_TIM_ENCODER — работа с энкодерами, чтение положения и кнопки.</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">* @note Требуется подключение модуля TIM в библиотеке HAL и GPIO (@ref GENERAL_GPIO) из MyLibs</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">@code </span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment">#define HAL_TIM_MODULE_ENABLED</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">@endcode</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifndef __TIM_GENERAL_H_</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define __TIM_GENERAL_H_</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"></span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">/** </span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> * @addtogroup TIM_INIT TIM Init defines</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * @ingroup MYLIBS_TIM_GENERAL</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * @ingroup GENERAL_CONFIGS Конфигурации STM32 General</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * @brief Настройка таймеров</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> */</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#define HAL_TIM_MODULE_ENABLED</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"><a class="line" href="group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b"> 35</a></span><span class="preprocessor">#define USE_TIM1 </span><span class="comment">///&lt; Включить TIM1 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb"> 36</a></span><span class="preprocessor">#define USE_TIM2 </span><span class="comment">///&lt; Включить TIM2 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617"> 37</a></span><span class="preprocessor">#define USE_TIM3 </span><span class="comment">///&lt; Включить TIM3 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0"> 38</a></span><span class="preprocessor">#define USE_TIM4 </span><span class="comment">///&lt; Включить TIM4 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3"> 39</a></span><span class="preprocessor">#define USE_TIM5 </span><span class="comment">///&lt; Включить TIM5 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46"> 40</a></span><span class="preprocessor">#define USE_TIM6 </span><span class="comment">///&lt; Включить TIM6 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67"> 41</a></span><span class="preprocessor">#define USE_TIM7 </span><span class="comment">///&lt; Включить TIM7 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be"> 42</a></span><span class="preprocessor">#define USE_TIM8 </span><span class="comment">///&lt; Включить TIM8 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a"> 43</a></span><span class="preprocessor">#define USE_TIM9 </span><span class="comment">///&lt; Включить TIM9 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9"> 44</a></span><span class="preprocessor">#define USE_TIM10 </span><span class="comment">///&lt; Включить TIM10 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2"> 45</a></span><span class="preprocessor">#define USE_TIM11 </span><span class="comment">///&lt; Включить TIM11 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b"> 46</a></span><span class="preprocessor">#define USE_TIM12 </span><span class="comment">///&lt; Включить TIM12 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac"> 47</a></span><span class="preprocessor">#define USE_TIM13 </span><span class="comment">///&lt; Включить TIM13 в @ref TIM_Base_MspInit</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c"> 48</a></span><span class="preprocessor">#define USE_TIM14 </span><span class="comment">///&lt; Включить TIM14 в @ref TIM_Base_MspInit</span><span class="comment"></span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">/** TIM_INIT</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"> */</span><span class="preprocessor"></span><span class="comment"></span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor">#include &quot;mylibs_defs.h&quot;</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</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="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"></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">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#define TIM_IT_CONF_Pos 0</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">//#define TIM_PWM_CONF_Pos 1</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">//#define TIM_CLCK_SRC_CONF_Pos 2</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment">//#define TIM_SLAVE_CONF_Pos 3</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">//#define TIM_MASTER_CONF_Pos 4</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">//#define TIM_BDTR_CONF_Pos 5</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#define TIM_IT_CONF (1&lt;&lt;(TIM_IT_CONF_Pos))</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">//#define TIM_PWM_CONF (1&lt;&lt;(TIM_PWM_Pos))</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"></span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////]</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"></span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</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"> * @brief Режим прерываний таймера</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> * @ingroup MYLIBS_TIM_GENERAL</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00078" data-start="{" data-end="};">
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787"> 78</a></span><span class="keyword">typedef</span> <span class="keyword">enum</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"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8"> 80</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8">TIM_DEFAULT</a> = 0, <span class="comment">///&lt; Прерываний отключены</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c"> 81</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c">TIM_IT_MODE</a> = TIM_IT_CONF, <span class="comment">///&lt; Прерываний включены</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment">// TIM_PWM_MODE = TIM_PWM_ENABLE,</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment">// TIM_PWM_IT_MODE = TIM_PWM_ENABLE | TIM_IT_CONF,</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}<a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a>;</div>
</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">/**</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @brief Длительность тика таймера (частота тактирования таймера)</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @ingroup MYLIBS_TIM_GENERAL</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * @details enum дает базовые длительности, но можно выставить другие</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> * (напр 500 - 0.5 мс)</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00092" data-start="{" data-end="};">
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800"> 92</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></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"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5"> 94</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5">TIM_Base_Disable</a> = 0, <span class="comment">///&lt; Таймер отключен</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2"> 95</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2">TIM_TickBase_1US</a> = 1, <span class="comment">///&lt; Таймер тактируется с частотой 1 МГц</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f"> 96</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f">TIM_TickBase_10US</a> = 10, <span class="comment">///&lt; Таймер тактируется с частотой 100 кГц</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30"> 97</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30">TIM_TickBase_100US</a> = 100, <span class="comment">///&lt; Таймер тактируется с частотой 10 кГц</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25"> 98</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25">TIM_TickBase_1MS</a> = 1000, <span class="comment">///&lt; Таймер тактируется с частотой 1 кГц</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa"> 99</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa">TIM_TickBase_10MS</a> = 10000, <span class="comment">///&lt; Таймер тактируется с частотой 100 Гц</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da"> 100</a></span> <a class="code hl_enumvalue" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da">TIM_TickBase_100MS</a> = 100000, <span class="comment">///&lt; Таймер тактируется с частотой 10 Гц</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>}<a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">TIM_MHzTickBaseTypeDef</a>;</div>
</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">/**</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> * @brief Структура инициализации таймера</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> * @ingroup MYLIBS_TIM_GENERAL</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> * @details </span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * Содержит все базовые структуры, которые нужны для инициализации таймера.</span></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"> * </span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * Также высокоуровневые настройки частоты работы таймера. </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"> */</span></div>
<div class="foldopen" id="foldopen00114" data-start="{" data-end="};">
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html"> 114</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">// struct with settings for custom function</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>{</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c"> 116</a></span> TIM_HandleTypeDef <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">htim</a>; <span class="comment">///&lt; HAL handle таймера</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0"> 117</a></span> TIM_ClockConfigTypeDef <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">sClockSourceConfig</a>; <span class="comment">///&lt; Настройки тактирования таймера</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969"> 118</a></span> TIM_SlaveConfigTypeDef <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">sSlaveConfig</a>; <span class="comment">///&lt; Настройки слейв режима таймера</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21"> 119</a></span> TIM_MasterConfigTypeDef <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">sMasterConfig</a>; <span class="comment">///&lt; Настройки мастер режима таймера</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7"> 120</a></span> TIM_BreakDeadTimeConfigTypeDef <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">sBreakDeadTimeConfig</a>; <span class="comment">///&lt; Настройки дедтаймов таймера</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0"> 122</a></span> <a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">sTimMode</a>; <span class="comment">///&lt; Настройки прерывания таймера </span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e"> 123</a></span> <a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">TIM_MHzTickBaseTypeDef</a> <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">sTickBaseUS</a>; <span class="comment">///&lt; Длительность одного тика </span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718"> 124</a></span> uint8_t <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">sTickBasePrescaler</a>; <span class="comment">///&lt; Дополнительный делитель, для удобного деления @ref sTickBaseUS</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014"> 125</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">sTimAHBFreqMHz</a>; <span class="comment">///&lt; Частота шины тактирования таймера</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4"> 126</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">sTimFreqHz</a>; <span class="comment">///&lt; Желаемая частота таймера</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span>}<a class="code hl_struct" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a>;</div>
</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><span class="comment"></span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment">/**</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * @brief Структура инициализации енкодера</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> * @ingroup MYLIBS_TIM_ENCODER</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> * @details </span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"> * Содержит все базовые структуры, которые нужны для инициализации таймера.</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"> * Если структуры настроек не заданы, то они заполнятся сами дефолтными параметрами </span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment"> * </span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</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"> * по возможности берется низкоуровневая настройка из структур</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00142" data-start="{" data-end="};">
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html"> 142</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><span class="comment">// struct with variables for encoder</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span>{</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3"> 144</a></span> int16_t <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">Encoder_Diff</a>; <span class="comment">///&lt; Считанная разница</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2"> 145</a></span> uint16_t <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">Encoder_Shdw</a>; <span class="comment">///&lt; Последние считанные тики</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c"> 147</a></span> TIM_HandleTypeDef *<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">htim</a>; <span class="comment">///&lt; Указатель на HAL handle таймера</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5"> 148</a></span> TIM_Encoder_InitTypeDef <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">sConfig</a>; <span class="comment">///&lt; Указатель на структуру настройки энкодера</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9"> 150</a></span> GPIO_TypeDef *<a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">GPIOx</a>; <span class="comment">///&lt; Порт, куда подключается энкодер</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e"> 151</a></span> uint32_t <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">GPIO_PIN_TI1</a>; <span class="comment">///&lt; Пин, куда подключается канал TI1</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5"> 152</a></span> uint32_t <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">GPIO_PIN_TI2</a>; <span class="comment">///&lt; Пин, куда подключается канал TI2</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80"> 153</a></span> uint32_t <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">GPIO_PIN_SW</a>; <span class="comment">///&lt; Пин, куда кнопка энкодера (если есть)</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45"> 155</a></span> <a class="code hl_struct" href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a> <a class="code hl_variable" href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">Sw</a>; <span class="comment">///&lt; Структура кнопки</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>}<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a>;<span class="comment"></span></div>
</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"></span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">/** </span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * @addtogroup MYLIBS_TIM_GENERAL General tools</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * @ingroup GENERAL_TIM</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * @brief Функции для базовой инициализации таймеров</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"> TIM_SettingsTypeDef tim2Settings;</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment"></span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"> void TIM2_Init(void)</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> {</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"> // Настройка таймера TIM2 на 1 кГц с прерываниями с шагом таймера 10 мкс</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"> tim2Settings.htim.Instance = TIM2;</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment"> tim2Settings.sTimMode = TIM_IT_MODE;</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment"> tim2Settings.sTickBaseUS = TIM_TickBase_10US;</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment"> tim2Settings.sTickBasePrescaler = 1;</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment"> tim2Settings.sTimFreqHz = 1000; // 1 кГц</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"> tim2Settings.sTimAHBFreqMHz = 72000000; // Hz</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment"></span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"> if(TIM_Base_Init(&amp;tim2Settings) != HAL_OK)</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"> {</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"> Error_Handler();</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> }</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"> }</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> */</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment">/* Initialize TIM with TIM_SettingsTypeDef structure */</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a>(<a class="code hl_struct" href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a>* stim);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment">/* Initialize TIMs clock and interrupt */</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a>(TIM_HandleTypeDef* htim, <a class="code hl_enumeration" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a> it_mode);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment">/* DeInitialize TIMs clock and interrupt */</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a>(TIM_HandleTypeDef* htim);<span class="comment"></span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment">/** MYLIBS_TIM_GENERAL</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"> */</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="comment"></span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment">/** </span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment"> * @addtogroup MYLIBS_TIM_DELAY Delay tools</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment"> * @ingroup GENERAL_TIM</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"> * @brief Функции для формирования задержек с помощью таймеров</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="comment"> TIM_HandleTypeDef htim2;</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="comment"></span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="comment"> // блокирующая задержка 500 тиков таймера</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="comment"> LED_ON();</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment"> TIM_Delay(&amp;htim2, 500);</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment"> LED_OFF();</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment"></span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment"></span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="comment"> while(1)</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment"> {</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment"> // не блокирующая задержка 200 тиков таймера</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="comment"> if(TIM_Delay_NonBlocking(&amp;htim2, 200) == HAL_OK)</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"> {</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment"> TIM_Delay_Start(&amp;htim2);</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment"> LED_TOOGLE();</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment"> }</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment"> }</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"> */</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">/* Start delay via TIM */</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a>(TIM_HandleTypeDef *htim);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment">/* Delay via TIM */</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a>(TIM_HandleTypeDef *htim, uint16_t delay);</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment">/* Wait Delay via TIM without blocking app */</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a>(TIM_HandleTypeDef *htim, uint16_t delay);<span class="comment"></span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment">/** MYLIBS_TIM_DELAY</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment"> */</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment"></span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment">/** </span></div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment"> * @addtogroup MYLIBS_TIM_OC PWM/OC Channels tools</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="comment"> * @ingroup GENERAL_TIM</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="comment"> * @brief Функции для инициализации базовых функций каналов таймера</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> void PWM_Channel_Init_Example(void)</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="comment"> {</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="comment"> TIM_HandleTypeDef htim3;</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="comment"> TIM_OC_InitTypeDef sConfigOC;</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment"> GPIO_TypeDef *GPIOx = GPIOB;</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment"> uint32_t PWM_PIN = GPIO_PIN_0;</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment"></span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span><span class="comment"> // Настройка таймера и канала PWM</span></div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span><span class="comment"> TIM_Output_PWM_Init(&amp;htim3, &amp;sConfigOC, TIM_CHANNEL_1, GPIOx, PWM_PIN);</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="comment"></span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment"> // Настройка компаратора OC</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment"> TIM_OC_Comparator_Init(&amp;htim3, TIM_CHANNEL_1);</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> }</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"> */</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment">/* Initialize PWM Channel and GPIO for output */</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a>(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="comment">/* Initialize OC Comparator */</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a>(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL);<span class="comment"></span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="comment">/** MYLIBS_TIM_ENCODER</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"> */</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"></span> </div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment">/** </span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment"> * @addtogroup MYLIBS_TIM_ENCODER Encoder tools</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="comment"> * @ingroup GENERAL_TIM</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="comment"> * @brief Функции для считывания энкодера</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment"> * @par Пример использования:</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="comment"> @code</span></div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="comment"> TIM_EncoderTypeDef henc1;</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="comment"> TIM_HandleTypeDef htim4;</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="comment"></span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment"> // инициализация</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="comment"> henc1.htim = &amp;htim4;</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment"> henc1.GPIOx = GPIOA;</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment"> henc1.GPIO_PIN_TI1 = GPIO_PIN_0;</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment"> henc1.GPIO_PIN_TI2 = GPIO_PIN_1;</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="comment"> TIM_Encoder_Init(&amp;henc1, &amp;htim4);</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="comment"></span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="comment"> // считывание энкодера и кнопки</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="comment"> int16_t delta = TIM_Encoder_Read(&amp;henc1);</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="comment"> setpoint_tmp += delta;</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="comment"> if(TIM_Encoder_ReadSwitch(&amp;henc1))</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="comment"> {</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="comment"> setpoint = setpoint_tmp; // подтвердить новое значение</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="comment"> }</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><span class="comment"> */</span></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="comment">/* Initialize TIM Encoder functional */</span></div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc1, TIM_HandleTypeDef *htim);</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="comment">/* Считать энкодер */</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment">/* Считать кнопку энкодера */</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a>(<a class="code hl_struct" href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a> *henc);<span class="comment"></span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="comment">/** MYLIBS_TIM_ENCODER</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="comment"> */</span><span class="comment"></span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="preprocessor">#endif </span><span class="comment">// __TIM_GENERAL_H_</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="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga108637af414bff3373059273b815ce9b"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">TIM_Delay_NonBlocking</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay_NonBlocking(TIM_HandleTypeDef *htim, uint16_t delay)</div><div class="ttdoc">Задержка в тиках таймера (неблокирующая).</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00382">general_tim.c:382</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga4c0dfde4e15f677600605348b4e97834"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">TIM_Delay_Start</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay_Start(TIM_HandleTypeDef *htim)</div><div class="ttdoc">Начать отсчет неблокирующей задержки.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00363">general_tim.c:363</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___d_e_l_a_y_html_ga88c552a133cb6e3015453cccab74c07e"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">TIM_Delay</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Delay(TIM_HandleTypeDef *htim, uint16_t delay)</div><div class="ttdoc">Задержка в тиках таймера (блокирующая).</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00337">general_tim.c:337</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_ga117b795017e9e3a357ddefe323412761"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">TIM_Encoder_ReadSwitch</a></div><div class="ttdeci">int TIM_Encoder_ReadSwitch(TIM_EncoderTypeDef *henc)</div><div class="ttdoc">Считать кнопку энкодера.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00322">general_tim.c:322</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">TIM_Encoder_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Encoder_Init(TIM_EncoderTypeDef *henc1, TIM_HandleTypeDef *htim)</div><div class="ttdoc">Инициализация режима энкодер у таймера.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00168">general_tim.c:168</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r_html_gac3bc6525f88c275e47eb864e6d567501"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">TIM_Encoder_Read</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Encoder_Read(TIM_EncoderTypeDef *henc)</div><div class="ttdoc">Считать энкодер.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00303">general_tim.c:303</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ga7044214f24a9868ba7e1650b55e639ec"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">TIM_Base_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)</div><div class="ttdoc">Инициализация таймера.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00034">general_tim.c:34</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ga879e3f1c919c02990736730275367115"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">TIM_Base_MspDeInit</a></div><div class="ttdeci">void TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)</div><div class="ttdoc">Деинициализация CLK и NVIC таймеров.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00617">general_tim.c:617</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_gaa0a51c870325217ac099881f09dd0800"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">TIM_MHzTickBaseTypeDef</a></div><div class="ttdeci">TIM_MHzTickBaseTypeDef</div><div class="ttdoc">Длительность тика таймера (частота тактирования таймера)</div><div class="ttdef"><b>Definition</b> <a href="#l00092">general_tim.h:93</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_gaad47337be7ba2f6c0777c40d7278c931"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">TIM_Base_MspInit</a></div><div class="ttdeci">void TIM_Base_MspInit(TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)</div><div class="ttdoc">Инициализация CLK и NVIC таймеров.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00408">general_tim.c:408</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_gaeb611874216a4661fb83366b99b9e787"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">TIM_ITModeTypeDef</a></div><div class="ttdeci">TIM_ITModeTypeDef</div><div class="ttdoc">Режим прерываний таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00078">general_tim.h:79</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f">TIM_TickBase_10US</a></div><div class="ttdeci">@ TIM_TickBase_10US</div><div class="ttdoc">Таймер тактируется с частотой 100 кГц</div><div class="ttdef"><b>Definition</b> <a href="#l00096">general_tim.h:96</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30">TIM_TickBase_100US</a></div><div class="ttdeci">@ TIM_TickBase_100US</div><div class="ttdoc">Таймер тактируется с частотой 10 кГц</div><div class="ttdef"><b>Definition</b> <a href="#l00097">general_tim.h:97</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da">TIM_TickBase_100MS</a></div><div class="ttdeci">@ TIM_TickBase_100MS</div><div class="ttdoc">Таймер тактируется с частотой 10 Гц</div><div class="ttdef"><b>Definition</b> <a href="#l00100">general_tim.h:100</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2">TIM_TickBase_1US</a></div><div class="ttdeci">@ TIM_TickBase_1US</div><div class="ttdoc">Таймер тактируется с частотой 1 МГц</div><div class="ttdef"><b>Definition</b> <a href="#l00095">general_tim.h:95</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25">TIM_TickBase_1MS</a></div><div class="ttdeci">@ TIM_TickBase_1MS</div><div class="ttdoc">Таймер тактируется с частотой 1 кГц</div><div class="ttdef"><b>Definition</b> <a href="#l00098">general_tim.h:98</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa">TIM_TickBase_10MS</a></div><div class="ttdeci">@ TIM_TickBase_10MS</div><div class="ttdoc">Таймер тактируется с частотой 100 Гц</div><div class="ttdef"><b>Definition</b> <a href="#l00099">general_tim.h:99</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5">TIM_Base_Disable</a></div><div class="ttdeci">@ TIM_Base_Disable</div><div class="ttdoc">Таймер отключен</div><div class="ttdef"><b>Definition</b> <a href="#l00094">general_tim.h:94</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c">TIM_IT_MODE</a></div><div class="ttdeci">@ TIM_IT_MODE</div><div class="ttdoc">Прерываний включены</div><div class="ttdef"><b>Definition</b> <a href="#l00081">general_tim.h:81</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l_html_ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8">TIM_DEFAULT</a></div><div class="ttdeci">@ TIM_DEFAULT</div><div class="ttdoc">Прерываний отключены</div><div class="ttdef"><b>Definition</b> <a href="#l00080">general_tim.h:80</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___o_c_html_gadb2f465d89f609e035867e980c3a29c6"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">TIM_Output_PWM_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_Output_PWM_Init(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfigOC, uint32_t TIM_CHANNEL, GPIO_TypeDef *GPIOx, uint32_t PWM_PIN)</div><div class="ttdoc">Инициализация выхода ШИМ таймера.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00226">general_tim.c:226</a></div></div>
<div class="ttc" id="agroup___m_y_l_i_b_s___t_i_m___o_c_html_gae2608ca8023e9a0713af0b4fbfbc1889"><div class="ttname"><a href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">TIM_OC_Comparator_Init</a></div><div class="ttdeci">HAL_StatusTypeDef TIM_OC_Comparator_Init(TIM_HandleTypeDef *htim, uint32_t TIM_CHANNEL)</div><div class="ttdoc">Инициализация OC компаратора таймера.</div><div class="ttdef"><b>Definition</b> <a href="general__tim_8c_source.html#l00272">general_tim.c:272</a></div></div>
<div class="ttc" id="astruct_g_p_i_o___switch_type_def_html"><div class="ttname"><a href="struct_g_p_i_o___switch_type_def.html">GPIO_SwitchTypeDef</a></div><div class="ttdoc">Структура кнопки</div><div class="ttdef"><b>Definition</b> <a href="general__gpio_8h_source.html#l00091">general_gpio.h:92</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html">TIM_EncoderTypeDef</a></div><div class="ttdoc">Структура инициализации енкодера</div><div class="ttdef"><b>Definition</b> <a href="#l00142">general_tim.h:143</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a021f0c585e9e62d68a4b09f630d8b6e5"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef::sConfig</a></div><div class="ttdeci">TIM_Encoder_InitTypeDef sConfig</div><div class="ttdoc">Указатель на структуру настройки энкодера</div><div class="ttdef"><b>Definition</b> <a href="#l00148">general_tim.h:148</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a0dacce3dde7df3122583869d96a372a2"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2">TIM_EncoderTypeDef::Encoder_Shdw</a></div><div class="ttdeci">uint16_t Encoder_Shdw</div><div class="ttdoc">Последние считанные тики</div><div class="ttdef"><b>Definition</b> <a href="#l00145">general_tim.h:145</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a4fc05ef011205a6702cb3d006bab677e"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e">TIM_EncoderTypeDef::GPIO_PIN_TI1</a></div><div class="ttdeci">uint32_t GPIO_PIN_TI1</div><div class="ttdoc">Пин, куда подключается канал TI1.</div><div class="ttdef"><b>Definition</b> <a href="#l00151">general_tim.h:151</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a67ad037b92162546763fc9c425b5e3c5"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5">TIM_EncoderTypeDef::GPIO_PIN_TI2</a></div><div class="ttdeci">uint32_t GPIO_PIN_TI2</div><div class="ttdoc">Пин, куда подключается канал TI2.</div><div class="ttdef"><b>Definition</b> <a href="#l00152">general_tim.h:152</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a6973108a83d2a3ea4fc3e0e8a501af80"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80">TIM_EncoderTypeDef::GPIO_PIN_SW</a></div><div class="ttdeci">uint32_t GPIO_PIN_SW</div><div class="ttdoc">Пин, куда кнопка энкодера (если есть)</div><div class="ttdef"><b>Definition</b> <a href="#l00153">general_tim.h:153</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a6f769f027b760a4b496e2b2b77bf54a3"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a6f769f027b760a4b496e2b2b77bf54a3">TIM_EncoderTypeDef::Encoder_Diff</a></div><div class="ttdeci">int16_t Encoder_Diff</div><div class="ttdoc">Считанная разница</div><div class="ttdef"><b>Definition</b> <a href="#l00144">general_tim.h:144</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_a99295760ff8b27d1e6f1710f29383a45"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45">TIM_EncoderTypeDef::Sw</a></div><div class="ttdeci">GPIO_SwitchTypeDef Sw</div><div class="ttdoc">Структура кнопки</div><div class="ttdef"><b>Definition</b> <a href="#l00155">general_tim.h:155</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_ad29873fc8cdc71462e6d8744621120e9"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#ad29873fc8cdc71462e6d8744621120e9">TIM_EncoderTypeDef::GPIOx</a></div><div class="ttdeci">GPIO_TypeDef * GPIOx</div><div class="ttdoc">Порт, куда подключается энкодер</div><div class="ttdef"><b>Definition</b> <a href="#l00150">general_tim.h:150</a></div></div>
<div class="ttc" id="astruct_t_i_m___encoder_type_def_html_adc80bd5a90444c31d84157f35c59b95c"><div class="ttname"><a href="struct_t_i_m___encoder_type_def.html#adc80bd5a90444c31d84157f35c59b95c">TIM_EncoderTypeDef::htim</a></div><div class="ttdeci">TIM_HandleTypeDef * htim</div><div class="ttdoc">Указатель на HAL handle таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00147">general_tim.h:147</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html">TIM_SettingsTypeDef</a></div><div class="ttdoc">Структура инициализации таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00114">general_tim.h:115</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a11151fe125960cb8e61328ffd06b7718"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef::sTickBasePrescaler</a></div><div class="ttdeci">uint8_t sTickBasePrescaler</div><div class="ttdoc">Дополнительный делитель, для удобного деления sTickBaseUS.</div><div class="ttdef"><b>Definition</b> <a href="#l00124">general_tim.h:124</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a2d9d277dd395424b964445ec1bc65b21"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef::sMasterConfig</a></div><div class="ttdeci">TIM_MasterConfigTypeDef sMasterConfig</div><div class="ttdoc">Настройки мастер режима таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00119">general_tim.h:119</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a3805f627567798c3cd1d79a0da42bea0"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a3805f627567798c3cd1d79a0da42bea0">TIM_SettingsTypeDef::sClockSourceConfig</a></div><div class="ttdeci">TIM_ClockConfigTypeDef sClockSourceConfig</div><div class="ttdoc">Настройки тактирования таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00117">general_tim.h:117</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a58da1b4c0f6d12d7d9fb2f170b9b9e6e"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e">TIM_SettingsTypeDef::sTickBaseUS</a></div><div class="ttdeci">TIM_MHzTickBaseTypeDef sTickBaseUS</div><div class="ttdoc">Длительность одного тика</div><div class="ttdef"><b>Definition</b> <a href="#l00123">general_tim.h:123</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a7073358fd3a722687eb85238ab570014"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014">TIM_SettingsTypeDef::sTimAHBFreqMHz</a></div><div class="ttdeci">float sTimAHBFreqMHz</div><div class="ttdoc">Частота шины тактирования таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00125">general_tim.h:125</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a961f19f0e1672715c27bc94d7871dbb7"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a961f19f0e1672715c27bc94d7871dbb7">TIM_SettingsTypeDef::sBreakDeadTimeConfig</a></div><div class="ttdeci">TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig</div><div class="ttdoc">Настройки дедтаймов таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00120">general_tim.h:120</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_a9694cf0910a69d48ff94f8aeac106969"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef::sSlaveConfig</a></div><div class="ttdeci">TIM_SlaveConfigTypeDef sSlaveConfig</div><div class="ttdoc">Настройки слейв режима таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00118">general_tim.h:118</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_ab90e370c3edda88e76583293c250d2b0"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0">TIM_SettingsTypeDef::sTimMode</a></div><div class="ttdeci">TIM_ITModeTypeDef sTimMode</div><div class="ttdoc">Настройки прерывания таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00122">general_tim.h:122</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_ada49efdbd35a8e442c3cff630d42f34c"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#ada49efdbd35a8e442c3cff630d42f34c">TIM_SettingsTypeDef::htim</a></div><div class="ttdeci">TIM_HandleTypeDef htim</div><div class="ttdoc">HAL handle таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00116">general_tim.h:116</a></div></div>
<div class="ttc" id="astruct_t_i_m___settings_type_def_html_af6057ff3f60f5e01b41d4a347b79a5e4"><div class="ttname"><a href="struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4">TIM_SettingsTypeDef::sTimFreqHz</a></div><div class="ttdeci">float sTimFreqHz</div><div class="ttdoc">Желаемая частота таймера</div><div class="ttdef"><b>Definition</b> <a href="#l00126">general_tim.h:126</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_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="general__tim_8h.html">general_tim.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>

View File

@ -0,0 +1,253 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_uart.c File Reference</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">STM32_General<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.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 File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для инициализации UART.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="general__uart_8h_source.html">general_uart.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="general__gpio_8h_source.html">general_gpio.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_uart.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__uart_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__uart_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__uart_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_src_2general__uart_8c">
<area shape="rect" title="Модуль для инициализации UART." alt="" coords="40,5,202,64"/>
<area shape="rect" href="general__uart_8h.html" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,112,109,139"/>
<area shape="poly" title=" " alt="" coords="103,66,77,101,73,98,98,63"/>
<area shape="rect" href="general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="132,112,238,139"/>
<area shape="poly" title=" " alt="" coords="144,63,169,98,165,101,139,66"/>
<area shape="rect" title=" " alt="" coords="70,187,172,213"/>
<area shape="poly" title=" " alt="" coords="70,137,102,173,98,177,66,141"/>
<area shape="poly" title=" " alt="" coords="176,141,144,177,140,173,172,137"/>
</map>
</div>
</div>
<p><a href="general__uart_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab9f07396b778505c934143e89953e154" id="r_gab9f07396b778505c934143e89953e154"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">UART_Base_Init</a> (<a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</td></tr>
<tr class="memdesc:gab9f07396b778505c934143e89953e154"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация UART с помощью структуры <a class="el" href="struct_u_a_r_t___settings_type_def.html" title="Структура настроек UART.">UART_SettingsTypeDef</a>. <br /></td></tr>
<tr class="memitem:a3abae05bbde5f3b402bf18ca13dc6a0b" id="r_a3abae05bbde5f3b402bf18ca13dc6a0b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3abae05bbde5f3b402bf18ca13dc6a0b">UART_GPIO_Init</a> (GPIO_TypeDef *GPIOx, uint16_t GPIO_PIN_RX, uint16_t GPIO_PIN_TX)</td></tr>
<tr class="memdesc:a3abae05bbde5f3b402bf18ca13dc6a0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация GPIO для UART. <br /></td></tr>
<tr class="memitem:ad82d0cbd19151675135fd75dad315d05" id="r_ad82d0cbd19151675135fd75dad315d05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad82d0cbd19151675135fd75dad315d05">UART_DMA_Init</a> (UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma_rx, DMA_Stream_TypeDef *DMAChannel, uint32_t DMA_CHANNEL_X)</td></tr>
<tr class="memdesc:ad82d0cbd19151675135fd75dad315d05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация DMA для UART. <br /></td></tr>
<tr class="memitem:gab9313fd2f9fc6873ca6bfbc5b96edbbb" id="r_gab9313fd2f9fc6873ca6bfbc5b96edbbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a> (UART_HandleTypeDef *huart)</td></tr>
<tr class="memdesc:gab9313fd2f9fc6873ca6bfbc5b96edbbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка тактирования и прерываний UART. <br /></td></tr>
<tr class="memitem:ga93ed6ceef4e3b5e7885786125cce93bc" id="r_ga93ed6ceef4e3b5e7885786125cce93bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">UART_MspDeInit</a> (UART_HandleTypeDef *huart)</td></tr>
<tr class="memdesc:ga93ed6ceef4e3b5e7885786125cce93bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация тактирования и прерываний UART. <br /></td></tr>
<tr class="memitem:ga2a22e46ecb9e04b2ce197a0e9c09044a" id="r_ga2a22e46ecb9e04b2ce197a0e9c09044a"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">UART_Check_Init_Struct</a> (<a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</td></tr>
<tr class="memdesc:ga2a22e46ecb9e04b2ce197a0e9c09044a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Проверка корректности структуры инициализации UART. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для инициализации UART. </p>
<p>Реализация функций для работы с UART:</p><ul>
<li>Инициализация UART и его линий RX/TX</li>
<li>Настройка DMA для UART</li>
<li>Настройка GPIO для UART</li>
<li>Настройка NVIC и тактирования UART </li>
</ul>
<p class="definition">Definition in file <a class="el" href="general__uart_8c_source.html">general_uart.c</a>.</p>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="a3abae05bbde5f3b402bf18ca13dc6a0b" name="a3abae05bbde5f3b402bf18ca13dc6a0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3abae05bbde5f3b402bf18ca13dc6a0b">&#9670;&#160;</a></span>UART_GPIO_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void UART_GPIO_Init </td>
<td>(</td>
<td class="paramtype">GPIO_TypeDef *</td> <td class="paramname"><span class="paramname"><em>GPIOx</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>GPIO_PIN_RX</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t</td> <td class="paramname"><span class="paramname"><em>GPIO_PIN_TX</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Инициализация GPIO для UART. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">GPIOx</td><td>Порт для настройки. </td></tr>
<tr><td class="paramname">GPIO_PIN_RX</td><td>Пин для приема. </td></tr>
<tr><td class="paramname">GPIO_PIN_TX</td><td>Пин для передачи. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="general__uart_8c_source.html#l00069">69</a> of file <a class="el" href="general__uart_8c_source.html">general_uart.c</a>.</p>
</div>
</div>
<a id="ad82d0cbd19151675135fd75dad315d05" name="ad82d0cbd19151675135fd75dad315d05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad82d0cbd19151675135fd75dad315d05">&#9670;&#160;</a></span>UART_DMA_Init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void UART_DMA_Init </td>
<td>(</td>
<td class="paramtype">UART_HandleTypeDef *</td> <td class="paramname"><span class="paramname"><em>huart</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DMA_HandleTypeDef *</td> <td class="paramname"><span class="paramname"><em>hdma_rx</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DMA_Stream_TypeDef *</td> <td class="paramname"><span class="paramname"><em>DMAChannel</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t</td> <td class="paramname"><span class="paramname"><em>DMA_CHANNEL_X</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Инициализация DMA для UART. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">huart</td><td>Указатель на хендл UART. </td></tr>
<tr><td class="paramname">hdma_rx</td><td>Указатель на хендл DMA для линии приема UART. </td></tr>
<tr><td class="paramname">DMAChannel</td><td>Указатель на канал DMA/поток DMA в STM32F407. </td></tr>
<tr><td class="paramname">DMA_CHANNEL_X</td><td>Канал DMA. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="general__uart_8c_source.html#l00109">109</a> of file <a class="el" href="general__uart_8c_source.html">general_uart.c</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.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>

View File

@ -0,0 +1,9 @@
var general__uart_8c =
[
[ "UART_Base_Init", "group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154", null ],
[ "UART_GPIO_Init", "general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b", null ],
[ "UART_DMA_Init", "general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05", null ],
[ "UART_MspInit", "group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb", null ],
[ "UART_MspDeInit", "group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc", null ],
[ "UART_Check_Init_Struct", "group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a", null ]
];

View File

@ -0,0 +1,10 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_uart.c" name="E:/.WORK/STM32/STM_Libs/STM32_General/Src/general_uart.c">
<area shape="rect" id="Node000001" title="Модуль для инициализации UART." alt="" coords="40,5,202,64"/>
<area shape="rect" id="Node000002" href="$general__uart_8h.html" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,112,109,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="103,66,77,101,73,98,98,63"/>
<area shape="rect" id="Node000004" href="$general__gpio_8h.html" title="Заголовочный файл для модуля инициализации портов и работы с ними." alt="" coords="132,112,238,139"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="144,63,169,98,165,101,139,66"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="70,187,172,213"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="70,137,102,173,98,177,66,141"/>
<area shape="poly" id="edge4_Node000004_Node000003" title=" " alt="" coords="176,141,144,177,140,173,172,137"/>
</map>

View File

@ -0,0 +1 @@
4db6e094e9d316d19f82361bd26213f5

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,525 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/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">STM32_General<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___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154"> 32</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___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> MyLibs_Error_Handler();</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> MyLibs_Error_Handler();</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___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb"> 146</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc"> 267</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a"> 364</a></span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_ga2a22e46ecb9e04b2ce197a0e9c09044a"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_ga93ed6ceef4e3b5e7885786125cce93bc"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_gab9313fd2f9fc6873ca6bfbc5b96edbbb"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_gab9f07396b778505c934143e89953e154"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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#l00097">general_uart.h:98</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#l00106">general_uart.h:106</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#l00105">general_uart.h:105</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#l00102">general_uart.h:102</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#l00103">general_uart.h:103</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#l00099">general_uart.h:99</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#l00101">general_uart.h:101</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_413f4e031a85da0d68269c6fd2f76e1c.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>

View File

@ -0,0 +1,187 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_uart.h File Reference</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">STM32_General<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.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 File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Заголовочный файл для модуля инициализации UART.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;mylibs_defs.h&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for general_uart.h:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__uart_8h__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8h" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8h" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8h">
<area shape="rect" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,5,168,64"/>
<area shape="rect" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="general__uart_8h__dep__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8hdep" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8hdep" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_s_t_m___libs_2_s_t_m32___general_2_inc_2general__uart_8hdep">
<area shape="rect" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,5,168,64"/>
<area shape="rect" href="general__uart_8c.html" title="Модуль для инициализации UART." alt="" coords="5,112,168,171"/>
<area shape="poly" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>
</div>
</div>
<p><a href="general__uart_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:UART_5FSettingsTypeDef" id="r_UART_5FSettingsTypeDef"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Структура настроек UART. <a href="struct_u_a_r_t___settings_type_def.html#details">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga167269406e73327b95c3bb7b9cfe6d89" id="r_ga167269406e73327b95c3bb7b9cfe6d89"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89">HAL_UART_MODULE_ENABLED</a></td></tr>
<tr class="memdesc:ga167269406e73327b95c3bb7b9cfe6d89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включение HAL UART. <br /></td></tr>
<tr class="memitem:gace54f148bb1d72f13bf397d096d38d1b" id="r_gace54f148bb1d72f13bf397d096d38d1b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b">USE_USART1</a></td></tr>
<tr class="memdesc:gace54f148bb1d72f13bf397d096d38d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить USART1 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
<tr class="memitem:gaacb3968508217a0d8b3f64aa0c8aa07d" id="r_gaacb3968508217a0d8b3f64aa0c8aa07d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d">USE_USART2</a></td></tr>
<tr class="memdesc:gaacb3968508217a0d8b3f64aa0c8aa07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить USART2 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga6dadd967b428aade24008ec060009976" id="r_ga6dadd967b428aade24008ec060009976"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976">USE_USART3</a></td></tr>
<tr class="memdesc:ga6dadd967b428aade24008ec060009976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить USART3 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga779530e93e7aa1f25eb13045ec42b8e7" id="r_ga779530e93e7aa1f25eb13045ec42b8e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7">USE_UART4</a></td></tr>
<tr class="memdesc:ga779530e93e7aa1f25eb13045ec42b8e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить UART4 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
<tr class="memitem:ga592c6bf4a6496d6806ba0838cdfa2340" id="r_ga592c6bf4a6496d6806ba0838cdfa2340"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340">USE_UART5</a></td></tr>
<tr class="memdesc:ga592c6bf4a6496d6806ba0838cdfa2340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить UART5 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
<tr class="memitem:gafaeb8bdd4aa7fb1987505530daa90868" id="r_gafaeb8bdd4aa7fb1987505530daa90868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868">USE_USART6</a></td></tr>
<tr class="memdesc:gafaeb8bdd4aa7fb1987505530daa90868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Включить USART6 в <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gab9f07396b778505c934143e89953e154" id="r_gab9f07396b778505c934143e89953e154"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">UART_Base_Init</a> (<a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</td></tr>
<tr class="memdesc:gab9f07396b778505c934143e89953e154"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициализация UART с помощью структуры <a class="el" href="struct_u_a_r_t___settings_type_def.html" title="Структура настроек UART.">UART_SettingsTypeDef</a>. <br /></td></tr>
<tr class="memitem:ga2a22e46ecb9e04b2ce197a0e9c09044a" id="r_ga2a22e46ecb9e04b2ce197a0e9c09044a"><td class="memItemLeft" align="right" valign="top">HAL_StatusTypeDef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">UART_Check_Init_Struct</a> (<a class="el" href="struct_u_a_r_t___settings_type_def.html">UART_SettingsTypeDef</a> *suart)</td></tr>
<tr class="memdesc:ga2a22e46ecb9e04b2ce197a0e9c09044a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Проверка корректности структуры инициализации UART. <br /></td></tr>
<tr class="memitem:gab9313fd2f9fc6873ca6bfbc5b96edbbb" id="r_gab9313fd2f9fc6873ca6bfbc5b96edbbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a> (UART_HandleTypeDef *huart)</td></tr>
<tr class="memdesc:gab9313fd2f9fc6873ca6bfbc5b96edbbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка тактирования и прерываний UART. <br /></td></tr>
<tr class="memitem:ga93ed6ceef4e3b5e7885786125cce93bc" id="r_ga93ed6ceef4e3b5e7885786125cce93bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">UART_MspDeInit</a> (UART_HandleTypeDef *huart)</td></tr>
<tr class="memdesc:ga93ed6ceef4e3b5e7885786125cce93bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Деинициализация тактирования и прерываний UART. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Заголовочный файл для модуля инициализации UART. </p>
<p class="definition">Definition in file <a class="el" href="general__uart_8h_source.html">general_uart.h</a>.</p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_f93dfce691d792349f1c14ede440e2e6.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>

View File

@ -0,0 +1,14 @@
var general__uart_8h =
[
[ "HAL_UART_MODULE_ENABLED", "group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89", null ],
[ "USE_USART1", "group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b", null ],
[ "USE_USART2", "group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d", null ],
[ "USE_USART3", "group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976", null ],
[ "USE_UART4", "group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7", null ],
[ "USE_UART5", "group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340", null ],
[ "USE_USART6", "group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868", null ],
[ "UART_Base_Init", "group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154", null ],
[ "UART_Check_Init_Struct", "group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a", null ],
[ "UART_MspInit", "group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb", null ],
[ "UART_MspDeInit", "group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc", null ]
];

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_uart.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_uart.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" href="$general__uart_8c.html" title="Модуль для инициализации UART." alt="" coords="5,112,168,171"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,80,89,112,84,112,84,80"/>
</map>

View File

@ -0,0 +1 @@
d651cd7e18f390df10e60371511e5eb2

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,5 @@
<map id="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_uart.h" name="E:/.WORK/STM32/STM_Libs/STM32_General/Inc/general_uart.h">
<area shape="rect" id="Node000001" title="Заголовочный файл для модуля инициализации UART." alt="" coords="5,5,168,64"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="35,112,138,139"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="89,64,89,96,84,96,84,64"/>
</map>

View File

@ -0,0 +1 @@
4a634725e31883ab8c7cb652cd4acfba

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,286 @@
<!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>STM32_General: E:/.WORK/STM32/STM_Libs/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">STM32_General<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 GENERAL_UART UART Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">* @ingroup STM32_GENERAL</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 UART Init defines</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @ingroup GENERAL_UART</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * @ingroup GENERAL_CONFIGS Конфигурации STM32 General</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @brief Настройка UART</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"> 65</span><span class="comment"> */</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89"> 66</a></span><span class="preprocessor">#define HAL_UART_MODULE_ENABLED </span><span class="comment">///&lt; Включение HAL UART</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</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#gace54f148bb1d72f13bf397d096d38d1b"> 68</a></span><span class="preprocessor">#define USE_USART1 </span><span class="comment">///&lt; Включить USART1 в @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#gaacb3968508217a0d8b3f64aa0c8aa07d"> 69</a></span><span class="preprocessor">#define USE_USART2 </span><span class="comment">///&lt; Включить USART2 в @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#ga6dadd967b428aade24008ec060009976"> 70</a></span><span class="preprocessor">#define USE_USART3 </span><span class="comment">///&lt; Включить USART3 в @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#ga779530e93e7aa1f25eb13045ec42b8e7"> 71</a></span><span class="preprocessor">#define USE_UART4 </span><span class="comment">///&lt; Включить UART4 в @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#ga592c6bf4a6496d6806ba0838cdfa2340"> 72</a></span><span class="preprocessor">#define USE_UART5 </span><span class="comment">///&lt; Включить UART5 в @ref UART_MspInit</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868"> 73</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="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">/** UART_INIT</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> */</span><span class="preprocessor"></span><span class="comment"></span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor">#include &quot;mylibs_defs.h&quot;</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> </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">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</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> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment">////////////////////////////---DEFINES---////////////////////////////</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</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">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">/**</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @brief Структура настроек UART</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * @details Содержит все необходимые параметры для инициализации UART,</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> * включая GPIO и DMA.</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> */</span></div>
<div class="foldopen" id="foldopen00097" data-start="{" data-end="};">
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html"> 97</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span>{</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#accf2c9448a3ea8eb3b8c25a569276fea"> 99</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="l00100" name="l00100"></a><span class="lineno"> 100</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#af6f9910d065bae715cdb4a1024143a8f"> 101</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="l00102" name="l00102"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a3fba2b52788fe453348b5d92ed52ba49"> 102</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="l00103" name="l00103"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a5f1babfcfb436cd77f5614253c0a5bef"> 103</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="l00104" name="l00104"></a><span class="lineno"> 104</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#a1ecc9ac6a1d2747ade56770cbab6a613"> 105</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="l00106" name="l00106"></a><span class="lineno"><a class="line" href="struct_u_a_r_t___settings_type_def.html#a15ce92b03f7f189bfbe1ab88a5f94d19"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</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="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"></span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">///////////////////////---STRUCTURES &amp; ENUMS---//////////////////////</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</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">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment">/* Инициализация UART с использованием структуры настроек */</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___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="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment">/* Проверка корректности структуры настроек UART */</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span>HAL_StatusTypeDef <a class="code hl_function" href="group___g_e_n_e_r_a_l___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="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">/* Инициализация тактирования и прерываний для выбранного UART */</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">UART_MspInit</a>(UART_HandleTypeDef *huart);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment">/* Деинициализация тактирования и прерываний для выбранного UART */</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">UART_MspDeInit</a>(UART_HandleTypeDef *huart);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</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">/** </span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * @cond UART_INTERNAL</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> */</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><span class="comment">/* Настройка GPIO для UART */</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</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="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">/* Настройка DMA для UART */</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</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="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#ifndef __USER_LINKDMA</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 Аналог HAL макроса для привязки DMA к UART.</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> * @note @ref __HAL_LINKDMA.</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor">#define __USER_LINKDMA(__HANDLE__, __PPP_DMA_FIELD__, __DMA_HANDLE__) \</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">do{ \</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">(__HANDLE__)-&gt;__PPP_DMA_FIELD__ = (__DMA_HANDLE__); \</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor">(__DMA_HANDLE__)-&gt;Parent = (__HANDLE__);} while(0U)</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="comment"></span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment">/** @endcond */</span><span class="comment"></span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment">///////////////////////////---FUNCTIONS---///////////////////////////</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor">#endif </span><span class="comment">// __UART_GENERAL_H_</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"></span> </div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment">/** GENERAL_UART</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</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___g_e_n_e_r_a_l___u_a_r_t_html_ga2a22e46ecb9e04b2ce197a0e9c09044a"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_ga93ed6ceef4e3b5e7885786125cce93bc"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_gab9313fd2f9fc6873ca6bfbc5b96edbbb"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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___g_e_n_e_r_a_l___u_a_r_t_html_gab9f07396b778505c934143e89953e154"><div class="ttname"><a href="group___g_e_n_e_r_a_l___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="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="#l00097">general_uart.h:98</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="#l00106">general_uart.h:106</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="#l00105">general_uart.h:105</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="#l00102">general_uart.h:102</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="#l00103">general_uart.h:103</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="#l00099">general_uart.h:99</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="#l00101">general_uart.h:101</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_f93dfce691d792349f1c14ede440e2e6.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>

213
Doc/html/globals.html Normal file
View File

@ -0,0 +1,213 @@
<!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>STM32_General: File Members</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">STM32_General<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('globals.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="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div>
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>GPIO_Clock_Enable()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">general_gpio.c</a></li>
<li>GPIO_LED_Blink_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">general_gpio.c</a></li>
<li>GPIO_LED_Dynamic_Handle()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">general_gpio.c</a></li>
<li>GPIO_LED_Fading_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">general_gpio.c</a></li>
<li>GPIO_LED_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">general_gpio.c</a></li>
<li>GPIO_LED_Off()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">general_gpio.c</a></li>
<li>GPIO_LED_On()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">general_gpio.c</a></li>
<li>GPIO_LED_Set()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">general_gpio.c</a></li>
<li>GPIO_LEDStateTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">general_gpio.h</a></li>
<li>GPIO_Read_Switch()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">general_gpio.c</a></li>
<li>GPIO_Switch_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">general_gpio.c</a></li>
</ul>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HAL_SPI_MODULE_ENABLED&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c">general_spi.h</a></li>
<li>HAL_UART_MODULE_ENABLED&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89">general_uart.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>LED_IS_BLINKING&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">general_gpio.h</a></li>
<li>LED_IS_FADING&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">general_gpio.h</a></li>
<li>LED_IS_OFF&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">general_gpio.h</a></li>
<li>LED_IS_ON&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">general_gpio.h</a></li>
<li>LED_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29">general_gpio.h</a></li>
<li>LED_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25">general_gpio.h</a></li>
<li>LED_PWM_TICKS&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">general_gpio.h</a></li>
<li>local_time&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">general_gpio.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SPI_Base_Init()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">general_spi.c</a></li>
<li>SPI_Check_Init_Struct()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">general_spi.c</a></li>
<li>SPI_GPIO_Init()&#160;:&#160;<a class="el" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">general_spi.c</a></li>
<li>SPI_MspDeInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">general_spi.c</a></li>
<li>SPI_MspInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">general_spi.c</a></li>
<li>SW_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067">general_gpio.h</a></li>
<li>SW_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9">general_gpio.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TIM_Base_Disable&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5">general_tim.h</a></li>
<li>TIM_Base_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">general_tim.c</a></li>
<li>TIM_Base_MspDeInit()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">general_tim.c</a></li>
<li>TIM_Base_MspInit()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">general_tim.c</a></li>
<li>TIM_DEFAULT&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8">general_tim.h</a></li>
<li>TIM_Delay()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">general_tim.c</a></li>
<li>TIM_Delay_NonBlocking()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">general_tim.c</a></li>
<li>TIM_Delay_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">general_tim.c</a></li>
<li>TIM_Encoder_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">general_tim.c</a></li>
<li>TIM_Encoder_Read()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">general_tim.c</a></li>
<li>TIM_Encoder_ReadSwitch()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">general_tim.c</a></li>
<li>TIM_IT_MODE&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c">general_tim.h</a></li>
<li>TIM_ITModeTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">general_tim.h</a></li>
<li>TIM_MHzTickBaseTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">general_tim.h</a></li>
<li>TIM_OC_Comparator_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">general_tim.c</a></li>
<li>TIM_Output_PWM_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">general_tim.c</a></li>
<li>TIM_TickBase_100MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da">general_tim.h</a></li>
<li>TIM_TickBase_100US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30">general_tim.h</a></li>
<li>TIM_TickBase_10MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa">general_tim.h</a></li>
<li>TIM_TickBase_10US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f">general_tim.h</a></li>
<li>TIM_TickBase_1MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25">general_tim.h</a></li>
<li>TIM_TickBase_1US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2">general_tim.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>UART_Base_Init()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">general_uart.c</a></li>
<li>UART_Check_Init_Struct()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">general_uart.c</a></li>
<li>UART_DMA_Init()&#160;:&#160;<a class="el" href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05">general_uart.c</a></li>
<li>UART_GPIO_Init()&#160;:&#160;<a class="el" href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b">general_uart.c</a></li>
<li>UART_MspDeInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">general_uart.c</a></li>
<li>UART_MspInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">general_uart.c</a></li>
<li>USE_SPI1&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf">general_spi.h</a></li>
<li>USE_SPI2&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b">general_spi.h</a></li>
<li>USE_SPI3&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc">general_spi.h</a></li>
<li>USE_TIM1&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b">general_tim.h</a></li>
<li>USE_TIM10&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9">general_tim.h</a></li>
<li>USE_TIM11&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2">general_tim.h</a></li>
<li>USE_TIM12&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b">general_tim.h</a></li>
<li>USE_TIM13&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac">general_tim.h</a></li>
<li>USE_TIM14&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c">general_tim.h</a></li>
<li>USE_TIM2&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb">general_tim.h</a></li>
<li>USE_TIM3&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617">general_tim.h</a></li>
<li>USE_TIM4&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0">general_tim.h</a></li>
<li>USE_TIM5&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3">general_tim.h</a></li>
<li>USE_TIM6&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46">general_tim.h</a></li>
<li>USE_TIM7&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67">general_tim.h</a></li>
<li>USE_TIM8&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be">general_tim.h</a></li>
<li>USE_TIM9&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a">general_tim.h</a></li>
<li>USE_UART4&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7">general_uart.h</a></li>
<li>USE_UART5&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340">general_uart.h</a></li>
<li>USE_USART1&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b">general_uart.h</a></li>
<li>USE_USART2&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d">general_uart.h</a></li>
<li>USE_USART3&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976">general_uart.h</a></li>
<li>USE_USART6&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868">general_uart.h</a></li>
</ul>
</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="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>

157
Doc/html/globals_defs.html Normal file
View File

@ -0,0 +1,157 @@
<!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>STM32_General: File Members</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">STM32_General<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('globals_defs.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="contents">
<div class="textblock">Here is a list of all documented macros with links to the documentation:</div>
<h3 class="doxsection"><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>HAL_SPI_MODULE_ENABLED&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga8ad4712bf4add56892d057778e826e0c">general_spi.h</a></li>
<li>HAL_UART_MODULE_ENABLED&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga167269406e73327b95c3bb7b9cfe6d89">general_uart.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>LED_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29">general_gpio.h</a></li>
<li>LED_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25">general_gpio.h</a></li>
<li>LED_PWM_TICKS&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">general_gpio.h</a></li>
<li>local_time&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga9c853b02c22f26023c34d1d404b6d653">general_gpio.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SW_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067">general_gpio.h</a></li>
<li>SW_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9">general_gpio.h</a></li>
</ul>
<h3 class="doxsection"><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>USE_SPI1&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga2fe0c8aeb2c61679f32836fef479eedf">general_spi.h</a></li>
<li>USE_SPI2&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga53687cddb8e39e76a79b8ffaa152fb2b">general_spi.h</a></li>
<li>USE_SPI3&#160;:&#160;<a class="el" href="group___s_p_i___i_n_i_t.html#ga5fdd6e5934a8005ef05b80f6d95883dc">general_spi.h</a></li>
<li>USE_TIM1&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga54a98c21365e0bc45b81555d2b101f2b">general_tim.h</a></li>
<li>USE_TIM10&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga98c0691052d1da2c4053dd3586ff7ce9">general_tim.h</a></li>
<li>USE_TIM11&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga176c97f06ebcf14e06e5c5bdbfac44c2">general_tim.h</a></li>
<li>USE_TIM12&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga4e2b0e6cdf9eed74581b575c3fd9516b">general_tim.h</a></li>
<li>USE_TIM13&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#gaf48ef87650517652ddec039a189507ac">general_tim.h</a></li>
<li>USE_TIM14&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga9ae40be31d5271abe3e49f896d916d5c">general_tim.h</a></li>
<li>USE_TIM2&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga72535a44955b43cbcd56e25039ab32eb">general_tim.h</a></li>
<li>USE_TIM3&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga5b5685a43273b6e37242a4aba3ee0617">general_tim.h</a></li>
<li>USE_TIM4&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga1493b39c9214501180b81b4c892f9be0">general_tim.h</a></li>
<li>USE_TIM5&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga252f4fba93fc265110e83760e0590af3">general_tim.h</a></li>
<li>USE_TIM6&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga8fe31b98160627d19038222910be3f46">general_tim.h</a></li>
<li>USE_TIM7&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga7cdc54cc8cbbb6e9f60001f1e3e6ec67">general_tim.h</a></li>
<li>USE_TIM8&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#ga28ba33d7c6bf22821dafa5bcee4854be">general_tim.h</a></li>
<li>USE_TIM9&#160;:&#160;<a class="el" href="group___t_i_m___i_n_i_t.html#gaac627c0e98c9594cc41b1b46eb39e44a">general_tim.h</a></li>
<li>USE_UART4&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga779530e93e7aa1f25eb13045ec42b8e7">general_uart.h</a></li>
<li>USE_UART5&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga592c6bf4a6496d6806ba0838cdfa2340">general_uart.h</a></li>
<li>USE_USART1&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gace54f148bb1d72f13bf397d096d38d1b">general_uart.h</a></li>
<li>USE_USART2&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gaacb3968508217a0d8b3f64aa0c8aa07d">general_uart.h</a></li>
<li>USE_USART3&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#ga6dadd967b428aade24008ec060009976">general_uart.h</a></li>
<li>USE_USART6&#160;:&#160;<a class="el" href="group___u_a_r_t___i_n_i_t.html#gafaeb8bdd4aa7fb1987505530daa90868">general_uart.h</a></li>
</ul>
</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="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>

115
Doc/html/globals_enum.html Normal file
View File

@ -0,0 +1,115 @@
<!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>STM32_General: File Members</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">STM32_General<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('globals_enum.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="contents">
<div class="textblock">Here is a list of all documented enums with links to the documentation:</div><ul>
<li>GPIO_LEDStateTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaac2b90d8b8c9579b6aa5d3bbda9b1ff1">general_gpio.h</a></li>
<li>TIM_ITModeTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaeb611874216a4661fb83366b99b9e787">general_tim.h</a></li>
<li>TIM_MHzTickBaseTypeDef&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaa0a51c870325217ac099881f09dd0800">general_tim.h</a></li>
</ul>
</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="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>

125
Doc/html/globals_eval.html Normal file
View File

@ -0,0 +1,125 @@
<!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>STM32_General: File Members</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">STM32_General<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('globals_eval.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="contents">
<div class="textblock">Here is a list of all documented enum values with links to the documentation:</div><ul>
<li>LED_IS_BLINKING&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a2445895bed5dcbedc82ea3ef02bec6fb">general_gpio.h</a></li>
<li>LED_IS_FADING&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1aa610f6df44c939aa7d45e318036fa03b">general_gpio.h</a></li>
<li>LED_IS_OFF&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1a74276cd2464314e422e8a144483f74ae">general_gpio.h</a></li>
<li>LED_IS_ON&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ggaac2b90d8b8c9579b6aa5d3bbda9b1ff1af6abfb9c5b95abbdb239590f2cd245ea">general_gpio.h</a></li>
<li>TIM_Base_Disable&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800ae838122c0e83bc57ad31b546bf2f00e5">general_tim.h</a></li>
<li>TIM_DEFAULT&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787ab0869828a4dfd62eaa44868ca27835f8">general_tim.h</a></li>
<li>TIM_IT_MODE&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaeb611874216a4661fb83366b99b9e787a89ecf1ef6d45ead2efcb7dd30396114c">general_tim.h</a></li>
<li>TIM_TickBase_100MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a18527a2d781eb4365aecd9a3184fc1da">general_tim.h</a></li>
<li>TIM_TickBase_100US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a096ef0ab67788487f69d8877c6d89b30">general_tim.h</a></li>
<li>TIM_TickBase_10MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a7421a08abd119e71aa99eea5ab5d6daa">general_tim.h</a></li>
<li>TIM_TickBase_10US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a060b01e890891fd17c8f95b55a94139f">general_tim.h</a></li>
<li>TIM_TickBase_1MS&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a6a66c5ed1d966c9e30f0219b664d2b25">general_tim.h</a></li>
<li>TIM_TickBase_1US&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ggaa0a51c870325217ac099881f09dd0800a63df3123d0ddc592b189ed1594456ea2">general_tim.h</a></li>
</ul>
</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="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>

158
Doc/html/globals_func.html Normal file
View File

@ -0,0 +1,158 @@
<!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>STM32_General: File Members</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">STM32_General<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('globals_func.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="contents">
<div class="textblock">Here is a list of all documented functions with links to the documentation:</div>
<h3 class="doxsection"><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>GPIO_Clock_Enable()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html#ga962f010f783b81fcdd27eb6b53db28e6">general_gpio.c</a></li>
<li>GPIO_LED_Blink_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaf22f44ecaf6a1932b47edc5a845b03a9">general_gpio.c</a></li>
<li>GPIO_LED_Dynamic_Handle()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gad6e6189824406c4d472b6340c7f19bb2">general_gpio.c</a></li>
<li>GPIO_LED_Fading_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaa00f20021781464af3dfe74aa3e59a0a">general_gpio.c</a></li>
<li>GPIO_LED_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gac936453c7a0841c0b17bcfdae4958084">general_gpio.c</a></li>
<li>GPIO_LED_Off()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gaadda2d4f021390a4e392210a5ace5357">general_gpio.c</a></li>
<li>GPIO_LED_On()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#ga4b9572949326b050694cd55d0a7e5f6c">general_gpio.c</a></li>
<li>GPIO_LED_Set()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html#gae78b570447d55a462a679a89dbaa8ea2">general_gpio.c</a></li>
<li>GPIO_Read_Switch()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#ga960b24335b2026abcad126ab8c422d70">general_gpio.c</a></li>
<li>GPIO_Switch_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">general_gpio.h</a>, <a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html#gacafee0e68877f2b25df843356871d1f7">general_gpio.c</a></li>
</ul>
<h3 class="doxsection"><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SPI_Base_Init()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga0e177e3c57a8fcdc73b5602e72ec66ba">general_spi.c</a></li>
<li>SPI_Check_Init_Struct()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#ga333dd251bc878931086d48aa932b1a5f">general_spi.c</a></li>
<li>SPI_GPIO_Init()&#160;:&#160;<a class="el" href="general__spi_8c.html#ae80d21e5cab86571709a2619442733b5">general_spi.c</a></li>
<li>SPI_MspDeInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gac279cc3eaa35541edfe330a1844a85e4">general_spi.c</a></li>
<li>SPI_MspInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">general_spi.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___s_p_i.html#gab9f13318daf02bc5b5f302ae392dccac">general_spi.c</a></li>
</ul>
<h3 class="doxsection"><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>TIM_Base_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga7044214f24a9868ba7e1650b55e639ec">general_tim.c</a></li>
<li>TIM_Base_MspDeInit()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#ga879e3f1c919c02990736730275367115">general_tim.c</a></li>
<li>TIM_Base_MspInit()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___g_e_n_e_r_a_l.html#gaad47337be7ba2f6c0777c40d7278c931">general_tim.c</a></li>
<li>TIM_Delay()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga88c552a133cb6e3015453cccab74c07e">general_tim.c</a></li>
<li>TIM_Delay_NonBlocking()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga108637af414bff3373059273b815ce9b">general_tim.c</a></li>
<li>TIM_Delay_Start()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___d_e_l_a_y.html#ga4c0dfde4e15f677600605348b4e97834">general_tim.c</a></li>
<li>TIM_Encoder_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga8d16c3b7e7c6decc54c5c3d1a8bf0fbc">general_tim.c</a></li>
<li>TIM_Encoder_Read()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#gac3bc6525f88c275e47eb864e6d567501">general_tim.c</a></li>
<li>TIM_Encoder_ReadSwitch()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___e_n_c_o_d_e_r.html#ga117b795017e9e3a357ddefe323412761">general_tim.c</a></li>
<li>TIM_OC_Comparator_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gae2608ca8023e9a0713af0b4fbfbc1889">general_tim.c</a></li>
<li>TIM_Output_PWM_Init()&#160;:&#160;<a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">general_tim.h</a>, <a class="el" href="group___m_y_l_i_b_s___t_i_m___o_c.html#gadb2f465d89f609e035867e980c3a29c6">general_tim.c</a></li>
</ul>
<h3 class="doxsection"><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>UART_Base_Init()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9f07396b778505c934143e89953e154">general_uart.c</a></li>
<li>UART_Check_Init_Struct()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga2a22e46ecb9e04b2ce197a0e9c09044a">general_uart.c</a></li>
<li>UART_DMA_Init()&#160;:&#160;<a class="el" href="general__uart_8c.html#ad82d0cbd19151675135fd75dad315d05">general_uart.c</a></li>
<li>UART_GPIO_Init()&#160;:&#160;<a class="el" href="general__uart_8c.html#a3abae05bbde5f3b402bf18ca13dc6a0b">general_uart.c</a></li>
<li>UART_MspDeInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#ga93ed6ceef4e3b5e7885786125cce93bc">general_uart.c</a></li>
<li>UART_MspInit()&#160;:&#160;<a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">general_uart.h</a>, <a class="el" href="group___g_e_n_e_r_a_l___u_a_r_t.html#gab9313fd2f9fc6873ca6bfbc5b96edbbb">general_uart.c</a></li>
</ul>
</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="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>

173
Doc/html/graph_legend.html Normal file
View File

@ -0,0 +1,173 @@
<!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>STM32_General: Graph Legend</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">STM32_General<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('graph_legend.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">Graph Legend</div></div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
<div class="line"><span class="keyword">class </span>Invisible { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
<div class="line"> </div>
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! A template class */</span></div>
<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
<div class="line"><span class="keyword">class </span>Used { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
<div class="line"> <span class="keyword">public</span> Templ&lt;int&gt;</div>
<div class="line">{</div>
<div class="line"> <span class="keyword">private</span>:</div>
<div class="line"> Used *m_usedClass;</div>
<div class="line">};</div>
</div><!-- fragment --><p> This will result in the following graph:</p>
<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
</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="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>

View File

@ -0,0 +1 @@
f74606a252eb303675caf37987d0b7af

BIN
Doc/html/graph_legend.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,146 @@
<!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>STM32_General: General Configs</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">STM32_General<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('group___g_e_n_e_r_a_l___c_o_n_f_i_g_s.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 Configs </div></div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for General Configs:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___g_e_n_e_r_a_l___c_o_n_f_i_g_s.png" border="0" usemap="#agroup______g__e__n__e__r__a__l______c__o__n__f__i__g__s" loading="lazy" alt=""/></div>
<map name="agroup______g__e__n__e__r__a__l______c__o__n__f__i__g__s" id="agroup______g__e__n__e__r__a__l______c__o__n__f__i__g__s">
<area shape="rect" title=" " alt="" coords="5,81,121,108"/>
<area shape="rect" href="group___g_p_i_o___i_n_i_t.html" title="Настройка состояний кнопок и количества тиков в периоде ШИМ" alt="" coords="170,5,292,32"/>
<area shape="rect" href="group___s_p_i___i_n_i_t.html" title="Настройка SPI." alt="" coords="176,56,287,83"/>
<area shape="rect" href="group___t_i_m___i_n_i_t.html" title="Настройка таймеров" alt="" coords="175,107,288,133"/>
<area shape="rect" href="group___u_a_r_t___i_n_i_t.html" title="Настройка UART." alt="" coords="169,157,294,184"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
Topics</h2></td></tr>
<tr class="memitem:GPIO_5FINIT" id="r_GPIO_5FINIT"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___g_p_i_o___i_n_i_t.html">GPIO Init defines</a></td></tr>
<tr class="memdesc:group___g_p_i_o___i_n_i_t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка состояний кнопок и количества тиков в периоде ШИМ <br /></td></tr>
<tr class="memitem:SPI_5FINIT" id="r_SPI_5FINIT"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_p_i___i_n_i_t.html">SPI Init defines</a></td></tr>
<tr class="memdesc:group___s_p_i___i_n_i_t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка SPI. <br /></td></tr>
<tr class="memitem:TIM_5FINIT" id="r_TIM_5FINIT"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___t_i_m___i_n_i_t.html">TIM Init defines</a></td></tr>
<tr class="memdesc:group___t_i_m___i_n_i_t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка таймеров <br /></td></tr>
<tr class="memitem:UART_5FINIT" id="r_UART_5FINIT"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___u_a_r_t___i_n_i_t.html">UART Init defines</a></td></tr>
<tr class="memdesc:group___u_a_r_t___i_n_i_t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Настройка UART. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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>

View File

@ -0,0 +1,7 @@
var group___g_e_n_e_r_a_l___c_o_n_f_i_g_s =
[
[ "GPIO Init defines", "group___g_p_i_o___i_n_i_t.html", "group___g_p_i_o___i_n_i_t" ],
[ "SPI Init defines", "group___s_p_i___i_n_i_t.html", "group___s_p_i___i_n_i_t" ],
[ "TIM Init defines", "group___t_i_m___i_n_i_t.html", "group___t_i_m___i_n_i_t" ],
[ "UART Init defines", "group___u_a_r_t___i_n_i_t.html", "group___u_a_r_t___i_n_i_t" ]
];

View File

@ -0,0 +1,7 @@
<map id="General Configs" name="General Configs">
<area shape="rect" id="Node000001" title=" " alt="" coords="5,81,121,108"/>
<area shape="rect" id="Node000002" href="$group___g_p_i_o___i_n_i_t.html" title="Настройка состояний кнопок и количества тиков в периоде ШИМ" alt="" coords="170,5,292,32"/>
<area shape="rect" id="Node000003" href="$group___s_p_i___i_n_i_t.html" title="Настройка SPI." alt="" coords="176,56,287,83"/>
<area shape="rect" id="Node000004" href="$group___t_i_m___i_n_i_t.html" title="Настройка таймеров" alt="" coords="175,107,288,133"/>
<area shape="rect" id="Node000005" href="$group___u_a_r_t___i_n_i_t.html" title="Настройка UART." alt="" coords="169,157,294,184"/>
</map>

View File

@ -0,0 +1 @@
eadcf81c05b9b6f04656fb13d3e1bc6b

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,152 @@
<!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>STM32_General: GPIO Tools</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">STM32_General<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('group___g_e_n_e_r_a_l___g_p_i_o.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">GPIO Tools </div></div>
</div><!--header-->
<div class="contents">
<p>Функции и макросы для удобной работы с GPIO.
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for GPIO Tools:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group___g_e_n_e_r_a_l___g_p_i_o.png" border="0" usemap="#agroup______g__e__n__e__r__a__l______g__p__i__o" loading="lazy" alt=""/></div>
<map name="agroup______g__e__n__e__r__a__l______g__p__i__o" id="agroup______g__e__n__e__r__a__l______g__p__i__o">
<area shape="rect" title="Функции и макросы для удобной работы с GPIO." alt="" coords="5,56,94,83"/>
<area shape="rect" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html" title="Общие функции/макросы для работы с GPIO." alt="" coords="142,5,240,32"/>
<area shape="rect" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html" title="Функции для работы с GPIO, для управления светодиодом" alt="" coords="151,56,230,83"/>
<area shape="rect" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html" title="Функции для работы с GPIO, как с кнопкой" alt="" coords="144,107,238,133"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
Topics</h2></td></tr>
<tr class="memitem:MYLIBS_5FGPIO_5FGENERAL" id="r_MYLIBS_5FGPIO_5FGENERAL"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html">General tools</a></td></tr>
<tr class="memdesc:group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l"><td class="mdescLeft">&#160;</td><td class="mdescRight">Общие функции/макросы для работы с GPIO. <br /></td></tr>
<tr class="memitem:MYLIBS_5FGPIO_5FSWITCH" id="r_MYLIBS_5FGPIO_5FSWITCH"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html">Switch tools</a></td></tr>
<tr class="memdesc:group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Функции для работы с GPIO, как с кнопкой <br /></td></tr>
<tr class="memitem:MYLIBS_5FGPIO_5FLEDS" id="r_MYLIBS_5FGPIO_5FLEDS"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html">LED tools</a></td></tr>
<tr class="memdesc:group___m_y_l_i_b_s___g_p_i_o___l_e_d_s"><td class="mdescLeft">&#160;</td><td class="mdescRight">Функции для работы с GPIO, для управления светодиодом <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Функции и макросы для удобной работы с GPIO. </p>
<p>Модуль предоставляет универсальные инструменты для работы с GPIO):</p><ul>
<li><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___g_e_n_e_r_a_l.html">General tools</a> — инициализация и общие функции работы с портами.</li>
<li><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html">Switch tools</a> — работа с GPIO как с кнопкой: чтение состояния, фильтрация дребезга, настройка активного уровня.</li>
<li><a class="el" href="group___m_y_l_i_b_s___g_p_i_o___l_e_d_s.html">LED tools</a> — работа с GPIO как со светодиодом: включение, выключение, моргание и плавное затухание. </li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<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>

Some files were not shown because too many files have changed in this diff Show More