MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00025.html

1187 lines
78 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: UART_Adapter</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>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.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 style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</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">
$(document).ready(function(){initNavTree('a00025.html','');});
</script>
<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)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">UART_Adapter</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00338"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a00338">_hal_uart_config</a></td></tr>
<tr class="memdesc:a00338"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART configuration structure. <a href="a00025.html#a00338">More...</a><br/></td></tr>
<tr class="separator:a00338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00339"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a00339">_hal_uart_transfer</a></td></tr>
<tr class="memdesc:a00339"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART transfer structure. <a href="a00025.html#a00339">More...</a><br/></td></tr>
<tr class="separator:a00339"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1e416e28a4597d2c7bb899dd77f03035"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1e416e28a4597d2c7bb899dd77f03035"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga1e416e28a4597d2c7bb899dd77f03035">UART_ADAPTER_NON_BLOCKING_MODE</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga1e416e28a4597d2c7bb899dd77f03035"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable UART adapter non-blocking mode (1 - enable, 0 - disable) <br/></td></tr>
<tr class="separator:ga1e416e28a4597d2c7bb899dd77f03035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga056e95fa5fd6c4683bd49209b5c83782"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056e95fa5fd6c4683bd49209b5c83782"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga056e95fa5fd6c4683bd49209b5c83782">HAL_UART_ADAPTER_FIFO</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga056e95fa5fd6c4683bd49209b5c83782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable uart hardware FIFO mode (1 - enable, 0 - disable) <br/></td></tr>
<tr class="separator:ga056e95fa5fd6c4683bd49209b5c83782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f1ea14fcf0df4b2db9d18feeba7fc1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6f1ea14fcf0df4b2db9d18feeba7fc1f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga6f1ea14fcf0df4b2db9d18feeba7fc1f">HAL_UART_DMA_INIT_ENABLE</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga6f1ea14fcf0df4b2db9d18feeba7fc1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable uart DMA adapter int mode (1 - enable, 0 - disable) <br/></td></tr>
<tr class="separator:ga6f1ea14fcf0df4b2db9d18feeba7fc1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65f0632e17011f650821a3432516b121"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga65f0632e17011f650821a3432516b121">HAL_UART_DMA_IDLELINE_TIMEOUT</a>&#160;&#160;&#160;(1U)</td></tr>
<tr class="memdesc:ga65f0632e17011f650821a3432516b121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of uart dma adapter software idleline detection timeout value in ms. <a href="#ga65f0632e17011f650821a3432516b121">More...</a><br/></td></tr>
<tr class="separator:ga65f0632e17011f650821a3432516b121"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf29d1da1f03c0e201cc643164d6cebd2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gaf29d1da1f03c0e201cc643164d6cebd2">HAL_UART_HANDLE_SIZE</a>&#160;&#160;&#160;(92U + HAL_UART_ADAPTER_LOWPOWER * 16U + HAL_UART_DMA_ENABLE * 4U)</td></tr>
<tr class="memdesc:gaf29d1da1f03c0e201cc643164d6cebd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of uart adapter handle size. <a href="#gaf29d1da1f03c0e201cc643164d6cebd2">More...</a><br/></td></tr>
<tr class="separator:gaf29d1da1f03c0e201cc643164d6cebd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec964c39538bce11685bb9a77e1bc67a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gaec964c39538bce11685bb9a77e1bc67a">UART_HANDLE_DEFINE</a>(name)&#160;&#160;&#160;uint32_t name[((<a class="el" href="a00025.html#gaf29d1da1f03c0e201cc643164d6cebd2">HAL_UART_HANDLE_SIZE</a> + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]</td></tr>
<tr class="memdesc:gaec964c39538bce11685bb9a77e1bc67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of uart dma adapter handle size. <a href="#gaec964c39538bce11685bb9a77e1bc67a">More...</a><br/></td></tr>
<tr class="separator:gaec964c39538bce11685bb9a77e1bc67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16a70d80d91c156451608862bb0f3d69"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga16a70d80d91c156451608862bb0f3d69">HAL_UART_TRANSFER_MODE</a>&#160;&#160;&#160;(0U)</td></tr>
<tr class="memdesc:ga16a70d80d91c156451608862bb0f3d69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether enable transactional function of the UART. <a href="#ga16a70d80d91c156451608862bb0f3d69">More...</a><br/></td></tr>
<tr class="separator:ga16a70d80d91c156451608862bb0f3d69"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gae4e2bad20cdbd350adfa29a03102a2dc"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a></td></tr>
<tr class="memdesc:gae4e2bad20cdbd350adfa29a03102a2dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The handle of uart adapter. <a href="#gae4e2bad20cdbd350adfa29a03102a2dc">More...</a><br/></td></tr>
<tr class="separator:gae4e2bad20cdbd350adfa29a03102a2dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaada11b3f0c0eb00c9845dc01ab9afea9"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gaada11b3f0c0eb00c9845dc01ab9afea9">hal_uart_dma_handle_t</a></td></tr>
<tr class="memdesc:gaada11b3f0c0eb00c9845dc01ab9afea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The handle of uart dma adapter. <a href="#gaada11b3f0c0eb00c9845dc01ab9afea9">More...</a><br/></td></tr>
<tr class="separator:gaada11b3f0c0eb00c9845dc01ab9afea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga352ee9bdc398eba4262ca7656f9c5e50"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga352ee9bdc398eba4262ca7656f9c5e50"></a>
typedef enum <a class="el" href="a00025.html#gaaaffa428b5b9f79a5e510eb34c74f8f6">_hal_uart_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a></td></tr>
<tr class="memdesc:ga352ee9bdc398eba4262ca7656f9c5e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART status. <br/></td></tr>
<tr class="separator:ga352ee9bdc398eba4262ca7656f9c5e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24029165f252c4fe925cdb8af52b3b8f"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="a00025.html#ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3">_hal_uart_parity_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga24029165f252c4fe925cdb8af52b3b8f">hal_uart_parity_mode_t</a></td></tr>
<tr class="memdesc:ga24029165f252c4fe925cdb8af52b3b8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART parity mode. <a href="#ga24029165f252c4fe925cdb8af52b3b8f">More...</a><br/></td></tr>
<tr class="separator:ga24029165f252c4fe925cdb8af52b3b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0fc800e49978f5aee5c162009b16bdb"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/>
<a class="el" href="a00025.html#gac8e83321127267d2bed1659d4227f050">_hal_uart_stop_bit_count</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gad0fc800e49978f5aee5c162009b16bdb">hal_uart_stop_bit_count_t</a></td></tr>
<tr class="memdesc:gad0fc800e49978f5aee5c162009b16bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART stop bit count. <a href="#gad0fc800e49978f5aee5c162009b16bdb">More...</a><br/></td></tr>
<tr class="separator:gad0fc800e49978f5aee5c162009b16bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1545cbd3c961cbe725ed2a75ffc5a999"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00025.html#a00338">_hal_uart_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga1545cbd3c961cbe725ed2a75ffc5a999">hal_uart_config_t</a></td></tr>
<tr class="memdesc:ga1545cbd3c961cbe725ed2a75ffc5a999"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART configuration structure. <a href="#ga1545cbd3c961cbe725ed2a75ffc5a999">More...</a><br/></td></tr>
<tr class="separator:ga1545cbd3c961cbe725ed2a75ffc5a999"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga465cf4da9359face10f612a6efa72ff0"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga465cf4da9359face10f612a6efa72ff0">hal_uart_transfer_callback_t</a> )(<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, <a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> status, void *callbackParam)</td></tr>
<tr class="memdesc:ga465cf4da9359face10f612a6efa72ff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART transfer callback function. <a href="#ga465cf4da9359face10f612a6efa72ff0">More...</a><br/></td></tr>
<tr class="separator:ga465cf4da9359face10f612a6efa72ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae828850e160c8cac564844089431e46e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00025.html#a00339">_hal_uart_transfer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gae828850e160c8cac564844089431e46e">hal_uart_transfer_t</a></td></tr>
<tr class="memdesc:gae828850e160c8cac564844089431e46e"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART transfer structure. <a href="#gae828850e160c8cac564844089431e46e">More...</a><br/></td></tr>
<tr class="separator:gae828850e160c8cac564844089431e46e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaaaffa428b5b9f79a5e510eb34c74f8f6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gaaaffa428b5b9f79a5e510eb34c74f8f6">_hal_uart_status</a> { <br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6ace53957d3570fb00454fdd51484e8a4b">kStatus_HAL_UartSuccess</a> = kStatus_Success,
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6aef9c1d027988265c69aef95219493bf6">kStatus_HAL_UartTxBusy</a> = MAKE_STATUS(kStatusGroup_HAL_UART, 1),
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a58742a06efe6f0a686c82d1bbf1347e4">kStatus_HAL_UartRxBusy</a> = MAKE_STATUS(kStatusGroup_HAL_UART, 2),
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a191f28681f86e8a374711e455949fa3d">kStatus_HAL_UartTxIdle</a> = MAKE_STATUS(kStatusGroup_HAL_UART, 3),
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6acd7b1ae53a0bcb77d67cc66701c3c7f5">kStatus_HAL_UartRxIdle</a> = MAKE_STATUS(kStatusGroup_HAL_UART, 4),
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a56abdea917d92b3a62fb1ee09bfc416f">kStatus_HAL_UartBaudrateNotSupport</a>,
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a4dad70c2171b2445de1224d65645164e">kStatus_HAL_UartProtocolError</a>,
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a3e539021cfde4b3468c00de4f834e84e">kStatus_HAL_UartError</a> = MAKE_STATUS(kStatusGroup_HAL_UART, 7)
<br/>
}</td></tr>
<tr class="memdesc:gaaaffa428b5b9f79a5e510eb34c74f8f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART status. <a href="a00025.html#gaaaffa428b5b9f79a5e510eb34c74f8f6">More...</a><br/></td></tr>
<tr class="separator:gaaaffa428b5b9f79a5e510eb34c74f8f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3">_hal_uart_parity_mode</a> { <br/>
&#160;&#160;<a class="el" href="a00025.html#gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3a08fcd92b9342a589174cb30bc87c8536">kHAL_UartParityDisabled</a> = 0x0U,
<br/>
&#160;&#160;<a class="el" href="a00025.html#gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3ad5aa4e9333286303c2aacaf0720d0393">kHAL_UartParityEven</a> = 0x2U,
<br/>
&#160;&#160;<a class="el" href="a00025.html#gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3abf5f4cdb5e90b0fc1c3e079d305cb90d">kHAL_UartParityOdd</a> = 0x3U
<br/>
}</td></tr>
<tr class="memdesc:ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART parity mode. <a href="a00025.html#ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3">More...</a><br/></td></tr>
<tr class="separator:ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8e83321127267d2bed1659d4227f050"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gac8e83321127267d2bed1659d4227f050">_hal_uart_stop_bit_count</a> { <br/>
&#160;&#160;<a class="el" href="a00025.html#ggac8e83321127267d2bed1659d4227f050a34f5d0e676eead962173aa956b850476">kHAL_UartOneStopBit</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00025.html#ggac8e83321127267d2bed1659d4227f050ab4bec3351a5a5818347a899989cd65e4">kHAL_UartTwoStopBit</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:gac8e83321127267d2bed1659d4227f050"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART stop bit count. <a href="a00025.html#gac8e83321127267d2bed1659d4227f050">More...</a><br/></td></tr>
<tr class="separator:gac8e83321127267d2bed1659d4227f050"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gabbb5549df83873ae3cfc59a8cbcd1712"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gabbb5549df83873ae3cfc59a8cbcd1712">HAL_UartEnterLowpower</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:gabbb5549df83873ae3cfc59a8cbcd1712"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares to enter low power consumption. <a href="#gabbb5549df83873ae3cfc59a8cbcd1712">More...</a><br/></td></tr>
<tr class="separator:gabbb5549df83873ae3cfc59a8cbcd1712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7399f84407e69805b4d603bc385adb81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga7399f84407e69805b4d603bc385adb81">HAL_UartExitLowpower</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga7399f84407e69805b4d603bc385adb81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores from low power consumption. <a href="#ga7399f84407e69805b4d603bc385adb81">More...</a><br/></td></tr>
<tr class="separator:ga7399f84407e69805b4d603bc385adb81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab75136e7430067097980dd89e0838b71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gab75136e7430067097980dd89e0838b71">HAL_UartIsrFunction</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:gab75136e7430067097980dd89e0838b71"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART IRQ handle function. <a href="#gab75136e7430067097980dd89e0838b71">More...</a><br/></td></tr>
<tr class="separator:gab75136e7430067097980dd89e0838b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:ga94fb66eff085a5f4f48223f3fb51ee73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga94fb66eff085a5f4f48223f3fb51ee73">HAL_UartInit</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, const <a class="el" href="a00025.html#ga1545cbd3c961cbe725ed2a75ffc5a999">hal_uart_config_t</a> *uart_config)</td></tr>
<tr class="memdesc:ga94fb66eff085a5f4f48223f3fb51ee73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a UART instance with the UART handle and the user configuration structure. <a href="#ga94fb66eff085a5f4f48223f3fb51ee73">More...</a><br/></td></tr>
<tr class="separator:ga94fb66eff085a5f4f48223f3fb51ee73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab68259998677f787072799042ed0ce34"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gab68259998677f787072799042ed0ce34">HAL_UartDeinit</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:gab68259998677f787072799042ed0ce34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes a UART instance. <a href="#gab68259998677f787072799042ed0ce34">More...</a><br/></td></tr>
<tr class="separator:gab68259998677f787072799042ed0ce34"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Blocking bus Operations</h2></td></tr>
<tr class="memitem:ga652499fca5739b0d61df775e371279bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga652499fca5739b0d61df775e371279bb">HAL_UartReceiveBlocking</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga652499fca5739b0d61df775e371279bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads RX data register using a blocking method. <a href="#ga652499fca5739b0d61df775e371279bb">More...</a><br/></td></tr>
<tr class="separator:ga652499fca5739b0d61df775e371279bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7104925b7bff899a7631c5ee708dc5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gae7104925b7bff899a7631c5ee708dc5c">HAL_UartSendBlocking</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, const uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:gae7104925b7bff899a7631c5ee708dc5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to the TX register using a blocking method. <a href="#gae7104925b7bff899a7631c5ee708dc5c">More...</a><br/></td></tr>
<tr class="separator:gae7104925b7bff899a7631c5ee708dc5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Functional API with non-blocking mode.</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp06a2adc37f5d03acf0e94b69f62ae181"></a></p>
<dl class="section note"><dt>Note</dt><dd>The functional API and the transactional API cannot be used at the same time. The macro <a class="el" href="a00025.html#ga16a70d80d91c156451608862bb0f3d69" title="Whether enable transactional function of the UART. ">HAL_UART_TRANSFER_MODE</a> is used to set which one will be used. If <a class="el" href="a00025.html#ga16a70d80d91c156451608862bb0f3d69" title="Whether enable transactional function of the UART. ">HAL_UART_TRANSFER_MODE</a> is zero, the functional API with non-blocking mode will be used. Otherwise, transactional API will be used. </dd></dl>
</td></tr>
<tr class="memitem:gae9d70dd0b175d45cc9212332af883542"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#gae9d70dd0b175d45cc9212332af883542">HAL_UartInstallCallback</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, <a class="el" href="a00025.html#ga465cf4da9359face10f612a6efa72ff0">hal_uart_transfer_callback_t</a> callback, void *callbackParam)</td></tr>
<tr class="memdesc:gae9d70dd0b175d45cc9212332af883542"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a callback and callback parameter. <a href="#gae9d70dd0b175d45cc9212332af883542">More...</a><br/></td></tr>
<tr class="separator:gae9d70dd0b175d45cc9212332af883542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a273311aeb550c6dfa176fa0b919e56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga9a273311aeb550c6dfa176fa0b919e56">HAL_UartReceiveNonBlocking</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga9a273311aeb550c6dfa176fa0b919e56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives a buffer of data using an interrupt method. <a href="#ga9a273311aeb550c6dfa176fa0b919e56">More...</a><br/></td></tr>
<tr class="separator:ga9a273311aeb550c6dfa176fa0b919e56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a0cf1c9898f255bcbeb7c9a0e3c420c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga5a0cf1c9898f255bcbeb7c9a0e3c420c">HAL_UartSendNonBlocking</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga5a0cf1c9898f255bcbeb7c9a0e3c420c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits a buffer of data using the interrupt method. <a href="#ga5a0cf1c9898f255bcbeb7c9a0e3c420c">More...</a><br/></td></tr>
<tr class="separator:ga5a0cf1c9898f255bcbeb7c9a0e3c420c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2adbcfd9f3623668961a6b28eda251f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga2adbcfd9f3623668961a6b28eda251f8">HAL_UartGetReceiveCount</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, uint32_t *reCount)</td></tr>
<tr class="memdesc:ga2adbcfd9f3623668961a6b28eda251f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of bytes that have been received. <a href="#ga2adbcfd9f3623668961a6b28eda251f8">More...</a><br/></td></tr>
<tr class="separator:ga2adbcfd9f3623668961a6b28eda251f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1796607fb65e2a29aafa9aa67a3ee12a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga1796607fb65e2a29aafa9aa67a3ee12a">HAL_UartGetSendCount</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, uint32_t *seCount)</td></tr>
<tr class="memdesc:ga1796607fb65e2a29aafa9aa67a3ee12a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the number of bytes written to the UART TX register. <a href="#ga1796607fb65e2a29aafa9aa67a3ee12a">More...</a><br/></td></tr>
<tr class="separator:ga1796607fb65e2a29aafa9aa67a3ee12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a34b73dc663ff0e93d7b316ffa021d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga3a34b73dc663ff0e93d7b316ffa021d4">HAL_UartAbortReceive</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga3a34b73dc663ff0e93d7b316ffa021d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the interrupt-driven data receiving. <a href="#ga3a34b73dc663ff0e93d7b316ffa021d4">More...</a><br/></td></tr>
<tr class="separator:ga3a34b73dc663ff0e93d7b316ffa021d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5024669b09b79eb9fcfbde894d072fef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#ga5024669b09b79eb9fcfbde894d072fef">HAL_UartAbortSend</a> (<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle)</td></tr>
<tr class="memdesc:ga5024669b09b79eb9fcfbde894d072fef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the interrupt-driven data sending. <a href="#ga5024669b09b79eb9fcfbde894d072fef">More...</a><br/></td></tr>
<tr class="separator:ga5024669b09b79eb9fcfbde894d072fef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00338" id="a00338"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_uart_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a61a6c278fe13742de953f009fc6fea48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61a6c278fe13742de953f009fc6fea48"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a61a6c278fe13742de953f009fc6fea48">srcClock_Hz</a></td></tr>
<tr class="memdesc:a61a6c278fe13742de953f009fc6fea48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source clock. <br/></td></tr>
<tr class="separator:a61a6c278fe13742de953f009fc6fea48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a025079f248c8caa954a7d17658564c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a025079f248c8caa954a7d17658564c"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a7a025079f248c8caa954a7d17658564c">baudRate_Bps</a></td></tr>
<tr class="memdesc:a7a025079f248c8caa954a7d17658564c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Baud rate. <br/></td></tr>
<tr class="separator:a7a025079f248c8caa954a7d17658564c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a842eae1042af35eb9a63682866741cd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a842eae1042af35eb9a63682866741cd4"></a>
<a class="el" href="a00025.html#ga24029165f252c4fe925cdb8af52b3b8f">hal_uart_parity_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a842eae1042af35eb9a63682866741cd4">parityMode</a></td></tr>
<tr class="memdesc:a842eae1042af35eb9a63682866741cd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parity mode, disabled (default), even, odd. <br/></td></tr>
<tr class="separator:a842eae1042af35eb9a63682866741cd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c6d36b20931c603daca064da0806fd5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c6d36b20931c603daca064da0806fd5"></a>
<a class="el" href="a00025.html#gad0fc800e49978f5aee5c162009b16bdb">hal_uart_stop_bit_count_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a5c6d36b20931c603daca064da0806fd5">stopBitCount</a></td></tr>
<tr class="memdesc:a5c6d36b20931c603daca064da0806fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of stop bits, 1 stop bit (default) or 2 stop bits. <br/></td></tr>
<tr class="separator:a5c6d36b20931c603daca064da0806fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b745bb5c341b931b4fc4be492d6de2d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b745bb5c341b931b4fc4be492d6de2d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a4b745bb5c341b931b4fc4be492d6de2d">enableRx</a></td></tr>
<tr class="memdesc:a4b745bb5c341b931b4fc4be492d6de2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable RX. <br/></td></tr>
<tr class="separator:a4b745bb5c341b931b4fc4be492d6de2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e4241e0fff5fbac3f2fc57cc394f057"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e4241e0fff5fbac3f2fc57cc394f057"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a9e4241e0fff5fbac3f2fc57cc394f057">enableTx</a></td></tr>
<tr class="memdesc:a9e4241e0fff5fbac3f2fc57cc394f057"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable TX. <br/></td></tr>
<tr class="separator:a9e4241e0fff5fbac3f2fc57cc394f057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a727817023245bbfe140184c8b885c063"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a727817023245bbfe140184c8b885c063"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a727817023245bbfe140184c8b885c063">enableRxRTS</a></td></tr>
<tr class="memdesc:a727817023245bbfe140184c8b885c063"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable RX RTS. <br/></td></tr>
<tr class="separator:a727817023245bbfe140184c8b885c063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba8eac4a9f11a80fb8a679165040fab3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba8eac4a9f11a80fb8a679165040fab3"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#aba8eac4a9f11a80fb8a679165040fab3">enableTxCTS</a></td></tr>
<tr class="memdesc:aba8eac4a9f11a80fb8a679165040fab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable TX CTS. <br/></td></tr>
<tr class="separator:aba8eac4a9f11a80fb8a679165040fab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9125f3e3e2656f3c48081098f0ab69e1"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a9125f3e3e2656f3c48081098f0ab69e1">instance</a></td></tr>
<tr class="memdesc:a9125f3e3e2656f3c48081098f0ab69e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instance (0 - UART0, 1 - UART1, ...), detail information please refer to the SOC corresponding RM. <a href="#a9125f3e3e2656f3c48081098f0ab69e1">More...</a><br/></td></tr>
<tr class="separator:a9125f3e3e2656f3c48081098f0ab69e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a9125f3e3e2656f3c48081098f0ab69e1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t _hal_uart_config::instance</td>
</tr>
</table>
</div><div class="memdoc">
<p>Invalid instance value will cause initialization failure. </p>
</div>
</div>
</div>
</div>
<a name="a00339" id="a00339"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _hal_uart_transfer</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a31c68714b4d6b61adc78b34bd97d5858"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a31c68714b4d6b61adc78b34bd97d5858">data</a></td></tr>
<tr class="memdesc:a31c68714b4d6b61adc78b34bd97d5858"><td class="mdescLeft">&#160;</td><td class="mdescRight">The buffer of data to be transfer. <a href="#a31c68714b4d6b61adc78b34bd97d5858">More...</a><br/></td></tr>
<tr class="separator:a31c68714b4d6b61adc78b34bd97d5858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6870c6ce86f5841aad5d8a855c183d88"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html#a6870c6ce86f5841aad5d8a855c183d88">dataSize</a></td></tr>
<tr class="memdesc:a6870c6ce86f5841aad5d8a855c183d88"><td class="mdescLeft">&#160;</td><td class="mdescRight">The byte count to be transfer. <a href="#a6870c6ce86f5841aad5d8a855c183d88">More...</a><br/></td></tr>
<tr class="separator:a6870c6ce86f5841aad5d8a855c183d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a31c68714b4d6b61adc78b34bd97d5858"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t* _hal_uart_transfer::data</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6870c6ce86f5841aad5d8a855c183d88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t _hal_uart_transfer::dataSize</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga65f0632e17011f650821a3432516b121"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HAL_UART_DMA_IDLELINE_TIMEOUT&#160;&#160;&#160;(1U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaf29d1da1f03c0e201cc643164d6cebd2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HAL_UART_HANDLE_SIZE&#160;&#160;&#160;(92U + HAL_UART_ADAPTER_LOWPOWER * 16U + HAL_UART_DMA_ENABLE * 4U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaec964c39538bce11685bb9a77e1bc67a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UART_HANDLE_DEFINE</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">name</td><td>)</td>
<td>&#160;&#160;&#160;uint32_t name[((<a class="el" href="a00025.html#gaf29d1da1f03c0e201cc643164d6cebd2">HAL_UART_HANDLE_SIZE</a> + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Defines the uart handle</p>
<p>This macro is used to define a 4 byte aligned uart handle. Then use "(hal_uart_handle_t)name" to get the uart handle.</p>
<p>The macro should be global and could be optional. You could also define uart handle by yourself.</p>
<p>This is an example, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00025.html#gaec964c39538bce11685bb9a77e1bc67a">UART_HANDLE_DEFINE</a>(uartHandle);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">name</td><td>The name string of the uart handle. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga16a70d80d91c156451608862bb0f3d69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HAL_UART_TRANSFER_MODE&#160;&#160;&#160;(0U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>(0 - disable, 1 - enable) </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gae4e2bad20cdbd350adfa29a03102a2dc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gaada11b3f0c0eb00c9845dc01ab9afea9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void* <a class="el" href="a00025.html#gaada11b3f0c0eb00c9845dc01ab9afea9">hal_uart_dma_handle_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga24029165f252c4fe925cdb8af52b3b8f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00025.html#ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3">_hal_uart_parity_mode</a> <a class="el" href="a00025.html#ga24029165f252c4fe925cdb8af52b3b8f">hal_uart_parity_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gad0fc800e49978f5aee5c162009b16bdb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="a00025.html#gac8e83321127267d2bed1659d4227f050">_hal_uart_stop_bit_count</a> <a class="el" href="a00025.html#gad0fc800e49978f5aee5c162009b16bdb">hal_uart_stop_bit_count_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga1545cbd3c961cbe725ed2a75ffc5a999"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00025.html#a00338">_hal_uart_config</a> <a class="el" href="a00025.html#ga1545cbd3c961cbe725ed2a75ffc5a999">hal_uart_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga465cf4da9359face10f612a6efa72ff0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* hal_uart_transfer_callback_t)(<a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a> handle, <a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> status, void *callbackParam)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="gae828850e160c8cac564844089431e46e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00025.html#a00339">_hal_uart_transfer</a> <a class="el" href="a00025.html#gae828850e160c8cac564844089431e46e">hal_uart_transfer_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaaaffa428b5b9f79a5e510eb34c74f8f6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00025.html#gaaaffa428b5b9f79a5e510eb34c74f8f6">_hal_uart_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6ace53957d3570fb00454fdd51484e8a4b"></a>kStatus_HAL_UartSuccess</em>&nbsp;</td><td class="fielddoc">
<p>Successfully. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6aef9c1d027988265c69aef95219493bf6"></a>kStatus_HAL_UartTxBusy</em>&nbsp;</td><td class="fielddoc">
<p>TX busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6a58742a06efe6f0a686c82d1bbf1347e4"></a>kStatus_HAL_UartRxBusy</em>&nbsp;</td><td class="fielddoc">
<p>RX busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6a191f28681f86e8a374711e455949fa3d"></a>kStatus_HAL_UartTxIdle</em>&nbsp;</td><td class="fielddoc">
<p>HAL UART transmitter is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6acd7b1ae53a0bcb77d67cc66701c3c7f5"></a>kStatus_HAL_UartRxIdle</em>&nbsp;</td><td class="fielddoc">
<p>HAL UART receiver is idle. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6a56abdea917d92b3a62fb1ee09bfc416f"></a>kStatus_HAL_UartBaudrateNotSupport</em>&nbsp;</td><td class="fielddoc">
<p>Baudrate is not support in current clock source. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6a4dad70c2171b2445de1224d65645164e"></a>kStatus_HAL_UartProtocolError</em>&nbsp;</td><td class="fielddoc">
<p>Error occurs for Noise, Framing, Parity, etc. </p>
<p>For transactional transfer, The up layer needs to abort the transfer and then starts again </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaaaffa428b5b9f79a5e510eb34c74f8f6a3e539021cfde4b3468c00de4f834e84e"></a>kStatus_HAL_UartError</em>&nbsp;</td><td class="fielddoc">
<p>Error occurs on HAL UART. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00025.html#ga4bfc5f54ba1569ae2dfcc1d7ae0be0f3">_hal_uart_parity_mode</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3a08fcd92b9342a589174cb30bc87c8536"></a>kHAL_UartParityDisabled</em>&nbsp;</td><td class="fielddoc">
<p>Parity disabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3ad5aa4e9333286303c2aacaf0720d0393"></a>kHAL_UartParityEven</em>&nbsp;</td><td class="fielddoc">
<p>Parity even enabled. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3abf5f4cdb5e90b0fc1c3e079d305cb90d"></a>kHAL_UartParityOdd</em>&nbsp;</td><td class="fielddoc">
<p>Parity odd enabled. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac8e83321127267d2bed1659d4227f050"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00025.html#gac8e83321127267d2bed1659d4227f050">_hal_uart_stop_bit_count</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac8e83321127267d2bed1659d4227f050a34f5d0e676eead962173aa956b850476"></a>kHAL_UartOneStopBit</em>&nbsp;</td><td class="fielddoc">
<p>One stop bit. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac8e83321127267d2bed1659d4227f050ab4bec3351a5a5818347a899989cd65e4"></a>kHAL_UartTwoStopBit</em>&nbsp;</td><td class="fielddoc">
<p>Two stop bits. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga94fb66eff085a5f4f48223f3fb51ee73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00025.html#ga1545cbd3c961cbe725ed2a75ffc5a999">hal_uart_config_t</a> *&#160;</td>
<td class="paramname"><em>uart_config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function configures the UART module with user-defined settings. The user can configure the configuration structure. The parameter handle is a pointer to point to a memory space of size <a class="el" href="a00025.html#gaf29d1da1f03c0e201cc643164d6cebd2" title="Definition of uart adapter handle size. ">HAL_UART_HANDLE_SIZE</a> allocated by the caller. Example below shows how to use this API to configure the UART. </p>
<div class="fragment"><div class="line">* <a class="code" href="a00025.html#gaec964c39538bce11685bb9a77e1bc67a">UART_HANDLE_DEFINE</a>(g_UartHandle);</div>
<div class="line">* <a class="code" href="a00025.html#a00338">hal_uart_config_t</a> config;</div>
<div class="line">* config.<a class="code" href="a00025.html#a61a6c278fe13742de953f009fc6fea48">srcClock_Hz</a> = 48000000;</div>
<div class="line">* config.<a class="code" href="a00025.html#a7a025079f248c8caa954a7d17658564c">baudRate_Bps</a> = 115200U;</div>
<div class="line">* config.<a class="code" href="a00025.html#a842eae1042af35eb9a63682866741cd4">parityMode</a> = <a class="code" href="a00025.html#gga4bfc5f54ba1569ae2dfcc1d7ae0be0f3a08fcd92b9342a589174cb30bc87c8536">kHAL_UartParityDisabled</a>;</div>
<div class="line">* config.<a class="code" href="a00025.html#a5c6d36b20931c603daca064da0806fd5">stopBitCount</a> = <a class="code" href="a00025.html#ggac8e83321127267d2bed1659d4227f050a34f5d0e676eead962173aa956b850476">kHAL_UartOneStopBit</a>;</div>
<div class="line">* config.<a class="code" href="a00025.html#a4b745bb5c341b931b4fc4be492d6de2d">enableRx</a> = 1;</div>
<div class="line">* config.<a class="code" href="a00025.html#a9e4241e0fff5fbac3f2fc57cc394f057">enableTx</a> = 1;</div>
<div class="line">* config.<a class="code" href="a00025.html#a727817023245bbfe140184c8b885c063">enableRxRTS</a> = 0;</div>
<div class="line">* config.<a class="code" href="a00025.html#aba8eac4a9f11a80fb8a679165040fab3">enableTxCTS</a> = 0;</div>
<div class="line">* config.<a class="code" href="a00025.html#a9125f3e3e2656f3c48081098f0ab69e1">instance</a> = 0;</div>
<div class="line">* <a class="code" href="a00025.html#ga94fb66eff085a5f4f48223f3fb51ee73">HAL_UartInit</a>((<a class="code" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>)g_UartHandle, &amp;config);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>Pointer to point to a memory space of size <a class="el" href="a00025.html#gaf29d1da1f03c0e201cc643164d6cebd2" title="Definition of uart adapter handle size. ">HAL_UART_HANDLE_SIZE</a> allocated by the caller. The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices. You can define the handle in the following two ways: <a class="el" href="a00025.html#gaec964c39538bce11685bb9a77e1bc67a" title="Definition of uart dma adapter handle size. ">UART_HANDLE_DEFINE(handle)</a>; or uint32_t handle[((HAL_UART_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]; </td></tr>
<tr><td class="paramname">uart_config</td><td>Pointer to user-defined configuration structure. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartBaudrateNotSupport</td><td>Baudrate is not support in current clock source. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>UART initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab68259998677f787072799042ed0ce34"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function waits for TX complete, disables TX and RX, and disables the UART clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>UART de-initialization succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga652499fca5739b0d61df775e371279bb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartReceiveBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function polls the RX register, waits for the RX register to be full or for RX FIFO to have data, and reads data from the RX register.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#ga652499fca5739b0d61df775e371279bb" title="Reads RX data register using a blocking method. ">HAL_UartReceiveBlocking</a> and the function HAL_UartTransferReceiveNonBlocking cannot be used at the same time. And, the function HAL_UartTransferAbortReceive cannot be used to abort the transmission of this function.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">data</td><td>Start address of the buffer to store the received data. </td></tr>
<tr><td class="paramname">length</td><td>Size of the buffer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred while receiving data. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartParityError</td><td>A parity error occurred while receiving data. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successfully received all data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae7104925b7bff899a7631c5ee708dc5c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartSendBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function polls the TX register, waits for the TX register to be empty or for the TX FIFO to have room and writes data to the TX buffer.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#gae7104925b7bff899a7631c5ee708dc5c" title="Writes to the TX register using a blocking method. ">HAL_UartSendBlocking</a> and the function HAL_UartTransferSendNonBlocking cannot be used at the same time. And, the function HAL_UartTransferAbortSend cannot be used to abort the transmission of this function.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">data</td><td>Start address of the data to write. </td></tr>
<tr><td class="paramname">length</td><td>Size of the data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successfully sent all data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae9d70dd0b175d45cc9212332af883542"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartInstallCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00025.html#ga465cf4da9359face10f612a6efa72ff0">hal_uart_transfer_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>callbackParam</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to install the callback and callback parameter for UART module. When non-blocking sending or receiving finished, the adapter will notify the upper layer by the installed callback function. And the status is also passed as status parameter when the callback is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">callback</td><td>The callback function. </td></tr>
<tr><td class="paramname">callbackParam</td><td>The parameter of the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successfully install the callback. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9a273311aeb550c6dfa176fa0b919e56"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartReceiveNonBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function receives data using an interrupt method. This is a non-blocking function, which returns directly without waiting for all data to be received. The receive request is saved by the UART adapter. When the new data arrives, the receive request is serviced first. When all data is received, the UART adapter notifies the upper layer through a callback function and passes the status parameter <a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6acd7b1ae53a0bcb77d67cc66701c3c7f5">kStatus_HAL_UartRxIdle</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#ga652499fca5739b0d61df775e371279bb" title="Reads RX data register using a blocking method. ">HAL_UartReceiveBlocking</a> and the function <a class="el" href="a00025.html#ga9a273311aeb550c6dfa176fa0b919e56" title="Receives a buffer of data using an interrupt method. ">HAL_UartReceiveNonBlocking</a> cannot be used at the same time.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">data</td><td>Start address of the data to write. </td></tr>
<tr><td class="paramname">length</td><td>Size of the data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successfully queue the transfer into transmit queue. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartRxBusy</td><td>Previous receive request is not finished. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5a0cf1c9898f255bcbeb7c9a0e3c420c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartSendNonBlocking </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sends data using an interrupt method. This is a non-blocking function, which returns directly without waiting for all data to be written to the TX register. When all data is written to the TX register in the ISR, the UART driver calls the callback function and passes the <a class="el" href="a00025.html#ggaaaffa428b5b9f79a5e510eb34c74f8f6a191f28681f86e8a374711e455949fa3d">kStatus_HAL_UartTxIdle</a> as status parameter.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#gae7104925b7bff899a7631c5ee708dc5c" title="Writes to the TX register using a blocking method. ">HAL_UartSendBlocking</a> and the function <a class="el" href="a00025.html#ga5a0cf1c9898f255bcbeb7c9a0e3c420c" title="Transmits a buffer of data using the interrupt method. ">HAL_UartSendNonBlocking</a> cannot be used at the same time.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">data</td><td>Start address of the data to write. </td></tr>
<tr><td class="paramname">length</td><td>Size of the data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successfully start the data transmission. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartTxBusy</td><td>Previous transmission still not finished; data not all written to TX register yet. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2adbcfd9f3623668961a6b28eda251f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartGetReceiveCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>reCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the number of bytes that have been received.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">reCount</td><td>Receive bytes count. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Get successfully through the parameter <code>count</code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1796607fb65e2a29aafa9aa67a3ee12a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartGetSendCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>seCount</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the number of bytes written to the UART TX register by using the interrupt method.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
<tr><td class="paramname">seCount</td><td>Send bytes count. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Get successfully through the parameter <code>count</code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3a34b73dc663ff0e93d7b316ffa021d4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartAbortReceive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function aborts the interrupt-driven data receiving. The user can get the remainBytes to know how many bytes are not received yet.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#ga3a34b73dc663ff0e93d7b316ffa021d4" title="Aborts the interrupt-driven data receiving. ">HAL_UartAbortReceive</a> cannot be used to abort the transmission of the function <a class="el" href="a00025.html#ga652499fca5739b0d61df775e371279bb" title="Reads RX data register using a blocking method. ">HAL_UartReceiveBlocking</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Get successfully abort the receiving. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5024669b09b79eb9fcfbde894d072fef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartAbortSend </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function aborts the interrupt-driven data sending. The user can get the remainBytes to find out how many bytes are not sent out.</p>
<dl class="section note"><dt>Note</dt><dd>The function <a class="el" href="a00025.html#ga5024669b09b79eb9fcfbde894d072fef" title="Aborts the interrupt-driven data sending. ">HAL_UartAbortSend</a> cannot be used to abort the transmission of the function <a class="el" href="a00025.html#gae7104925b7bff899a7631c5ee708dc5c" title="Writes to the TX register using a blocking method. ">HAL_UartSendBlocking</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Get successfully abort the sending. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabbb5549df83873ae3cfc59a8cbcd1712"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartEnterLowpower </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to prepare to enter low power consumption.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successful operation. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7399f84407e69805b4d603bc385adb81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00025.html#ga352ee9bdc398eba4262ca7656f9c5e50">hal_uart_status_t</a> HAL_UartExitLowpower </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to restore from low power consumption.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_HAL_UartSuccess</td><td>Successful operation. </td></tr>
<tr><td class="paramname">kStatus_HAL_UartError</td><td>An error occurred. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab75136e7430067097980dd89e0838b71"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void HAL_UartIsrFunction </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00025.html#gae4e2bad20cdbd350adfa29a03102a2dc">hal_uart_handle_t</a>&#160;</td>
<td class="paramname"><em>handle</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function handles the UART transmit and receive IRQ request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>UART handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>