Files
bootloader/doc/core_html/group__lpsci.html
László Monda e6c1fce5b4 Add KBOOT.
2016-08-10 01:45:15 +02:00

1906 lines
104 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.11"/>
<title>Kinetis Bootloader: Universal Asynchronous Receiver/Transmitter (LPSCI)</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="navtreedata.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/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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 style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Kinetis Bootloader
&#160;<span id="projectnumber">2.0.0</span>
</div>
<div id="projectbrief">Common bootloader for Kinetis devices</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<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>Introduction</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</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('group__lpsci.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)">
</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="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">Universal Asynchronous Receiver/Transmitter (LPSCI)</div> </div>
</div><!--header-->
<div class="contents">
<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:structlpsci__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#structlpsci__config__t">lpsci_config_t</a></td></tr>
<tr class="memdesc:structlpsci__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI configure structure. <a href="group__lpsci.html#structlpsci__config__t">More...</a><br /></td></tr>
<tr class="separator:structlpsci__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structlpsci__transfer__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#structlpsci__transfer__t">lpsci_transfer_t</a></td></tr>
<tr class="memdesc:structlpsci__transfer__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI transfer structure. <a href="group__lpsci.html#structlpsci__transfer__t">More...</a><br /></td></tr>
<tr class="separator:structlpsci__transfer__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:struct__lpsci__handle"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#struct__lpsci__handle">lpsci_handle_t</a></td></tr>
<tr class="separator:struct__lpsci__handle"><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:ga089281ce28e5d8065f4af98a66e12b12"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga089281ce28e5d8065f4af98a66e12b12"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga089281ce28e5d8065f4af98a66e12b12">lpsci_transfer_callback_t</a>) (UART0_Type *base, lpsci_handle_t *handle, <a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status, void *userData)</td></tr>
<tr class="memdesc:ga089281ce28e5d8065f4af98a66e12b12"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI transfer callback function. <br /></td></tr>
<tr class="separator:ga089281ce28e5d8065f4af98a66e12b12"><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:gac1d1feb1e13e35beba93e7afce633e16"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gac1d1feb1e13e35beba93e7afce633e16">_lpsci_status</a> { <br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a7073247ab412c287a4ba590e9a3f1763">kStatus_LPSCI_TxBusy</a> = MAKE_STATUS(kStatusGroup_LPSCI, 0),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a5e225b6f93a42436b01525305eb345b8">kStatus_LPSCI_RxBusy</a> = MAKE_STATUS(kStatusGroup_LPSCI, 1),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16acb9eaa06221caa3b15102135bcc58cb0">kStatus_LPSCI_TxIdle</a> = MAKE_STATUS(kStatusGroup_LPSCI, 2),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a4d3b44544996f003e9246e4b725e1db3">kStatus_LPSCI_RxIdle</a> = MAKE_STATUS(kStatusGroup_LPSCI, 3),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16acb37b9124115df5b59a01b4311ad1243">kStatus_LPSCI_FlagCannotClearManually</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a1ac38136f23a4f1ca18a86972ee51246">kStatus_LPSCI_BaudrateNotSupport</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a741410f4c0886c858378ce1ac51da0a5">kStatus_LPSCI_Error</a> = MAKE_STATUS(kStatusGroup_LPSCI, 4),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a2288eb249cfe864ee29a1e53e5254f47">kStatus_LPSCI_RxRingBufferOverrun</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a3d001d307f032b50fa810b1374abf4e0">kStatus_LPSCI_RxHardwareOverrun</a> = MAKE_STATUS(kStatusGroup_LPSCI, 9),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a24c82dc147e0ddc96f7b882a8c4d8d54">kStatus_LPSCI_NoiseError</a> = MAKE_STATUS(kStatusGroup_LPSCI, 10),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a526b9a4050c3dcd92b53c59565dc033f">kStatus_LPSCI_FramingError</a> = MAKE_STATUS(kStatusGroup_LPSCI, 11),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a432958a10e6bf938ba2301f890e84a55">kStatus_LPSCI_ParityError</a> = MAKE_STATUS(kStatusGroup_LPSCI, 12)
<br />
}<tr class="memdesc:gac1d1feb1e13e35beba93e7afce633e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes for the LPSCI driver. <a href="group__lpsci.html#gac1d1feb1e13e35beba93e7afce633e16">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gac1d1feb1e13e35beba93e7afce633e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga914e25b9b58c086d6ee790f7bbe96de1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga914e25b9b58c086d6ee790f7bbe96de1">lpsci_parity_mode_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga914e25b9b58c086d6ee790f7bbe96de1a702ea1a55bf3eb879fd5d817cd95a696">kLPSCI_ParityDisabled</a> = 0x0U,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga914e25b9b58c086d6ee790f7bbe96de1aa95669109142cc4f43e257e702ddd6fe">kLPSCI_ParityEven</a> = 0x2U,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga914e25b9b58c086d6ee790f7bbe96de1afa5d5edd522b4ade258f3792901927c1">kLPSCI_ParityOdd</a> = 0x3U
<br />
}<tr class="memdesc:ga914e25b9b58c086d6ee790f7bbe96de1"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI parity mode. <a href="group__lpsci.html#ga914e25b9b58c086d6ee790f7bbe96de1">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga914e25b9b58c086d6ee790f7bbe96de1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e71c77aa3c6663fa13a36614ecd5218"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga1e71c77aa3c6663fa13a36614ecd5218">lpsci_stop_bit_count_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga1e71c77aa3c6663fa13a36614ecd5218a807eb926b7cd6cc5d25a34689e16075f">kLPSCI_OneStopBit</a> = 0U,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga1e71c77aa3c6663fa13a36614ecd5218a12446eb122de9a901036aabab33d4bdc">kLPSCI_TwoStopBit</a> = 1U
<br />
}<tr class="memdesc:ga1e71c77aa3c6663fa13a36614ecd5218"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI stop bit count. <a href="group__lpsci.html#ga1e71c77aa3c6663fa13a36614ecd5218">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga1e71c77aa3c6663fa13a36614ecd5218"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa58d87d0b59b83414988fbb1b7c79cdb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaa58d87d0b59b83414988fbb1b7c79cdb">_lpsci_interrupt_enable_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdba09ef11585639ac53f945a7a524674c47">kLPSCI_LinBreakInterruptEnable</a> = (UART0_BDH_LBKDIE_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdbaac1b4da30c60fd98e4f5dcdada110a38">kLPSCI_RxActiveEdgeInterruptEnable</a> = (UART0_BDH_RXEDGIE_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdbaea5f6ef08a50d1576b99c3aad6618fe4">kLPSCI_TxDataRegEmptyInterruptEnable</a> = (UART0_C2_TIE_MASK &lt;&lt; 8),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdbaacef19879d6eee40c11bd0ced8756602">kLPSCI_TransmissionCompleteInterruptEnable</a> = (UART0_C2_TCIE_MASK &lt;&lt; 8),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdbaf51e3ebc1b14f13e9b4cfe4859c0a9b3">kLPSCI_RxDataRegFullInterruptEnable</a> = (UART0_C2_RIE_MASK &lt;&lt; 8),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdbac75c2bc89795da716eda76084fe79b17">kLPSCI_IdleLineInterruptEnable</a> = (UART0_C2_ILIE_MASK &lt;&lt; 8),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdba1b0296dd785a43396080e4167452ff54">kLPSCI_RxOverrunInterruptEnable</a> = (UART0_C3_ORIE_MASK &lt;&lt; 16),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdba2fcadea24f1f01f6e2953ad0a96e5621">kLPSCI_NoiseErrorInterruptEnable</a> = (UART0_C3_NEIE_MASK &lt;&lt; 16),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdba5354940b55c917fd282585166e8b97f6">kLPSCI_FramingErrorInterruptEnable</a> = (UART0_C3_FEIE_MASK &lt;&lt; 16),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#ggaa58d87d0b59b83414988fbb1b7c79cdba38b0f225428a019dff8bada27b15dc0d">kLPSCI_ParityErrorInterruptEnable</a> = (UART0_C3_PEIE_MASK &lt;&lt; 16)
<br />
}<tr class="memdesc:gaa58d87d0b59b83414988fbb1b7c79cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI interrupt configuration structure, default settings all disabled. <a href="group__lpsci.html#gaa58d87d0b59b83414988fbb1b7c79cdb">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gaa58d87d0b59b83414988fbb1b7c79cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga581702dbe0430a177c664a5d495224be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga581702dbe0430a177c664a5d495224be">_lpsci_status_flag_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea36464c4b39e7c08242b717978cca4217">kLPSCI_TxDataRegEmptyFlag</a> = (UART0_S1_TDRE_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea6500e8ab15028ce548dbe9a43484fb4c">kLPSCI_TransmissionCompleteFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea35ec5c8d6104b078fa6b01c0bee0a15e">kLPSCI_RxDataRegFullFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea6d471331d3bea279810a621312ae3840">kLPSCI_IdleLineFlag</a> = (UART0_S1_IDLE_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bead2330d54a37be33a8732aa4d6fe3e288">kLPSCI_RxOverrunFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea621a62a970f875d220befad233ad6a58">kLPSCI_NoiseErrorFlag</a> = (UART0_S1_NF_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea6923b3152838210054bfc4791d8ac43c">kLPSCI_FramingErrorFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224beacb0ea6d4b7af5a744a5901f0b1b7520f">kLPSCI_ParityErrorFlag</a> = (UART0_S1_PF_MASK),
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea7142ca52e95d1881d6c0d1c764247226">kLPSCI_LinBreakFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea921c671d6a1a82e189977db8f44973d1">kLPSCI_RxActiveEdgeFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224beaa7a30af77f7c1c6725fa055aa4c466b2">kLPSCI_RxActiveFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea3ee691a573b941c34ab5cfe3bcf81b28">kLPSCI_NoiseErrorInRxDataRegFlag</a>,
<br />
&#160;&#160;<a class="el" href="group__lpsci.html#gga581702dbe0430a177c664a5d495224bea3132ea82244866881f523c3bcd55c198">kLPSCI_ParityErrorInRxDataRegFlag</a>
<br />
}<tr class="memdesc:ga581702dbe0430a177c664a5d495224be"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI status flags. <a href="group__lpsci.html#ga581702dbe0430a177c664a5d495224be">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga581702dbe0430a177c664a5d495224be"><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:gaba2b35edef52515ce868e0e2f7fade81"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaba2b35edef52515ce868e0e2f7fade81">LPSCI_Init</a> (UART0_Type *base, const <a class="el" href="group__lpsci.html#structlpsci__config__t">lpsci_config_t</a> *config, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:gaba2b35edef52515ce868e0e2f7fade81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an LPSCI instance with the user configuration structure and the peripheral clock. <a href="#gaba2b35edef52515ce868e0e2f7fade81">More...</a><br /></td></tr>
<tr class="separator:gaba2b35edef52515ce868e0e2f7fade81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c1cc2d653394f88a5f9a4c3a6c5f498"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga9c1cc2d653394f88a5f9a4c3a6c5f498">LPSCI_Deinit</a> (UART0_Type *base)</td></tr>
<tr class="memdesc:ga9c1cc2d653394f88a5f9a4c3a6c5f498"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes an LPSCI instance. <a href="#ga9c1cc2d653394f88a5f9a4c3a6c5f498">More...</a><br /></td></tr>
<tr class="separator:ga9c1cc2d653394f88a5f9a4c3a6c5f498"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4246a6f2a19ea028917059e372592b7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga4246a6f2a19ea028917059e372592b7d">LPSCI_GetDefaultConfig</a> (<a class="el" href="group__lpsci.html#structlpsci__config__t">lpsci_config_t</a> *config)</td></tr>
<tr class="memdesc:ga4246a6f2a19ea028917059e372592b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the default configuration structure and saves the configuration to a user-provided pointer. <a href="#ga4246a6f2a19ea028917059e372592b7d">More...</a><br /></td></tr>
<tr class="separator:ga4246a6f2a19ea028917059e372592b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58f4b156863ea675c4143882208a8736"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga58f4b156863ea675c4143882208a8736">LPSCI_SetBaudRate</a> (UART0_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)</td></tr>
<tr class="memdesc:ga58f4b156863ea675c4143882208a8736"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the LPSCI instance baudrate. <a href="#ga58f4b156863ea675c4143882208a8736">More...</a><br /></td></tr>
<tr class="separator:ga58f4b156863ea675c4143882208a8736"><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>
Status</h2></td></tr>
<tr class="memitem:gadece7c20e6564c0a726f39862b5e8fdd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gadece7c20e6564c0a726f39862b5e8fdd">LPSCI_GetStatusFlags</a> (UART0_Type *base)</td></tr>
<tr class="memdesc:gadece7c20e6564c0a726f39862b5e8fdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets LPSCI status flags. <a href="#gadece7c20e6564c0a726f39862b5e8fdd">More...</a><br /></td></tr>
<tr class="separator:gadece7c20e6564c0a726f39862b5e8fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae81e17bb135ee6e54db6ada77a405856"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae81e17bb135ee6e54db6ada77a405856"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>LPSCI_ClearStatusFlags</b> (UART0_Type *base, uint32_t mask)</td></tr>
<tr class="separator:gae81e17bb135ee6e54db6ada77a405856"><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>
Interrupts</h2></td></tr>
<tr class="memitem:gae7cd8c6678f9fe56adb5df2d8e3bc121"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gae7cd8c6678f9fe56adb5df2d8e3bc121">LPSCI_EnableInterrupts</a> (UART0_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gae7cd8c6678f9fe56adb5df2d8e3bc121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables an LPSCI interrupt according to a provided mask. <a href="#gae7cd8c6678f9fe56adb5df2d8e3bc121">More...</a><br /></td></tr>
<tr class="separator:gae7cd8c6678f9fe56adb5df2d8e3bc121"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1864d45e565615e20382215869b51ea7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga1864d45e565615e20382215869b51ea7">LPSCI_DisableInterrupts</a> (UART0_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga1864d45e565615e20382215869b51ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the LPSCI interrupt according to a provided mask. <a href="#ga1864d45e565615e20382215869b51ea7">More...</a><br /></td></tr>
<tr class="separator:ga1864d45e565615e20382215869b51ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1fb22a4d3ce4827ff8c9feb0b1e7988"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaf1fb22a4d3ce4827ff8c9feb0b1e7988">LPSCI_GetEnabledInterrupts</a> (UART0_Type *base)</td></tr>
<tr class="memdesc:gaf1fb22a4d3ce4827ff8c9feb0b1e7988"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the enabled LPSCI interrupts. <a href="#gaf1fb22a4d3ce4827ff8c9feb0b1e7988">More...</a><br /></td></tr>
<tr class="separator:gaf1fb22a4d3ce4827ff8c9feb0b1e7988"><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>
DMA Control</h2></td></tr>
<tr class="memitem:gaa39e1eb0307e57d24a3305f86ba5a7d1"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaa39e1eb0307e57d24a3305f86ba5a7d1">LPSCI_GetDataRegisterAddress</a> (UART0_Type *base)</td></tr>
<tr class="memdesc:gaa39e1eb0307e57d24a3305f86ba5a7d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the LPSCI data register address. <a href="#gaa39e1eb0307e57d24a3305f86ba5a7d1">More...</a><br /></td></tr>
<tr class="separator:gaa39e1eb0307e57d24a3305f86ba5a7d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ccc358115e35a4ebf86e6550352e0c7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga5ccc358115e35a4ebf86e6550352e0c7">LPSCI_EnableTxDMA</a> (UART0_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga5ccc358115e35a4ebf86e6550352e0c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disable LPSCI transmitter DMA request. <a href="#ga5ccc358115e35a4ebf86e6550352e0c7">More...</a><br /></td></tr>
<tr class="separator:ga5ccc358115e35a4ebf86e6550352e0c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f55bc5c5ac9e88598da3b57b8f80d29"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga0f55bc5c5ac9e88598da3b57b8f80d29">LPSCI_EnableRxDMA</a> (UART0_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga0f55bc5c5ac9e88598da3b57b8f80d29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the LPSCI receiver DMA. <a href="#ga0f55bc5c5ac9e88598da3b57b8f80d29">More...</a><br /></td></tr>
<tr class="separator:ga0f55bc5c5ac9e88598da3b57b8f80d29"><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>
Bus Operations</h2></td></tr>
<tr class="memitem:ga63bf1a445a943202ea7c86a90141f56c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga63bf1a445a943202ea7c86a90141f56c">LPSCI_EnableTx</a> (UART0_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga63bf1a445a943202ea7c86a90141f56c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the LPSCI transmitter. <a href="#ga63bf1a445a943202ea7c86a90141f56c">More...</a><br /></td></tr>
<tr class="separator:ga63bf1a445a943202ea7c86a90141f56c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ba0aa7051a89771bececd06dbf74bb1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga9ba0aa7051a89771bececd06dbf74bb1">LPSCI_EnableRx</a> (UART0_Type *base, bool enable)</td></tr>
<tr class="memdesc:ga9ba0aa7051a89771bececd06dbf74bb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the LPSCI receiver. <a href="#ga9ba0aa7051a89771bececd06dbf74bb1">More...</a><br /></td></tr>
<tr class="separator:ga9ba0aa7051a89771bececd06dbf74bb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa13d00aa1d674d1132909792912ec92c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaa13d00aa1d674d1132909792912ec92c">LPSCI_WriteByte</a> (UART0_Type *base, uint8_t data)</td></tr>
<tr class="memdesc:gaa13d00aa1d674d1132909792912ec92c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to the TX register. <a href="#gaa13d00aa1d674d1132909792912ec92c">More...</a><br /></td></tr>
<tr class="separator:gaa13d00aa1d674d1132909792912ec92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90ac0899c71c47fdff8db3a5752a7130"><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga90ac0899c71c47fdff8db3a5752a7130">LPSCI_ReadByte</a> (UART0_Type *base)</td></tr>
<tr class="memdesc:ga90ac0899c71c47fdff8db3a5752a7130"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the RX data register. <a href="#ga90ac0899c71c47fdff8db3a5752a7130">More...</a><br /></td></tr>
<tr class="separator:ga90ac0899c71c47fdff8db3a5752a7130"><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>
Transactional</h2></td></tr>
<tr class="memitem:ga2e327eede7ae083807a022a3e83a0443"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga2e327eede7ae083807a022a3e83a0443">LPSCI_TransferCreateHandle</a> (UART0_Type *base, lpsci_handle_t *handle, <a class="el" href="group__lpsci.html#ga089281ce28e5d8065f4af98a66e12b12">lpsci_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga2e327eede7ae083807a022a3e83a0443"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the LPSCI handle. <a href="#ga2e327eede7ae083807a022a3e83a0443">More...</a><br /></td></tr>
<tr class="separator:ga2e327eede7ae083807a022a3e83a0443"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad13abbc5047bf0489bc17bce8480e1af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gad13abbc5047bf0489bc17bce8480e1af">LPSCI_TransferStartRingBuffer</a> (UART0_Type *base, lpsci_handle_t *handle, uint8_t *ringBuffer, size_t ringBufferSize)</td></tr>
<tr class="memdesc:gad13abbc5047bf0489bc17bce8480e1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets up the RX ring buffer. <a href="#gad13abbc5047bf0489bc17bce8480e1af">More...</a><br /></td></tr>
<tr class="separator:gad13abbc5047bf0489bc17bce8480e1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44c795eb194dad914d8394d99c1d4552"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga44c795eb194dad914d8394d99c1d4552">LPSCI_TransferStopRingBuffer</a> (UART0_Type *base, lpsci_handle_t *handle)</td></tr>
<tr class="memdesc:ga44c795eb194dad914d8394d99c1d4552"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the background transfer and uninstalls the ring buffer. <a href="#ga44c795eb194dad914d8394d99c1d4552">More...</a><br /></td></tr>
<tr class="separator:ga44c795eb194dad914d8394d99c1d4552"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga016076dd8bc458c5753df306519324e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga016076dd8bc458c5753df306519324e6">LPSCI_TransferSendBlocking</a> (UART0_Type *base, const uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga016076dd8bc458c5753df306519324e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes to the TX register using a blocking method. <a href="#ga016076dd8bc458c5753df306519324e6">More...</a><br /></td></tr>
<tr class="separator:ga016076dd8bc458c5753df306519324e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga998f33848590a21b5351d2536c64c116"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga998f33848590a21b5351d2536c64c116">LPSCI_TransferSendNonBlocking</a> (UART0_Type *base, lpsci_handle_t *handle, <a class="el" href="group__lpsci.html#structlpsci__transfer__t">lpsci_transfer_t</a> *xfer)</td></tr>
<tr class="memdesc:ga998f33848590a21b5351d2536c64c116"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmits a buffer of data using the interrupt method. <a href="#ga998f33848590a21b5351d2536c64c116">More...</a><br /></td></tr>
<tr class="separator:ga998f33848590a21b5351d2536c64c116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafde36882901dc0a2fed8ffe42a648ecd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gafde36882901dc0a2fed8ffe42a648ecd">LPSCI_TransferAbortSend</a> (UART0_Type *base, lpsci_handle_t *handle)</td></tr>
<tr class="memdesc:gafde36882901dc0a2fed8ffe42a648ecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the interrupt-driven data transmit. <a href="#gafde36882901dc0a2fed8ffe42a648ecd">More...</a><br /></td></tr>
<tr class="separator:gafde36882901dc0a2fed8ffe42a648ecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2eb23791ceb822e4d93d11af4ce9ee8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gad2eb23791ceb822e4d93d11af4ce9ee8">LPSCI_TransferGetSendCount</a> (UART0_Type *base, lpsci_handle_t *handle, uint32_t *count)</td></tr>
<tr class="memdesc:gad2eb23791ceb822e4d93d11af4ce9ee8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of bytes that have been written to LPSCI TX register. <a href="#gad2eb23791ceb822e4d93d11af4ce9ee8">More...</a><br /></td></tr>
<tr class="separator:gad2eb23791ceb822e4d93d11af4ce9ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56786a698a5204ca9ea9475bb0ab1ea7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga56786a698a5204ca9ea9475bb0ab1ea7">LPSCI_TransferReceiveBlocking</a> (UART0_Type *base, uint8_t *data, size_t length)</td></tr>
<tr class="memdesc:ga56786a698a5204ca9ea9475bb0ab1ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the RX register using a non-blocking method. <a href="#ga56786a698a5204ca9ea9475bb0ab1ea7">More...</a><br /></td></tr>
<tr class="separator:ga56786a698a5204ca9ea9475bb0ab1ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1fc41709768728caf4b29fd2ab889e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gae1fc41709768728caf4b29fd2ab889e7">LPSCI_TransferReceiveNonBlocking</a> (UART0_Type *base, lpsci_handle_t *handle, <a class="el" href="group__lpsci.html#structlpsci__transfer__t">lpsci_transfer_t</a> *xfer, size_t *receivedBytes)</td></tr>
<tr class="memdesc:gae1fc41709768728caf4b29fd2ab889e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives buffer of data using the interrupt method. <a href="#gae1fc41709768728caf4b29fd2ab889e7">More...</a><br /></td></tr>
<tr class="separator:gae1fc41709768728caf4b29fd2ab889e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc500f220e7d1dcf00baddf6337d31ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gabc500f220e7d1dcf00baddf6337d31ba">LPSCI_TransferAbortReceive</a> (UART0_Type *base, lpsci_handle_t *handle)</td></tr>
<tr class="memdesc:gabc500f220e7d1dcf00baddf6337d31ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts interrupt driven data receiving. <a href="#gabc500f220e7d1dcf00baddf6337d31ba">More...</a><br /></td></tr>
<tr class="separator:gabc500f220e7d1dcf00baddf6337d31ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56e94947fb4c3766a582808193a52903"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga56e94947fb4c3766a582808193a52903">LPSCI_TransferGetReceiveCount</a> (UART0_Type *base, lpsci_handle_t *handle, uint32_t *count)</td></tr>
<tr class="memdesc:ga56e94947fb4c3766a582808193a52903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of bytes that have been received. <a href="#ga56e94947fb4c3766a582808193a52903">More...</a><br /></td></tr>
<tr class="separator:ga56e94947fb4c3766a582808193a52903"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf279ff1dadb04bb817242c8be3c31acf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#gaf279ff1dadb04bb817242c8be3c31acf">LPSCI_TransferHandleIRQ</a> (UART0_Type *base, lpsci_handle_t *handle)</td></tr>
<tr class="memdesc:gaf279ff1dadb04bb817242c8be3c31acf"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI IRQ handle function. <a href="#gaf279ff1dadb04bb817242c8be3c31acf">More...</a><br /></td></tr>
<tr class="separator:gaf279ff1dadb04bb817242c8be3c31acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d6e29854dad94ef7c88ff5747a515af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpsci.html#ga4d6e29854dad94ef7c88ff5747a515af">LPSCI_TransferHandleErrorIRQ</a> (UART0_Type *base, lpsci_handle_t *handle)</td></tr>
<tr class="memdesc:ga4d6e29854dad94ef7c88ff5747a515af"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPSCI Error IRQ handle function. <a href="#ga4d6e29854dad94ef7c88ff5747a515af">More...</a><br /></td></tr>
<tr class="separator:ga4d6e29854dad94ef7c88ff5747a515af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Usage Information</h2>
<p>The KSDK provides a peripheral driver for the Inter-Integrated Circuit (LPSCI) module of Kinetis devices.</p>
<p>#Overview</p>
<p>The LPSCI driver can be split into 2 parts: functional APIs and transactional APIs.</p>
<p>Functional APIs are feature/property target low level APIs. Functional APIs can be used for the LPSCI initialization/configuration/operation for optimization/customization purpose. Using the functional API requires knowledge of the LPSCI peripheral and how to organize functional APIs to meet the application requirements. All functional APIs use the peripheral base address as the first parameter. The LPSCI functional operation groups provide the functional APIs set.</p>
<p>The transactional APIs are transaction target high level APIs. Transactional APIs can be used to enable the peripheral quickly and also in the user's application if the code size and performance of transactional APIs can satisfy the user's requirements. If there are special requirements for the code size and performance, see the transactional API implementation and write custom code. All transactional APIs use the lpsci_handle_t as the first parameter. Initialize the handle by calling the LPSCI_CreateHandle() API.</p>
<p>Transactional APIs support queue feature for both transmit/receive. Whenever the user calls the LPSCI_SendDataIRQ() or LPSCI_ReceiveDataIRQ(), the transfer structure is queued into the internally maintained software queue. The driver automatically continues the transmit/receive if the queue is not empty. When a transfer is finished, the callback is called to inform the user about the completion.</p>
<p>The LPSCI transactional APIs support the background receive. Provide the ringbuffer address and size while calling the LPSCI_CreateHandle() API. The driver automatically starts receiving the data from the receive buffer into the ringbuffer. When the user makes subsequent calls to the LPSCI_ReceiveDataIRQ(), the driver provides the received data in the ringbuffer for user buffer directly and queues the left buffer into the receive queue.</p>
<h1>Function groups</h1>
<p>This function group implements the LPSCI functional API. Functional APIs are feature-oriented.</p>
<p>This function group implements the LPSCI transactional API.</p>
<p>This function group implements the LPSCI DMA transactional API.</p>
<h1>Typical use case</h1>
<div class="fragment"><div class="line">uint8_t ch;</div><div class="line"><a class="code" href="group__lpsci.html#ga4246a6f2a19ea028917059e372592b7d">LPSCI_GetDefaultConfig</a>(UART0,&amp;user_config);</div><div class="line">user_config.baudRate = 115200U;</div><div class="line"></div><div class="line">LPSCI_Configure(UART0,&amp;user_config,120000000U);</div><div class="line"></div><div class="line">LPSCI_WriteData(UART0, txbuff, <span class="keyword">sizeof</span>(txbuff));</div><div class="line"></div><div class="line"><span class="keywordflow">while</span>(1)</div><div class="line">{</div><div class="line"> LPSCI_ReadData(UART0,&amp;ch, 1);</div><div class="line"> LPSCI_WriteData(UART0, &amp;ch, 1);</div><div class="line">}</div></div><!-- fragment --><h2>LPSCI Send/Receive using an interrupt method</h2>
<h2>LPSCI Receive using the ringbuffer feature</h2>
<h2>LPSCI Send/Receive using the DMA method</h2>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structlpsci__config__t" id="structlpsci__config__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct lpsci_config_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>LPSCI configure structure. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aa5df547b4cb95d3c959373cf6fa672b5"></a>uint32_t</td>
<td class="fieldname">
baudRate_Bps</td>
<td class="fielddoc">
<p>LPSCI baud rate </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac6fe4a8b966fb5611f77358b819671b2"></a>bool</td>
<td class="fieldname">
enableRx</td>
<td class="fielddoc">
<p>Enable RX </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a221caf5c134ec8fcee82b8505ee75731"></a>bool</td>
<td class="fieldname">
enableTx</td>
<td class="fielddoc">
<p>Enable TX </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1edf99079502ab6deff849f01807ae45"></a><a class="el" href="group__lpsci.html#ga914e25b9b58c086d6ee790f7bbe96de1">lpsci_parity_mode_t</a></td>
<td class="fieldname">
parityMode</td>
<td class="fielddoc">
<p>Parity mode, disabled (default), even, odd </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a70806329ec87792f8d1ad8ecb59439a2"></a><a class="el" href="group__lpsci.html#ga1e71c77aa3c6663fa13a36614ecd5218">lpsci_stop_bit_count_t</a></td>
<td class="fieldname">
stopBitCount</td>
<td class="fielddoc">
<p>Number of stop bits, 1 stop bit (default) or 2 stop bits </p>
</td></tr>
</table>
</div>
</div>
<a name="structlpsci__transfer__t" id="structlpsci__transfer__t"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct lpsci_transfer_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>LPSCI transfer structure. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abe222f6d3581e7920dcad5306cc906a8"></a>uint8_t *</td>
<td class="fieldname">
data</td>
<td class="fielddoc">
<p>The buffer of data to be transfer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a78f9703861dd365a513c2c5aab9f9239"></a>size_t</td>
<td class="fieldname">
dataSize</td>
<td class="fielddoc">
<p>The byte count to be transfer. </p>
</td></tr>
</table>
</div>
</div>
<a name="struct__lpsci__handle" id="struct__lpsci__handle"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _lpsci_handle</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a8ad815cf0af5fd681ee59d3b662aa87a"></a><a class="el" href="group__lpsci.html#ga089281ce28e5d8065f4af98a66e12b12">lpsci_transfer_callback_t</a></td>
<td class="fieldname">
callback</td>
<td class="fielddoc">
<p>Callback function. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aa58335de5bfa8923228432b62ea9308a"></a>uint8_t *volatile</td>
<td class="fieldname">
rxData</td>
<td class="fielddoc">
<p>Address of remaining data to receive. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ae1b7c6ae1b7e7ead628afe5410fa3f31"></a>volatile size_t</td>
<td class="fieldname">
rxDataSize</td>
<td class="fielddoc">
<p>Size of the remaining data to receive. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a180fd12c1a88bb61ac4b817f4e4e6bcd"></a>size_t</td>
<td class="fieldname">
rxDataSizeAll</td>
<td class="fielddoc">
<p>Size of the data to receive. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a522d206ac2b0dde63cd3e7190853eaf2"></a>uint8_t *</td>
<td class="fieldname">
rxRingBuffer</td>
<td class="fielddoc">
<p>Start address of the receiver ring buffer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac4f75206cf9b8009cdf64a30e05b01d8"></a>volatile uint16_t</td>
<td class="fieldname">
rxRingBufferHead</td>
<td class="fielddoc">
<p>Index for the driver to store received data into ring buffer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3fc25566538e662d74eb1444598a8277"></a>size_t</td>
<td class="fieldname">
rxRingBufferSize</td>
<td class="fielddoc">
<p>Size of the ring buffer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a89b3f14260503bd82300f27872236474"></a>volatile uint16_t</td>
<td class="fieldname">
rxRingBufferTail</td>
<td class="fielddoc">
<p>Index for the user to get data from the ring buffer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a6f289c8f3bd5e967fb808de6da7f1c0c"></a>volatile uint8_t</td>
<td class="fieldname">
rxState</td>
<td class="fielddoc">
<p>RX transfer state </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab56d8f300582ce9d7f4a79729124739d"></a>uint8_t *volatile</td>
<td class="fieldname">
txData</td>
<td class="fielddoc">
<p>Address of remaining data to send. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1f9d0ac47a5cdabb34988d5d811aceaf"></a>volatile size_t</td>
<td class="fieldname">
txDataSize</td>
<td class="fielddoc">
<p>Size of the remaining data to send. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a733be3042be24bb3eb6f0c6a82d28862"></a>size_t</td>
<td class="fieldname">
txDataSizeAll</td>
<td class="fielddoc">
<p>Size of the data to send out. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4e027f3342bad321ec60b56d164eb068"></a>volatile uint8_t</td>
<td class="fieldname">
txState</td>
<td class="fielddoc">
<p>TX transfer state. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a2e294dd14122c554baa0665072b4ca7a"></a>void *</td>
<td class="fieldname">
userData</td>
<td class="fielddoc">
<p>LPSCI callback function parameter. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaa58d87d0b59b83414988fbb1b7c79cdb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__lpsci.html#gaa58d87d0b59b83414988fbb1b7c79cdb">_lpsci_interrupt_enable_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI interrupt configuration structure, default settings all disabled. </p>
<p>This structure contains the settings for all LPSCI interrupt configurations. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdba09ef11585639ac53f945a7a524674c47"></a>kLPSCI_LinBreakInterruptEnable&#160;</td><td class="fielddoc">
<p>LIN break detect interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdbaac1b4da30c60fd98e4f5dcdada110a38"></a>kLPSCI_RxActiveEdgeInterruptEnable&#160;</td><td class="fielddoc">
<p>RX Active Edge interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdbaea5f6ef08a50d1576b99c3aad6618fe4"></a>kLPSCI_TxDataRegEmptyInterruptEnable&#160;</td><td class="fielddoc">
<p>Transmit data register empty interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdbaacef19879d6eee40c11bd0ced8756602"></a>kLPSCI_TransmissionCompleteInterruptEnable&#160;</td><td class="fielddoc">
<p>Transmission complete interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdbaf51e3ebc1b14f13e9b4cfe4859c0a9b3"></a>kLPSCI_RxDataRegFullInterruptEnable&#160;</td><td class="fielddoc">
<p>Receiver data register full interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdbac75c2bc89795da716eda76084fe79b17"></a>kLPSCI_IdleLineInterruptEnable&#160;</td><td class="fielddoc">
<p>Idle line interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdba1b0296dd785a43396080e4167452ff54"></a>kLPSCI_RxOverrunInterruptEnable&#160;</td><td class="fielddoc">
<p>Receiver Overrun interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdba2fcadea24f1f01f6e2953ad0a96e5621"></a>kLPSCI_NoiseErrorInterruptEnable&#160;</td><td class="fielddoc">
<p>Noise error flag interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdba5354940b55c917fd282585166e8b97f6"></a>kLPSCI_FramingErrorInterruptEnable&#160;</td><td class="fielddoc">
<p>Framing error flag interrupt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa58d87d0b59b83414988fbb1b7c79cdba38b0f225428a019dff8bada27b15dc0d"></a>kLPSCI_ParityErrorInterruptEnable&#160;</td><td class="fielddoc">
<p>Parity error flag interrupt. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="gac1d1feb1e13e35beba93e7afce633e16"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__lpsci.html#gac1d1feb1e13e35beba93e7afce633e16">_lpsci_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Error codes for the LPSCI driver. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a7073247ab412c287a4ba590e9a3f1763"></a>kStatus_LPSCI_TxBusy&#160;</td><td class="fielddoc">
<p>Transmitter is busy. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a5e225b6f93a42436b01525305eb345b8"></a>kStatus_LPSCI_RxBusy&#160;</td><td class="fielddoc">
<p>Receiver is busy. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16acb9eaa06221caa3b15102135bcc58cb0"></a>kStatus_LPSCI_TxIdle&#160;</td><td class="fielddoc">
<p>Transmitter is idle. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a4d3b44544996f003e9246e4b725e1db3"></a>kStatus_LPSCI_RxIdle&#160;</td><td class="fielddoc">
<p>Receiver is idle. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16acb37b9124115df5b59a01b4311ad1243"></a>kStatus_LPSCI_FlagCannotClearManually&#160;</td><td class="fielddoc">
<p>Status flag can't be manually cleared. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a1ac38136f23a4f1ca18a86972ee51246"></a>kStatus_LPSCI_BaudrateNotSupport&#160;</td><td class="fielddoc">
<p>Baudrate is not support in current clock source </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a741410f4c0886c858378ce1ac51da0a5"></a>kStatus_LPSCI_Error&#160;</td><td class="fielddoc">
<p>Error happens on LPSCI </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a2288eb249cfe864ee29a1e53e5254f47"></a>kStatus_LPSCI_RxRingBufferOverrun&#160;</td><td class="fielddoc">
<p>LPSCI RX software ring buffer overrun. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a3d001d307f032b50fa810b1374abf4e0"></a>kStatus_LPSCI_RxHardwareOverrun&#160;</td><td class="fielddoc">
<p>LPSCI RX receiver overrun. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a24c82dc147e0ddc96f7b882a8c4d8d54"></a>kStatus_LPSCI_NoiseError&#160;</td><td class="fielddoc">
<p>LPSCI noise error. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a526b9a4050c3dcd92b53c59565dc033f"></a>kStatus_LPSCI_FramingError&#160;</td><td class="fielddoc">
<p>LPSCI framing error. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac1d1feb1e13e35beba93e7afce633e16a432958a10e6bf938ba2301f890e84a55"></a>kStatus_LPSCI_ParityError&#160;</td><td class="fielddoc">
<p>LPSCI parity error. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga581702dbe0430a177c664a5d495224be"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__lpsci.html#ga581702dbe0430a177c664a5d495224be">_lpsci_status_flag_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI status flags. </p>
<p>This provides constants for the LPSCI status flags for use in the LPSCI functions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea36464c4b39e7c08242b717978cca4217"></a>kLPSCI_TxDataRegEmptyFlag&#160;</td><td class="fielddoc">
<p>Tx data register empty flag, sets when Tx buffer is empty </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea6500e8ab15028ce548dbe9a43484fb4c"></a>kLPSCI_TransmissionCompleteFlag&#160;</td><td class="fielddoc">
<p>Transmission complete flag, sets when transmission activity complete </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea35ec5c8d6104b078fa6b01c0bee0a15e"></a>kLPSCI_RxDataRegFullFlag&#160;</td><td class="fielddoc">
<p>Rx data register full flag, sets when the receive data buffer is full </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea6d471331d3bea279810a621312ae3840"></a>kLPSCI_IdleLineFlag&#160;</td><td class="fielddoc">
<p>Idle line detect flag, sets when idle line detected </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bead2330d54a37be33a8732aa4d6fe3e288"></a>kLPSCI_RxOverrunFlag&#160;</td><td class="fielddoc">
<p>Rx Overrun, sets when new data is received before data is read from receive register </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea621a62a970f875d220befad233ad6a58"></a>kLPSCI_NoiseErrorFlag&#160;</td><td class="fielddoc">
<p>Rx takes 3 samples of each received bit. If any of these samples differ, noise flag sets </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea6923b3152838210054bfc4791d8ac43c"></a>kLPSCI_FramingErrorFlag&#160;</td><td class="fielddoc">
<p>Frame error flag, sets if logic 0 was detected where stop bit expected </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224beacb0ea6d4b7af5a744a5901f0b1b7520f"></a>kLPSCI_ParityErrorFlag&#160;</td><td class="fielddoc">
<p>If parity enabled, sets upon parity error detection </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea7142ca52e95d1881d6c0d1c764247226"></a>kLPSCI_LinBreakFlag&#160;</td><td class="fielddoc">
<p>LIN break detect interrupt flag, sets when LIN break char detected and LIN circuit enabled </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea921c671d6a1a82e189977db8f44973d1"></a>kLPSCI_RxActiveEdgeFlag&#160;</td><td class="fielddoc">
<p>Rx pin active edge interrupt flag, sets when active edge detected </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224beaa7a30af77f7c1c6725fa055aa4c466b2"></a>kLPSCI_RxActiveFlag&#160;</td><td class="fielddoc">
<p>Receiver Active Flag (RAF), sets at beginning of valid start bit </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea3ee691a573b941c34ab5cfe3bcf81b28"></a>kLPSCI_NoiseErrorInRxDataRegFlag&#160;</td><td class="fielddoc">
<p>NOISY bit, sets if noise detected in current data word </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga581702dbe0430a177c664a5d495224bea3132ea82244866881f523c3bcd55c198"></a>kLPSCI_ParityErrorInRxDataRegFlag&#160;</td><td class="fielddoc">
<p>PARITYE bit, sets if noise detected in current data word </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga914e25b9b58c086d6ee790f7bbe96de1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__lpsci.html#ga914e25b9b58c086d6ee790f7bbe96de1">lpsci_parity_mode_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI parity mode. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga914e25b9b58c086d6ee790f7bbe96de1a702ea1a55bf3eb879fd5d817cd95a696"></a>kLPSCI_ParityDisabled&#160;</td><td class="fielddoc">
<p>Parity disabled </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga914e25b9b58c086d6ee790f7bbe96de1aa95669109142cc4f43e257e702ddd6fe"></a>kLPSCI_ParityEven&#160;</td><td class="fielddoc">
<p>Parity enabled, type even, bit setting: PE|PT = 10 </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga914e25b9b58c086d6ee790f7bbe96de1afa5d5edd522b4ade258f3792901927c1"></a>kLPSCI_ParityOdd&#160;</td><td class="fielddoc">
<p>Parity enabled, type odd, bit setting: PE|PT = 11 </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga1e71c77aa3c6663fa13a36614ecd5218"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__lpsci.html#ga1e71c77aa3c6663fa13a36614ecd5218">lpsci_stop_bit_count_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI stop bit count. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga1e71c77aa3c6663fa13a36614ecd5218a807eb926b7cd6cc5d25a34689e16075f"></a>kLPSCI_OneStopBit&#160;</td><td class="fielddoc">
<p>One stop bit </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga1e71c77aa3c6663fa13a36614ecd5218a12446eb122de9a901036aabab33d4bdc"></a>kLPSCI_TwoStopBit&#160;</td><td class="fielddoc">
<p>Two stop bits </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga9c1cc2d653394f88a5f9a4c3a6c5f498"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_Deinit </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deinitializes an LPSCI instance. </p>
<p>This function waits for TX complete, disables TX and RX, and disables the LPSCI clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1864d45e565615e20382215869b51ea7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_DisableInterrupts </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disables the LPSCI interrupt according to a provided mask. </p>
<p>This function disables the LPSCI interrupts according to a provided mask. The mask is a logical OR of enumeration members. See _lpsci_interrupt_enable. For example, to disable TX empty interrupt and RX full interrupt: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;LPSCI_DisableInterrupts(UART0,kLPSCI_TxDataRegEmptyInterruptEnable | kLPSCI_RxDataRegFullInterruptEnable);</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to disable. Logical OR of _LPSCI_interrupt_enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae7cd8c6678f9fe56adb5df2d8e3bc121"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_EnableInterrupts </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables an LPSCI interrupt according to a provided mask. </p>
<p>This function enables the LPSCI interrupts according to a provided mask. The mask is a logical OR of enumeration members. See _lpsci_interrupt_enable. For example, to enable the TX empty interrupt and RX full interrupt: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;LPSCI_EnableInterrupts(UART0,kLPSCI_TxDataRegEmptyInterruptEnable | kLPSCI_RxDataRegFullInterruptEnable);</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">mask</td><td>The interrupts to enable. Logical OR of _lpsci_interrupt_enable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9ba0aa7051a89771bececd06dbf74bb1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void LPSCI_EnableRx </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the LPSCI receiver. </p>
<p>This function enables or disables the LPSCI receiver.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0f55bc5c5ac9e88598da3b57b8f80d29"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void LPSCI_EnableRxDMA </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the LPSCI receiver DMA. </p>
<p>This function enables or disables the receiver data register full flag, S1[RDRF], to generate DMA requests.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga63bf1a445a943202ea7c86a90141f56c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void LPSCI_EnableTx </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disables the LPSCI transmitter. </p>
<p>This function enables or disables the LPSCI transmitter.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5ccc358115e35a4ebf86e6550352e0c7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void LPSCI_EnableTxDMA </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Enables or disable LPSCI transmitter DMA request. </p>
<p>This function enables or disables the transmit data register empty flag, S1[TDRE], to generate DMA requests.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false to disable. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa39e1eb0307e57d24a3305f86ba5a7d1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t LPSCI_GetDataRegisterAddress </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the LPSCI data register address. </p>
<p>This function returns the LPSCI data register address, which is mainly used by DMA/eDMA case.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LPSCI data register address which are used both by transmitter and receiver. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4246a6f2a19ea028917059e372592b7d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__lpsci.html#structlpsci__config__t">lpsci_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the default configuration structure and saves the configuration to a user-provided pointer. </p>
<p>This function initializes the LPSCI configure structure to default value. the default value are: lpsciConfig-&gt;baudRate_Bps = 115200U; lpsciConfig-&gt;parityMode = kLPSCI_ParityDisabled; lpsciConfig-&gt;stopBitCount = kLPSCI_OneStopBit; lpsciConfig-&gt;enableTx = false; lpsciConfig-&gt;enableRx = false;</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to configuration structure. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf1fb22a4d3ce4827ff8c9feb0b1e7988"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t LPSCI_GetEnabledInterrupts </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the enabled LPSCI interrupts. </p>
<p>This function gets the enabled LPSCI interrupts, which are returned as the logical OR value of the enumerators _lpsci_interrupt_enable. To check a specific interrupts enable status, compare the return value to the enumerators in _LPSCI_interrupt_enable. For example, to check whether TX empty interrupt is enabled: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;uint32_t enabledInterrupts = LPSCI_GetEnabledInterrupts(UART0);</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;if (kLPSCI_TxDataRegEmptyInterruptEnable &amp; enabledInterrupts)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; ...</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;}</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LPSCI interrupt flags which are logical OR of the enumerators in _LPSCI_interrupt_enable. </dd></dl>
</div>
</div>
<a class="anchor" id="gadece7c20e6564c0a726f39862b5e8fdd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t LPSCI_GetStatusFlags </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets LPSCI status flags. </p>
<p>This function gets all LPSCI status flags. The flags are returned as the logical OR value of the enumerators _lpsci_flags. To check a specific status, compare the return value to the enumerators in _LPSCI_flags. For example, to check whether the TX is empty: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;if (kLPSCI_TxDataRegEmptyFlag | LPSCI_GetStatusFlags(UART0))</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;{</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; ...</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;}</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>LPSCI status flags which are ORed by the enumerators in the _lpsci_flags. </dd></dl>
</div>
</div>
<a class="anchor" id="gaba2b35edef52515ce868e0e2f7fade81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_Init </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__lpsci.html#structlpsci__config__t">lpsci_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes an LPSCI instance with the user configuration structure and the peripheral clock. </p>
<p>This function configures the LPSCI module with user-defined settings. The user can configure the configuration structure and can also get the default configuration by calling the <a class="el" href="group__lpsci.html#ga4246a6f2a19ea028917059e372592b7d" title="Gets the default configuration structure and saves the configuration to a user-provided pointer...">LPSCI_GetDefaultConfig()</a> function. Example below shows how to use this API to configure the LPSCI. </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;lpsci_config_t lpsciConfig;</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;lpsciConfig.baudRate_Bps = 115200U;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;lpsciConfig.parityMode = kLPSCI_ParityDisabled;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;lpsciConfig.stopBitCount = kLPSCI_OneStopBit;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;LPSCI_Init(UART0, &amp;lpsciConfig, 20000000U);</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">config</td><td>Pointer to user-defined configuration structure. </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>LPSCI clock source frequency in HZ. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_LPSCI_BaudrateNotSupport</td><td>Baudrate is not support in current clock source. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Status LPSCI initialize succeed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga90ac0899c71c47fdff8db3a5752a7130"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint8_t LPSCI_ReadByte </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reads the RX data register. </p>
<p>This function polls the RX register, waits for the RX register to be full, and reads data from the TX register.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Data read from RX data register. </dd></dl>
</div>
</div>
<a class="anchor" id="ga58f4b156863ea675c4143882208a8736"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_SetBaudRate </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>baudRate_Bps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>srcClock_Hz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the LPSCI instance baudrate. </p>
<p>This function configures the LPSCI module baudrate. This function is used to update the LPSCI module baudrate after the LPSCI module is initialized with the LPSCI_Init. </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;LPSCI_SetBaudRate(UART0, 115200U, 20000000U);</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">baudRate_Bps</td><td>LPSCI baudrate to be set. </td></tr>
<tr><td class="paramname">srcClock_Hz</td><td>LPSCI clock source frequency in HZ. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_LPSCI_BaudrateNotSupport</td><td>Baudrate is not supported in the current clock source. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Status LPSCI initialize succeeded. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gabc500f220e7d1dcf00baddf6337d31ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferAbortReceive </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Aborts interrupt driven data receiving. </p>
<p>This function aborts interrupt driven data receiving.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafde36882901dc0a2fed8ffe42a648ecd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferAbortSend </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Aborts the interrupt-driven data transmit. </p>
<p>This function aborts the interrupt driven data send.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2e327eede7ae083807a022a3e83a0443"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferCreateHandle </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lpsci.html#ga089281ce28e5d8065f4af98a66e12b12">lpsci_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>userData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the LPSCI handle. </p>
<p>This function initializes the LPSCI handle, which can be used for other LPSCI transactional APIs. Usually, for a specified LPSCI instance, call this API once to get the initialized handle.</p>
<p>LPSCI driver supports the "background" receiving, which means that the user can set up an RX ring buffer optionally. Data received are stored into the ring buffer even when the user doesn't call the <a class="el" href="group__lpsci.html#gae1fc41709768728caf4b29fd2ab889e7" title="Receives buffer of data using the interrupt method. ">LPSCI_TransferReceiveNonBlocking()</a> API. If there is already data received in the ring buffer, get the received data from the ring buffer directly. The ring buffer is disabled if pass NULL as <code>ringBuffer</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">ringBuffer</td><td>Start address of ring buffer for background receiving. Pass NULL to disable the ring buffer. </td></tr>
<tr><td class="paramname">ringBufferSize</td><td>size of the ring buffer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga56e94947fb4c3766a582808193a52903"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_TransferGetReceiveCount </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#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>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of bytes that have been received. </p>
<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">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">count</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_NoTransferInProgress</td><td>No receive in progress. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>Parameter is invalid. </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="gad2eb23791ceb822e4d93d11af4ce9ee8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_TransferGetSendCount </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#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>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the number of bytes that have been written to LPSCI TX register. </p>
<p>This function gets the number of bytes that have been written to LPSCI TX register by interrupt method.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">count</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_NoTransferInProgress</td><td>No send in progress. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>Parameter is invalid. </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="ga4d6e29854dad94ef7c88ff5747a515af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferHandleErrorIRQ </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI Error IRQ handle function. </p>
<p>This function handle the LPSCI error IRQ request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf279ff1dadb04bb817242c8be3c31acf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferHandleIRQ </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>LPSCI IRQ handle function. </p>
<p>This function handles the LPSCI transmit and receive IRQ request.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga56786a698a5204ca9ea9475bb0ab1ea7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_TransferReceiveBlocking </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</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>Reads the RX register using a non-blocking method. </p>
<p>This function reads data from the TX register directly. The upper layer must ensure that the RX register is full before calling this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </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_LPSCI_RxHardwareOverrun</td><td>Receiver overrun happened while receiving data. </td></tr>
<tr><td class="paramname">kStatus_LPSCI_NoiseError</td><td>Noise error happened while receiving data. </td></tr>
<tr><td class="paramname">kStatus_LPSCI_FramingError</td><td>Framing error happened while receiving data. </td></tr>
<tr><td class="paramname">kStatus_LPSCI_ParityError</td><td>Parity error happened while receiving data. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Successfully received all data. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae1fc41709768728caf4b29fd2ab889e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_TransferReceiveNonBlocking </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lpsci.html#structlpsci__transfer__t">lpsci_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>receivedBytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Receives buffer of data using the interrupt method. </p>
<p>This function receives data using the interrupt method. This is a non-blocking function which returns without waiting for all data to be received. If the RX ring buffer is used and not empty, the data in ring buffer is copied and the parameter <code>receivedBytes</code> shows how many bytes are copied from the ring buffer. After copying, if the data in ring buffer is not enough to read, the receive request is saved by the LPSCI driver. When new data arrives, the receive request is serviced first. When all data is received, the LPSCI driver notifies the upper layer through a callback function and passes the status parameter <a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16a4d3b44544996f003e9246e4b725e1db3">kStatus_LPSCI_RxIdle</a>. For example, the upper layer needs 10 bytes but there are only 5 bytes in the ring buffer. The 5 bytes are copied to the xfer-&gt;data and the function returns with the parameter <code>receivedBytes</code> set to 5. For the remaining 5 bytes, newly arrived data is saved from the xfer-&gt;data[5]. When 5 bytes are received, the LPSCI driver notifies the upper layer. If the RX ring buffer is not enabled, this function enables the RX and RX interrupt to receive data to the xfer-&gt;data. When all data is received, the upper layer is notified.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">xfer</td><td>lpsci transfer structure. See <a class="el" href="group__lpsci.html#structlpsci__transfer__t" title="LPSCI transfer structure. ">lpsci_transfer_t</a>. </td></tr>
<tr><td class="paramname">receivedBytes</td><td>Bytes received from the ring buffer directly. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully queue the transfer into transmit queue. </td></tr>
<tr><td class="paramname">kStatus_LPSCI_RxBusy</td><td>Previous receive request is not finished. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>Invalid argument. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga016076dd8bc458c5753df306519324e6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferSendBlocking </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</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>Writes to the TX register using a blocking method. </p>
<p>This function polls the TX register, waits for the TX register empty, and writes data to the TX buffer.</p>
<dl class="section note"><dt>Note</dt><dd>This function does not check whether all the data has been sent out to bus, so before disable TX, check kLPSCI_TransmissionCompleteFlag to ensure the TX is finished.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </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>
</div>
</div>
<a class="anchor" id="ga998f33848590a21b5351d2536c64c116"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPSCI_TransferSendNonBlocking </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__lpsci.html#structlpsci__transfer__t">lpsci_transfer_t</a> *&#160;</td>
<td class="paramname"><em>xfer</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Transmits a buffer of data using the interrupt method. </p>
<p>This function sends data using the 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 ISR, LPSCI driver calls the callback function and passes the <a class="el" href="group__lpsci.html#ggac1d1feb1e13e35beba93e7afce633e16acb9eaa06221caa3b15102135bcc58cb0">kStatus_LPSCI_TxIdle</a> as status parameter.</p>
<dl class="section note"><dt>Note</dt><dd>The kStatus_LPSCI_TxIdle is passed to the upper layer when all data is written to the TX register. However, it does not ensure that all data is sent out. Before disabling the TX, check the kLPSCI_TransmissionCompleteFlag to ensure that the TX is complete.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">xfer</td><td>LPSCI transfer structure, refer to #LPSCI_transfer_t. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_Success</td><td>Successfully start the data transmission. </td></tr>
<tr><td class="paramname">kStatus_LPSCI_TxBusy</td><td>Previous transmission still not finished, data not all written to the TX register. </td></tr>
<tr><td class="paramname">kStatus_InvalidArgument</td><td>Invalid argument. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad13abbc5047bf0489bc17bce8480e1af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferStartRingBuffer </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#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>ringBuffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>ringBufferSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets up the RX ring buffer. </p>
<p>This function sets up the RX ring buffer to a specific LPSCI handle.</p>
<p>When the RX ring buffer is used, data received is stored into the ring buffer even when the user doesn't call the <a class="el" href="group__lpsci.html#gae1fc41709768728caf4b29fd2ab889e7" title="Receives buffer of data using the interrupt method. ">LPSCI_TransferReceiveNonBlocking()</a> API. If there is already data received in the ring buffer, the user can get the received data from the ring buffer directly.</p>
<dl class="section note"><dt>Note</dt><dd>When using the RX ring buffer, one byte is reserved for internal use. In other words, if <code>ringBufferSize</code> is 32, only 31 bytes are used for saving data.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
<tr><td class="paramname">ringBuffer</td><td>Start address of ring buffer for background receiving. Pass NULL to disable the ring buffer. </td></tr>
<tr><td class="paramname">ringBufferSize</td><td>size of the ring buffer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga44c795eb194dad914d8394d99c1d4552"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void LPSCI_TransferStopRingBuffer </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">lpsci_handle_t *&#160;</td>
<td class="paramname"><em>handle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Aborts the background transfer and uninstalls the ring buffer. </p>
<p>This function aborts the background transfer and uninstalls the ringbuffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">handle</td><td>LPSCI handle pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaa13d00aa1d674d1132909792912ec92c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void LPSCI_WriteByte </td>
<td>(</td>
<td class="paramtype">UART0_Type *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Writes to the TX register. </p>
<p>This function writes data to the TX register directly. The upper layer must ensure that the TX register is empty before calling this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>LPSCI peripheral base address. </td></tr>
<tr><td class="paramname">data</td><td>Data write to TX register. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Mon Mar 7 2016 16:48:23 for Kinetis Bootloader by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>