Files
UKSI_TEST/AllLibs/Modbus/Doc/html/modbus_8h_source.html
2025-12-16 17:57:59 +03:00

273 lines
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Inc/modbus.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">Modbus<span id="projectnumber">&#160;0.3</span>
</div>
<div id="projectbrief">Библиотека Modbus для STM</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('modbus_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">modbus.h</div></div>
</div><!--header-->
<div class="contents">
<a href="modbus_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 modbus.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Главный заголовочный файл Modbus библиотеки</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">@addtogroup MODBUS Modbus tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">@brief Библиотека реализующая протокол Modbus</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">@addtogroup MODBUS_FUNCTIONS Main API for Modbus Library</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">@ingroup MODBUS</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">@brief Публичные функции библиотеки</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">*******************************************************************************</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">Объединяющий файл для подключения всей функциональности Modbus.</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"></span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment">@section Start Инструкция по подключению</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">- Подключить обработчики RS_UART_Handler(), RS_TIM_Handler(), в соответствубщие </span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> низкоуровневые прерывания UART_IRQHandler, TIM_IRQHandler вместо HAL&#39;овского обработчика</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">- В modbus_config.h настроить дефайны для нужной работы UART</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">- Инициализировать хендл мобдас. По умолчанию глобально создается hmodbus1</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment">- После для запуска Modbus:</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"> //----------------Слейв модбас----------------//</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> #include &quot;modbus.h&quot;</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"> MODBUS_FirstInit(&amp;hmodbus1, &amp;huart1, &amp;htim3);</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> MODBUS_Config(&amp;hmodbus1, MODBUS_DEVICE_ID, MODBUS_TIMEOUT, MODBUS_MODE_SLAVE);</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"> MODBUS_SlaveStart(&amp;hmodbus1, NULL);</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> @endcode</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> @code</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"> #include &quot;modbus.h&quot;</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"></span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> MODBUS_FirstInit(&amp;hmodbus1, &amp;huart1, &amp;htim3);</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> MODBUS_Config(&amp;hmodbus1, 0, MODBUS_TIMEOUT, MODBUS_MODE_MASTER);</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> // Запрос на 1 ID, считать холдинг регистры с 0 адреса 10 штук</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> RS_MsgTypeDef msg = MB_REQUEST_READ_HOLDING_REGS(1, 0, 10);</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> MODBUS_MasterRequest(&amp;hmodbus1, &amp;msg, &amp;callback_func);</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"> void callback_func(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg) </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"> // MB_RespGet_... Чтобы достать нужные данные из ответа</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> if(hmodbus-&gt;RS_STATUS == RS_OK)</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"> for(int addr = MODBUS_MSG.Addr; addr &lt; MODBUS_MSG.Addr + MODBUS_MSG.Qnt; addr++)</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"> uint16_t value;</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment"> if(MB_RespGet_RegisterValue(&amp;MODBUS_MSG, addr, &amp;value))</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"> read_hold[i] = value;</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"> }</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><span class="comment"> @endcode</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">@section modules Подключаемые модули:</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">- rs_message.h - работа с uart</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment">- modbus_core.h - базовые определения</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">- modbus_coils.h - работа с дискретными выходами</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">- modbus_holdregs.h - работа с регистрами хранения </span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment">- modbus_inputregs.h - работа с входными регистрами</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">- modbus_devid.h - идентификация устройства</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment">- modbus_diag.h - диагностика modbus</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"></span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">@section data Структура данных Modbus</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">#### Holding/Input Registers:</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">- Регистры — 16-битные слова. Доступ к регистрам осуществляется через указатель. </span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">Таким образом, сами регистры могут представлять собой как массив так и структуру.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"></span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment">#### Coils:</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment">- Coils — это биты, упакованные в 16-битные слова. Доступ к коилам осуществляется через указатель. </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> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="preprocessor">#ifndef __MODBUS_H_</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="preprocessor">#define __MODBUS_H_</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="preprocessor">#include &quot;<a class="code" href="rs__message_8h.html">rs_message.h</a>&quot;</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="preprocessor">#ifdef MODBUS_ENABLE_MASTER</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__master_8h.html">modbus_master.h</a>&quot;</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="preprocessor">#ifdef MODBUS_ENABLE_SLAVE</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__slave_8h.html">modbus_slave.h</a>&quot;</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor">#ifdef MODBUS_ENABLE_COILS</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__coils_8h.html">modbus_coils.h</a>&quot;</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="preprocessor">#ifdef MODBUS_ENABLE_HOLDINGS</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__holdregs_8h.html">modbus_holdregs.h</a>&quot;</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#ifdef MODBUS_ENABLE_INPUTS</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__inputregs_8h.html">modbus_inputregs.h</a>&quot;</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#ifdef MODBUS_ENABLE_DEVICE_IDENTIFICATIONS</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__devid_8h.html">modbus_devid.h</a>&quot;</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor">#ifdef MODBUS_ENABLE_DIAGNOSTICS</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__diag_8h.html">modbus_diag.h</a>&quot;</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor">#ifdef MODBUS_ENABLE_MASTER</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gad91eec9c3350f2705f1bbe1856cb0159"> 113</a></span><span class="preprocessor">#define MODBUS_MODE_MASTER 1 </span><span class="comment">///&lt; Псевдо-enum: Режим мастер</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor">#endif</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="preprocessor">#ifdef MODBUS_ENABLE_SLAVE</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#gac0b3749af91f1007fd0291157b66b305"> 117</a></span><span class="preprocessor">#define MODBUS_MODE_SLAVE 0 </span><span class="comment">///&lt; Псевдо-enum: Режим слейв</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#endif</span></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">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/////////////////////////---FUNCTIONS---/////////////////////////////</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> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">//----------------FUNCTIONS FOR USER----------------</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>HAL_StatusTypeDef <a class="code hl_function" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">MODBUS_FirstInit</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim);</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>HAL_StatusTypeDef <a class="code hl_function" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">MODBUS_Config</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, uint8_t ID, uint16_t Timeout, uint8_t master);</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>HAL_StatusTypeDef <a class="code hl_function" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">MODBUS_SlaveStart</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment">/* Реквест мастера модбас */</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>HAL_StatusTypeDef <a class="code hl_function" href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">MODBUS_MasterRequest</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, <span class="keywordtype">void</span> (*pClbk)(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a>*, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>*));</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"></span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">/////////////////////////---FUNCTIONS---/////////////////////////////</span></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">#endif </span><span class="comment">//__MODBUS_H_</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">/** MODBUS_FUNCTIONS</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> </div>
<div class="ttc" id="agroup___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s_html_ga19090cabfba2345391e37398125a2f55"><div class="ttname"><a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga19090cabfba2345391e37398125a2f55">MODBUS_MasterRequest</a></div><div class="ttdeci">HAL_StatusTypeDef MODBUS_MasterRequest(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, void(*pClbk)(RS_HandleTypeDef *, RS_MsgTypeDef *))</div><div class="ttdoc">Реквест мастера модбас.</div><div class="ttdef"><b>Definition</b> <a href="modbus_8c_source.html#l00136">modbus.c:136</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s_html_ga460466907693a256487d31f09b16edfe"><div class="ttname"><a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga460466907693a256487d31f09b16edfe">MODBUS_Config</a></div><div class="ttdeci">HAL_StatusTypeDef MODBUS_Config(RS_HandleTypeDef *hmodbus, uint8_t ID, uint16_t Timeout, uint8_t master)</div><div class="ttdoc">Программная конфигурация модбас.</div><div class="ttdef"><b>Definition</b> <a href="modbus_8c_source.html#l00072">modbus.c:72</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s_html_ga9a17402983188566254b7096342ba69e"><div class="ttname"><a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9a17402983188566254b7096342ba69e">MODBUS_SlaveStart</a></div><div class="ttdeci">HAL_StatusTypeDef MODBUS_SlaveStart(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg)</div><div class="ttdoc">Запуск слейв модбас.</div><div class="ttdef"><b>Definition</b> <a href="modbus_8c_source.html#l00105">modbus.c:105</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s_html_ga9e787c3454aab3293dec6e6795f687f5"><div class="ttname"><a href="group___m_o_d_b_u_s___f_u_n_c_t_i_o_n_s.html#ga9e787c3454aab3293dec6e6795f687f5">MODBUS_FirstInit</a></div><div class="ttdeci">HAL_StatusTypeDef MODBUS_FirstInit(RS_HandleTypeDef *hmodbus, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim)</div><div class="ttdoc">Инициализация периферии модбас.</div><div class="ttdef"><b>Definition</b> <a href="modbus_8c_source.html#l00042">modbus.c:42</a></div></div>
<div class="ttc" id="amodbus__coils_8h_html"><div class="ttname"><a href="modbus__coils_8h.html">modbus_coils.h</a></div><div class="ttdoc">Работа с коилами Modbus.</div></div>
<div class="ttc" id="amodbus__devid_8h_html"><div class="ttname"><a href="modbus__devid_8h.html">modbus_devid.h</a></div><div class="ttdoc">Идентификаторы устройства Modbus.</div></div>
<div class="ttc" id="amodbus__diag_8h_html"><div class="ttname"><a href="modbus__diag_8h.html">modbus_diag.h</a></div><div class="ttdoc">Диагностика устройства Modbus.</div></div>
<div class="ttc" id="amodbus__holdregs_8h_html"><div class="ttname"><a href="modbus__holdregs_8h.html">modbus_holdregs.h</a></div><div class="ttdoc">Работа с регистрами хранения Modbus.</div></div>
<div class="ttc" id="amodbus__inputregs_8h_html"><div class="ttname"><a href="modbus__inputregs_8h.html">modbus_inputregs.h</a></div><div class="ttdoc">Работа с входными регистрами Modbus.</div></div>
<div class="ttc" id="amodbus__master_8h_html"><div class="ttname"><a href="modbus__master_8h.html">modbus_master.h</a></div><div class="ttdoc">Главный заголовочный файл Modbus библиотеки</div></div>
<div class="ttc" id="amodbus__slave_8h_html"><div class="ttname"><a href="modbus__slave_8h.html">modbus_slave.h</a></div><div class="ttdoc">Главный заголовочный файл Modbus библиотеки</div></div>
<div class="ttc" id="ars__message_8h_html"><div class="ttname"><a href="rs__message_8h.html">rs_message.h</a></div><div class="ttdoc">Библиотека обмена сообщениями по RS-интерфейсу</div></div>
<div class="ttc" id="astruct_r_s___handle_type_def_html"><div class="ttname"><a href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a></div><div class="ttdoc">Handle for RS communication.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00227">rs_message.h:228</a></div></div>
<div class="ttc" id="astruct_r_s___msg_type_def_html"><div class="ttname"><a href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a></div><div class="ttdoc">Structure for modbus messsage.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00176">modbus_core.h:177</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="modbus_8h.html">modbus.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>