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

246 lines
24 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/rs_message.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">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('rs__message_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">rs_message.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Реализация протоколов обмена по RS/UART.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="rs__message_8h_source.html">rs_message.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="modbus__diag_8h_source.html">modbus_diag.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 rs_message.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="rs__message_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2rs__message_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2rs__message_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2rs__message_8c">
<area shape="rect" title="Реализация протоколов обмена по RS/UART." alt="" coords="144,5,326,64"/>
<area shape="rect" href="rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="118,112,221,139"/>
<area shape="poly" title=" " alt="" coords="216,66,190,101,186,98,212,63"/>
<area shape="rect" href="modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="246,112,355,139"/>
<area shape="poly" title=" " alt="" coords="258,63,284,98,280,101,254,66"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="180,187,290,213"/>
<area shape="poly" title=" " alt="" coords="183,137,216,173,212,177,179,141"/>
<area shape="rect" href="modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="5,336,126,363"/>
<area shape="poly" title=" " alt="" coords="179,205,145,210,109,221,77,238,50,263,45,276,44,291,53,321,48,323,39,292,39,275,46,260,73,233,107,216,144,205,179,200"/>
<area shape="rect" href="modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="180,261,290,288"/>
<area shape="poly" title=" " alt="" coords="238,214,238,246,232,246,232,214"/>
<area shape="rect" href="____crc__algs_8h_source.html" title=" " alt="" coords="60,261,156,288"/>
<area shape="poly" title=" " alt="" coords="214,216,145,256,142,251,211,212"/>
<area shape="rect" href="____modbus__compat_8h.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="314,261,457,288"/>
<area shape="poly" title=" " alt="" coords="255,211,339,252,337,257,253,216"/>
<area shape="rect" title=" " alt="" coords="7,411,124,437"/>
<area shape="poly" title=" " alt="" coords="68,363,68,395,63,395,63,363"/>
<area shape="rect" title=" " alt="" coords="203,336,267,363"/>
<area shape="poly" title=" " alt="" coords="238,289,238,320,232,320,232,289"/>
<area shape="poly" title=" " alt="" coords="103,290,83,324,78,321,98,287"/>
<area shape="poly" title=" " alt="" coords="365,263,281,222,283,218,367,258"/>
<area shape="poly" title=" " alt="" coords="291,141,258,177,254,173,287,137"/>
</map>
</div>
</div>
<p><a href="rs__message_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:a7aef1f003a519a1ab1cc2b299dfbae8e" id="r_a7aef1f003a519a1ab1cc2b299dfbae8e"><td class="memItemLeft" align="right" valign="top"><a id="a7aef1f003a519a1ab1cc2b299dfbae8e" name="a7aef1f003a519a1ab1cc2b299dfbae8e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RS_UART_Init</b> (void)</td></tr>
<tr class="memitem:ad17df6584058c63f612a9b5b2de73086" id="r_ad17df6584058c63f612a9b5b2de73086"><td class="memItemLeft" align="right" valign="top"><a id="ad17df6584058c63f612a9b5b2de73086" name="ad17df6584058c63f612a9b5b2de73086"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RS_UART_DeInit</b> (UART_HandleTypeDef *huart)</td></tr>
<tr class="memitem:a1d002578a8cb8aa681a229a9c80f7d62" id="r_a1d002578a8cb8aa681a229a9c80f7d62"><td class="memItemLeft" align="right" valign="top"><a id="a1d002578a8cb8aa681a229a9c80f7d62" name="a1d002578a8cb8aa681a229a9c80f7d62"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RS_TIM_Init</b> (void)</td></tr>
<tr class="memitem:aa11084c6fef53422474ef910c38e7732" id="r_aa11084c6fef53422474ef910c38e7732"><td class="memItemLeft" align="right" valign="top"><a id="aa11084c6fef53422474ef910c38e7732" name="aa11084c6fef53422474ef910c38e7732"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RS_TIM_DeInit</b> (TIM_HandleTypeDef *htim)</td></tr>
<tr class="memitem:ga1b59697f4b7fad81f9d5fd9fffebac2f" id="r_ga1b59697f4b7fad81f9d5fd9fffebac2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">RS_Receive_IT</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</td></tr>
<tr class="memdesc:ga1b59697f4b7fad81f9d5fd9fffebac2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Начать прием по прерываниям. <br /></td></tr>
<tr class="memitem:ga2e69a97a8b6e0b5855116d88c0e17cb9" id="r_ga2e69a97a8b6e0b5855116d88c0e17cb9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">RS_Transmit_IT</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</td></tr>
<tr class="memdesc:ga2e69a97a8b6e0b5855116d88c0e17cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Начать передачу по прерываниям. <br /></td></tr>
<tr class="memitem:gaa261bb0d37e7f18f04fb4353aa0f5c45" id="r_gaa261bb0d37e7f18f04fb4353aa0f5c45"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">RS_Init</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr)</td></tr>
<tr class="memdesc:gaa261bb0d37e7f18f04fb4353aa0f5c45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Инициалазация структуры <a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a>. <br /></td></tr>
<tr class="memitem:ga1ffe808b3640f253b1783295d6990962" id="r_ga1ffe808b3640f253b1783295d6990962"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc">RS_AbortTypeDef</a> AbortMode)</td></tr>
<tr class="memdesc:ga1ffe808b3640f253b1783295d6990962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Отменить прием/передачу RS/UART. <br /></td></tr>
<tr class="memitem:gab43a3b93c85adee5e3c561922d7ea2ef" id="r_gab43a3b93c85adee5e3c561922d7ea2ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</td></tr>
<tr class="memdesc:gab43a3b93c85adee5e3c561922d7ea2ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработчик для начала приема. <br /></td></tr>
<tr class="memitem:ga330f6cfcdaab1f239054c0d91be3c5bc" id="r_ga330f6cfcdaab1f239054c0d91be3c5bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">RS_Handle_Transmit_Start</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</td></tr>
<tr class="memdesc:ga330f6cfcdaab1f239054c0d91be3c5bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработчик для начала передачи. <br /></td></tr>
<tr class="memitem:ga7180b913ba795c07637680982d7f45ac" id="r_ga7180b913ba795c07637680982d7f45ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">RS_UART_TxCpltCallback</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:ga7180b913ba795c07637680982d7f45ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART TX Callback: коллбек после окончания передачи. <br /></td></tr>
<tr class="memitem:gab27567456df0329130c7fe4fc43c6ee1" id="r_gab27567456df0329130c7fe4fc43c6ee1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">RS_UART_Handler</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:gab27567456df0329130c7fe4fc43c6ee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработчик прерывания UART. <br /></td></tr>
<tr class="memitem:ga2d356b2a0b4af43460bb2cacb81779ce" id="r_ga2d356b2a0b4af43460bb2cacb81779ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">RS_TIM_Handler</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:ga2d356b2a0b4af43460bb2cacb81779ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обработчик прерывания TIM. <br /></td></tr>
<tr class="memitem:gac3a7bbc060a4250c160d51f0a0ca6cf8" id="r_gac3a7bbc060a4250c160d51f0a0ca6cf8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">RS_Timeout_Start</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:gac3a7bbc060a4250c160d51f0a0ca6cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Запуск таймаута приема. <br /></td></tr>
<tr class="memitem:ga1de0a597d043b64d0a19bc393cc1b3fd" id="r_ga1de0a597d043b64d0a19bc393cc1b3fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">RS_Timeout_Stop</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:ga1de0a597d043b64d0a19bc393cc1b3fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Остановка таймаута приема. <br /></td></tr>
<tr class="memitem:gad3d2e8fb9c2879e1ddb967cff6124521" id="r_gad3d2e8fb9c2879e1ddb967cff6124521"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">RS_Timeout_Update</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</td></tr>
<tr class="memdesc:gad3d2e8fb9c2879e1ddb967cff6124521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Обновление (сброс) таймаута приема. <br /></td></tr>
<tr class="memitem:ga8b7bcc84cb8192a58fe87b662fbd9690" id="r_ga8b7bcc84cb8192a58fe87b662fbd9690"><td class="memItemLeft" align="right" valign="top">__weak <a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">RS_Response</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</td></tr>
<tr class="memdesc:ga8b7bcc84cb8192a58fe87b662fbd9690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Пользовательская функция для ответа на запрос по UART. <br /></td></tr>
<tr class="memitem:ga1cd98c55f6f359e3ab93d0f9cf912ab5" id="r_ga1cd98c55f6f359e3ab93d0f9cf912ab5"><td class="memItemLeft" align="right" valign="top">__weak <a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">RS_Collect_Message</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg, uint8_t *msg_uart_buff)</td></tr>
<tr class="memdesc:ga1cd98c55f6f359e3ab93d0f9cf912ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Пользовательская функция для сбора сообщения в буфер UART. <br /></td></tr>
<tr class="memitem:ga3500b3fa91d05a94cf8da5cc5ce338f5" id="r_ga3500b3fa91d05a94cf8da5cc5ce338f5"><td class="memItemLeft" align="right" valign="top">__weak <a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">RS_Parse_Message</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg, uint8_t *msg_uart_buff)</td></tr>
<tr class="memdesc:ga3500b3fa91d05a94cf8da5cc5ce338f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Пользовательская функция для парса сообщения из буфера UART. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-var-members" class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ac20049ae5804e70b5aadeed2819be007" id="r_ac20049ae5804e70b5aadeed2819be007"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac20049ae5804e70b5aadeed2819be007">RS_Buffer</a> [<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">MSG_SIZE_MAX</a>]</td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Реализация протоколов обмена по RS/UART. </p>
<p>Модуль реализует асинхронный обмен сообщениями через UART с использованием:</p><ul>
<li>Прерываний по приему/передаче</li>
<li>Детектирования конца фрейма по IDLE линии</li>
<li>Таймаутов через таймер</li>
<li>Двухстадийного приема (заголовок + данные)</li>
</ul>
<h1 class="doxsection"><a class="anchor" id="arch"></a>
Архитектура:</h1>
<p>В режиме слейв:</p><ul>
<li>Инициализация приема с сообщения с максимальным размером MSG_SIZE_MAX</li>
<li>При срабатывании прерывания IDLE - обработка полученного сообщения В режиме мастер (пока не реализовано):</li>
<li>Отправка запроса и переход в режим приема сообщения с максимальным размером MSG_SIZE_MAX</li>
<li>При срабатывании прерывания IDLE - обработка полученного ответа</li>
</ul>
<h1 class="doxsection"><a class="anchor" id="ithandler"></a>
Необходимые обработчики:</h1>
<ul>
<li><a class="el" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1" title="Обработчик прерывания UART.">RS_UART_Handler()</a> в UARTx_IRQHandler вместо HAL_UART_IRQHandler()</li>
<li><a class="el" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce" title="Обработчик прерывания TIM.">RS_TIM_Handler()</a> в TIMx_IRQHandler вместо HAL_TIM_IRQHandler() </li>
</ul>
<p class="definition">Definition in file <a class="el" href="rs__message_8c_source.html">rs_message.c</a>.</p>
</div><a name="doc-var-members" id="doc-var-members"></a><h2 id="header-doc-var-members" class="groupheader">Variable Documentation</h2>
<a id="ac20049ae5804e70b5aadeed2819be007" name="ac20049ae5804e70b5aadeed2819be007"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac20049ae5804e70b5aadeed2819be007">&#9670;&#160;</a></span>RS_Buffer</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t RS_Buffer[<a class="el" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">MSG_SIZE_MAX</a>]</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="rs__message_8c_source.html#l00028">28</a> of file <a class="el" href="rs__message_8c_source.html">rs_message.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="rs__message_8c.html">rs_message.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>