<!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>SDK3.5: UART_EX</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="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="projectalign" style="padding-left: 0.5em;"> <div id="projectname">SDK3.5 </div> <div id="projectbrief">This document shows Ameba SDK 3.5 APIs</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>Main Page</span></a></li> <li class="current"><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</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 --> <!-- 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="#enumval-members">Enumerator</a> </div> <div class="headertitle"> <div class="title">UART_EX<div class="ingroups"><a class="el" href="group__sdk.html">Ameba SDK</a> » <a class="el" href="group__hal.html">HAL</a></div></div> </div> </div><!--header--> <div class="contents"> <p>uart extended functions <a href="#details">More...</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a> Ameba Common</h2></td></tr> <tr class="memitem:gaae69ac776dfba76a2d06c1f3bb283851"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gaae69ac776dfba76a2d06c1f3bb283851">SerialFifoLevel</a> { <a class="el" href="group__uart__ex.html#ggaae69ac776dfba76a2d06c1f3bb283851a629815658176163a8acae1f0fde5203c">FifoLv1Byte</a> =0, <a class="el" href="group__uart__ex.html#ggaae69ac776dfba76a2d06c1f3bb283851a6bb06d5ac76c6dd6fc9b533932f39678">FifoLvQuarter</a> =1, <a class="el" href="group__uart__ex.html#ggaae69ac776dfba76a2d06c1f3bb283851ad3c35e3fc540651e7ab491d171f1ee3e">FifoLvHalf</a> =2, <a class="el" href="group__uart__ex.html#ggaae69ac776dfba76a2d06c1f3bb283851a1e520509c366e49410c8a774a63e14d1">FifoLvFull</a> =3 }<tr class="memdesc:gaae69ac776dfba76a2d06c1f3bb283851"><td class="mdescLeft"> </td><td class="mdescRight">Define RX FIFO Level: RX interrupt trigger, RTS de-assert trigger. <a href="group__uart__ex.html#gaae69ac776dfba76a2d06c1f3bb283851">More...</a><br /></td></tr> </td></tr> <tr class="separator:gaae69ac776dfba76a2d06c1f3bb283851"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafc1607fe9a1a038b2d535a05a6baa214"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gafc1607fe9a1a038b2d535a05a6baa214">serial_clear_tx</a> (serial_t *obj)</td></tr> <tr class="memdesc:gafc1607fe9a1a038b2d535a05a6baa214"><td class="mdescLeft"> </td><td class="mdescRight">Clear TX fifo. <a href="#gafc1607fe9a1a038b2d535a05a6baa214">More...</a><br /></td></tr> <tr class="separator:gafc1607fe9a1a038b2d535a05a6baa214"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7d4d77c21dd065c49093cab3ab06f587"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga7d4d77c21dd065c49093cab3ab06f587">serial_clear_rx</a> (serial_t *obj)</td></tr> <tr class="memdesc:ga7d4d77c21dd065c49093cab3ab06f587"><td class="mdescLeft"> </td><td class="mdescRight">Clear RX fifo. <a href="#ga7d4d77c21dd065c49093cab3ab06f587">More...</a><br /></td></tr> <tr class="separator:ga7d4d77c21dd065c49093cab3ab06f587"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac1abef956bdc700f579be4ce93d5dd50"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gac1abef956bdc700f579be4ce93d5dd50">serial_send_comp_handler</a> (serial_t *obj, void *handler, uint32_t id)</td></tr> <tr class="memdesc:gac1abef956bdc700f579be4ce93d5dd50"><td class="mdescLeft"> </td><td class="mdescRight">set TX complete handler. <a href="#gac1abef956bdc700f579be4ce93d5dd50">More...</a><br /></td></tr> <tr class="separator:gac1abef956bdc700f579be4ce93d5dd50"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga141a535c230477538e2ce910c1e78031"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga141a535c230477538e2ce910c1e78031">serial_recv_comp_handler</a> (serial_t *obj, void *handler, uint32_t id)</td></tr> <tr class="memdesc:ga141a535c230477538e2ce910c1e78031"><td class="mdescLeft"> </td><td class="mdescRight">set RX complete handler. <a href="#ga141a535c230477538e2ce910c1e78031">More...</a><br /></td></tr> <tr class="separator:ga141a535c230477538e2ce910c1e78031"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9537cdeccedefd4f3e98c7fde85802ac"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga9537cdeccedefd4f3e98c7fde85802ac">serial_recv_blocked</a> (serial_t *obj, char *prxbuf, uint32_t len, uint32_t timeout_ms)</td></tr> <tr class="memdesc:ga9537cdeccedefd4f3e98c7fde85802ac"><td class="mdescLeft"> </td><td class="mdescRight">recv target length data use poll mode, with time out. <a href="#ga9537cdeccedefd4f3e98c7fde85802ac">More...</a><br /></td></tr> <tr class="separator:ga9537cdeccedefd4f3e98c7fde85802ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga42783242908dd4ac6f6920498c272a0e"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga42783242908dd4ac6f6920498c272a0e">serial_send_blocked</a> (serial_t *obj, char *ptxbuf, uint32_t len, uint32_t timeout_ms)</td></tr> <tr class="memdesc:ga42783242908dd4ac6f6920498c272a0e"><td class="mdescLeft"> </td><td class="mdescRight">send target length data use poll mode, with time out. <a href="#ga42783242908dd4ac6f6920498c272a0e">More...</a><br /></td></tr> <tr class="separator:ga42783242908dd4ac6f6920498c272a0e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa1200de726e3504be3ca71734168039e"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gaa1200de726e3504be3ca71734168039e">serial_recv_stream</a> (serial_t *obj, char *prxbuf, uint32_t len)</td></tr> <tr class="memdesc:gaa1200de726e3504be3ca71734168039e"><td class="mdescLeft"> </td><td class="mdescRight">recv target length data use interrupt mode. <a href="#gaa1200de726e3504be3ca71734168039e">More...</a><br /></td></tr> <tr class="separator:gaa1200de726e3504be3ca71734168039e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaabc9455f66244de4aafa0b0d11584547"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gaabc9455f66244de4aafa0b0d11584547">serial_send_stream</a> (serial_t *obj, char *ptxbuf, uint32_t len)</td></tr> <tr class="memdesc:gaabc9455f66244de4aafa0b0d11584547"><td class="mdescLeft"> </td><td class="mdescRight">send target length data use interrupt mode. <a href="#gaabc9455f66244de4aafa0b0d11584547">More...</a><br /></td></tr> <tr class="separator:gaabc9455f66244de4aafa0b0d11584547"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga29baa7dd4894851f210b6ac3952b7b10"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga29baa7dd4894851f210b6ac3952b7b10">serial_recv_stream_dma</a> (serial_t *obj, char *prxbuf, uint32_t len)</td></tr> <tr class="memdesc:ga29baa7dd4894851f210b6ac3952b7b10"><td class="mdescLeft"> </td><td class="mdescRight">recv target length data use DMA mode. <a href="#ga29baa7dd4894851f210b6ac3952b7b10">More...</a><br /></td></tr> <tr class="separator:ga29baa7dd4894851f210b6ac3952b7b10"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga73bdb06d7c52fb381916bf6d11666b73"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga73bdb06d7c52fb381916bf6d11666b73">serial_send_stream_dma</a> (serial_t *obj, char *ptxbuf, uint32_t len)</td></tr> <tr class="memdesc:ga73bdb06d7c52fb381916bf6d11666b73"><td class="mdescLeft"> </td><td class="mdescRight">send target length data use DMA mode. <a href="#ga73bdb06d7c52fb381916bf6d11666b73">More...</a><br /></td></tr> <tr class="separator:ga73bdb06d7c52fb381916bf6d11666b73"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7582bf8f1eb4d62350a7b441bc54e984"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga7582bf8f1eb4d62350a7b441bc54e984">serial_send_stream_abort</a> (serial_t *obj)</td></tr> <tr class="memdesc:ga7582bf8f1eb4d62350a7b441bc54e984"><td class="mdescLeft"> </td><td class="mdescRight">stop the sream or steam_dma RX. <a href="#ga7582bf8f1eb4d62350a7b441bc54e984">More...</a><br /></td></tr> <tr class="separator:ga7582bf8f1eb4d62350a7b441bc54e984"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad88e76ca3c88a04021a950fca32d5e19"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#gad88e76ca3c88a04021a950fca32d5e19">serial_recv_stream_abort</a> (serial_t *obj)</td></tr> <tr class="memdesc:gad88e76ca3c88a04021a950fca32d5e19"><td class="mdescLeft"> </td><td class="mdescRight">stop the sream or steam_dma TX. <a href="#gad88e76ca3c88a04021a950fca32d5e19">More...</a><br /></td></tr> <tr class="separator:gad88e76ca3c88a04021a950fca32d5e19"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga722d19856b309bb28659ee5c1361a6c5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga722d19856b309bb28659ee5c1361a6c5">serial_disable</a> (serial_t *obj)</td></tr> <tr class="memdesc:ga722d19856b309bb28659ee5c1361a6c5"><td class="mdescLeft"> </td><td class="mdescRight">disable uart clock and function. <a href="#ga722d19856b309bb28659ee5c1361a6c5">More...</a><br /></td></tr> <tr class="separator:ga722d19856b309bb28659ee5c1361a6c5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9ceb6bf74153d664fb8aec8aaa204f4f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga9ceb6bf74153d664fb8aec8aaa204f4f">serial_enable</a> (serial_t *obj)</td></tr> <tr class="memdesc:ga9ceb6bf74153d664fb8aec8aaa204f4f"><td class="mdescLeft"> </td><td class="mdescRight">enable uart clock and function. <a href="#ga9ceb6bf74153d664fb8aec8aaa204f4f">More...</a><br /></td></tr> <tr class="separator:ga9ceb6bf74153d664fb8aec8aaa204f4f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3d607d84c16fa477865377f5b2ab83a1"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga3d607d84c16fa477865377f5b2ab83a1">serial_recv_stream_timeout</a> (serial_t *obj, char *prxbuf, uint32_t len, uint32_t timeout_ms, void *force_cs)</td></tr> <tr class="memdesc:ga3d607d84c16fa477865377f5b2ab83a1"><td class="mdescLeft"> </td><td class="mdescRight">recv target length data use interrupt mode. <a href="#ga3d607d84c16fa477865377f5b2ab83a1">More...</a><br /></td></tr> <tr class="separator:ga3d607d84c16fa477865377f5b2ab83a1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2007e2b9e30b78340100d2bc100d75fd"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__uart__ex.html#ga2007e2b9e30b78340100d2bc100d75fd">serial_recv_stream_dma_timeout</a> (serial_t *obj, char *prxbuf, uint32_t len, uint32_t timeout_ms, void *force_cs)</td></tr> <tr class="memdesc:ga2007e2b9e30b78340100d2bc100d75fd"><td class="mdescLeft"> </td><td class="mdescRight">recv target length data use DMA mode. <a href="#ga2007e2b9e30b78340100d2bc100d75fd">More...</a><br /></td></tr> <tr class="separator:ga2007e2b9e30b78340100d2bc100d75fd"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>uart extended functions </p> <h2 class="groupheader">Enumeration Type Documentation</h2> <a class="anchor" id="gaae69ac776dfba76a2d06c1f3bb283851"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group__uart__ex.html#gaae69ac776dfba76a2d06c1f3bb283851">SerialFifoLevel</a></td> </tr> </table> </div><div class="memdoc"> <p>Define RX FIFO Level: RX interrupt trigger, RTS de-assert trigger. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggaae69ac776dfba76a2d06c1f3bb283851a629815658176163a8acae1f0fde5203c"></a>FifoLv1Byte </td><td class="fielddoc"> <p>1-byte </p> </td></tr> <tr><td class="fieldname"><a class="anchor" id="ggaae69ac776dfba76a2d06c1f3bb283851a6bb06d5ac76c6dd6fc9b533932f39678"></a>FifoLvQuarter </td><td class="fielddoc"> <p>4-byte </p> </td></tr> <tr><td class="fieldname"><a class="anchor" id="ggaae69ac776dfba76a2d06c1f3bb283851ad3c35e3fc540651e7ab491d171f1ee3e"></a>FifoLvHalf </td><td class="fielddoc"> <p>8-byte </p> </td></tr> <tr><td class="fieldname"><a class="anchor" id="ggaae69ac776dfba76a2d06c1f3bb283851a1e520509c366e49410c8a774a63e14d1"></a>FifoLvFull </td><td class="fielddoc"> <p>14-byte </p> </td></tr> </table> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="ga7d4d77c21dd065c49093cab3ab06f587"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_clear_rx </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Clear RX fifo. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gafc1607fe9a1a038b2d535a05a6baa214"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_clear_tx </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Clear TX fifo. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga722d19856b309bb28659ee5c1361a6c5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_disable </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>disable uart clock and function. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga9ceb6bf74153d664fb8aec8aaa204f4f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_enable </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>enable uart clock and function. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga9537cdeccedefd4f3e98c7fde85802ac"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_blocked </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>prxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>timeout_ms</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>recv target length data use poll mode, with time out. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">ptxbuf</td><td>buffer to be written to Tx FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be recv. </td></tr> <tr><td class="paramname">timeout_ms</td><td>polling time before timeout. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>return received bytes count </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is synchronous API. </dd></dl> </div> </div> <a class="anchor" id="ga141a535c230477538e2ce910c1e78031"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_recv_comp_handler </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>set RX complete handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">handler</td><td>RX complete callback function. </td></tr> <tr><td class="paramname">id</td><td>RX complete callback function parameter. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is used when asynchronous API is used. </dd></dl> </div> </div> <a class="anchor" id="gaa1200de726e3504be3ca71734168039e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_stream </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>prxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>recv target length data use interrupt mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">prxbuf</td><td>buffer to save data read from UART FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be read. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> <a class="anchor" id="gad88e76ca3c88a04021a950fca32d5e19"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_stream_abort </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>stop the sream or steam_dma TX. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga29baa7dd4894851f210b6ac3952b7b10"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_stream_dma </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>prxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>recv target length data use DMA mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">prxbuf</td><td>buffer to save data read from UART FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be read. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> <a class="anchor" id="ga2007e2b9e30b78340100d2bc100d75fd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_stream_dma_timeout </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>prxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>timeout_ms</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>force_cs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>recv target length data use DMA mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">prxbuf</td><td>buffer to save data read from UART FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be recv. </td></tr> <tr><td class="paramname">timeout_ms</td><td>polling time before timeout. </td></tr> <tr><td class="paramname">force_cs</td><td>forcing context switch function. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>the byte count received before timeout, or error(<0) </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> <a class="anchor" id="ga3d607d84c16fa477865377f5b2ab83a1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_recv_stream_timeout </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>prxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>timeout_ms</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>force_cs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>recv target length data use interrupt mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">prxbuf</td><td>buffer to save data read from UART FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be recv. </td></tr> <tr><td class="paramname">timeout_ms</td><td>polling time before timeout. </td></tr> <tr><td class="paramname">force_cs</td><td>forcing context switch function. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>the byte count received before timeout, or error(<0) </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> <a class="anchor" id="ga42783242908dd4ac6f6920498c272a0e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_send_blocked </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ptxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>timeout_ms</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>send target length data use poll mode, with time out. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">ptxbuf</td><td>buffer to be written to Tx FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be send. </td></tr> <tr><td class="paramname">timeout_ms</td><td>polling time before timeout. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>transmitted bytes count </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is synchronous API. </dd></dl> </div> </div> <a class="anchor" id="gac1abef956bdc700f579be4ce93d5dd50"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void serial_send_comp_handler </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>handler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>set TX complete handler. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">handler</td><td>TX complete callback function. </td></tr> <tr><td class="paramname">id</td><td>TX complete callback function parameter. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname">none</td><td></td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is used when asynchronous API is used. </dd></dl> </div> </div> <a class="anchor" id="gaabc9455f66244de4aafa0b0d11584547"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_send_stream </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ptxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>send target length data use interrupt mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">ptxbuf</td><td>buffer to be written to Tx FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be send. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> <a class="anchor" id="ga7582bf8f1eb4d62350a7b441bc54e984"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_send_stream_abort </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>stop the sream or steam_dma RX. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga73bdb06d7c52fb381916bf6d11666b73"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t serial_send_stream_dma </td> <td>(</td> <td class="paramtype">serial_t * </td> <td class="paramname"><em>obj</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ptxbuf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"><em>len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>send target length data use DMA mode. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">obj</td><td>uart object define in application software. </td></tr> <tr><td class="paramname">ptxbuf</td><td>buffer to be written to Tx FIFO. </td></tr> <tr><td class="paramname">len</td><td>number of data to be send. </td></tr> </table> </dd> </dl> <dl class="retval"><dt>Return values</dt><dd> <table class="retval"> <tr><td class="paramname"></td><td>HAL_Status </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>this function is asynchronous API. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>