]> Git Repo - pico-vscode.git/blob - web/docs/group__hardware__uart.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__hardware__uart.html
1 <!-- HTML header for doxygen 1.8.20-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5         <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6         <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7         <meta name="generator" content="Doxygen 1.9.4"/>
8         <meta name="viewport" content="width=device-width, initial-scale=1"/>
9         <title>Raspberry Pi Pico SDK: hardware_uart</title>
10         <!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
11         <script type="text/javascript" src="jquery.js"></script>
12         <script type="text/javascript" src="dynsections.js"></script>
13         <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17         <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/searchdata.js"></script>
19 <script type="text/javascript" src="search/search.js"></script>
20     <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
21         <link href="doxygen.css" rel="stylesheet" type="text/css" />
22         <link href="normalise.css" rel="stylesheet" type="text/css"/>
23 <link href="main.css" rel="stylesheet" type="text/css"/>
24 <link href="styles.css" rel="stylesheet" type="text/css"/>
25 </head>
26 <body>
27         <div class="navigation-mobile">
28                 <div class="logo--mobile">
29                         <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
30                 </div>
31                 <div class="navigation-toggle">
32                         <span class="line-1"></span>
33                         <span class="line-2">
34                                 <p>Menu Toggle</p>
35                         </span>
36                         <span class="line-3"></span>
37                 </div>
38         </div>
39         <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40                 <div class="logo">
41                         <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42                         <span style="display: inline-block; margin-top: 10px;">
43                                 v2.0.0
44                         </span>
45                 </div>
46                 <div class="navigation-footer">
47                         <img src="logo-mobile.svg" alt="Raspberry Pi">
48                         <a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
49                 </div>
50 <!--            <div class="search">
51                         <form>
52                                 <input type="search" name="search" id="search" placeholder="Search">
53                                 <input type="submit" value="Search">
54                         </form>
55                 </div> -->
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
60 /* @license-end */
61 </script>
62 <script type="text/javascript" src="menudata.js"></script>
63 <script type="text/javascript" src="menu.js"></script>
64 <script type="text/javascript">
65 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
66 $(function() {
67   initMenu('',true,false,'search.php','Search');
68   $(document).ready(function() { init_search(); });
69 });
70 /* @license-end */
71 </script>
72 <div id="main-nav"></div>
73 </div><!-- top -->
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
75   <div id="nav-tree">
76     <div id="nav-tree-contents">
77       <div id="nav-sync" class="sync"></div>
78     </div>
79   </div>
80   <div id="splitbar" style="-moz-user-select:none;" 
81        class="ui-resizable-handle">
82   </div>
83 </div>
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__hardware__uart.html',''); initResizable(); });
87 /* @license-end */
88 </script>
89 <div id="doc-content">
90 <!-- window showing the filter options -->
91 <div id="MSearchSelectWindow"
92      onmouseover="return searchBox.OnSearchSelectShow()"
93      onmouseout="return searchBox.OnSearchSelectHide()"
94      onkeydown="return searchBox.OnSearchSelectKey(event)">
95 </div>
96
97 <!-- iframe showing the search results (closed by default) -->
98 <div id="MSearchResultsWindow">
99 <iframe src="javascript:void(0)" frameborder="0" 
100         name="MSearchResults" id="MSearchResults">
101 </iframe>
102 </div>
103
104 <div class="header">
105   <div class="summary">
106 <a href="#define-members">Macros</a> &#124;
107 <a href="#enum-members">Enumerations</a> &#124;
108 <a href="#func-members">Functions</a>  </div>
109   <div class="headertitle"><div class="title">hardware_uart<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a></div></div></div>
110 </div><!--header-->
111 <div class="contents">
112
113 <p>Hardware UART API.  
114 <a href="#details">More...</a></p>
115 <table class="memberdecls">
116 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
117 Macros</h2></td></tr>
118 <tr class="memitem:ga12815b6262573d95c8a749f64cc85284"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga12815b6262573d95c8a749f64cc85284">UART_NUM</a>(uart)</td></tr>
119 <tr class="memdesc:ga12815b6262573d95c8a749f64cc85284"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the UART number for a UART instance.  <a href="group__hardware__uart.html#ga12815b6262573d95c8a749f64cc85284">More...</a><br /></td></tr>
120 <tr class="separator:ga12815b6262573d95c8a749f64cc85284"><td class="memSeparator" colspan="2">&#160;</td></tr>
121 <tr class="memitem:gadc5c5947dc577aac3d448fdb37647927"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gadc5c5947dc577aac3d448fdb37647927">UART_INSTANCE</a>(num)</td></tr>
122 <tr class="memdesc:gadc5c5947dc577aac3d448fdb37647927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the UART instance with the given UART number.  <a href="group__hardware__uart.html#gadc5c5947dc577aac3d448fdb37647927">More...</a><br /></td></tr>
123 <tr class="separator:gadc5c5947dc577aac3d448fdb37647927"><td class="memSeparator" colspan="2">&#160;</td></tr>
124 <tr class="memitem:ga10472af6afab1cb220b5fbd4aee63a16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga10472af6afab1cb220b5fbd4aee63a16">UART_DREQ_NUM</a>(uart,  is_tx)</td></tr>
125 <tr class="memdesc:ga10472af6afab1cb220b5fbd4aee63a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="group__hardware__dma.html#ga8def0ea481095c94f3a0dd0b4fed999e">dreq_num_t</a> used for pacing DMA transfers to or from this UART instance. If is_tx is true, then it is for transfers to the UART else for transfers from the UART.  <a href="group__hardware__uart.html#ga10472af6afab1cb220b5fbd4aee63a16">More...</a><br /></td></tr>
126 <tr class="separator:ga10472af6afab1cb220b5fbd4aee63a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 <tr class="memitem:ga8b4f387572a62cc839eb004ce7c02e3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga8b4f387572a62cc839eb004ce7c02e3f">UART_CLOCK_NUM</a>(uart)</td></tr>
128 <tr class="memdesc:ga8b4f387572a62cc839eb004ce7c02e3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="group__hardware__clocks.html#ga824c11c2ae315e0b745f6dd3db936788">clock_num_t</a> of the clock for the given UART instance.  <a href="group__hardware__uart.html#ga8b4f387572a62cc839eb004ce7c02e3f">More...</a><br /></td></tr>
129 <tr class="separator:ga8b4f387572a62cc839eb004ce7c02e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <tr class="memitem:ga7bceb145d3739e3923f64584eff6db59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga7bceb145d3739e3923f64584eff6db59">UART_FUNCSEL_NUM</a>(uart,  gpio)</td></tr>
131 <tr class="memdesc:ga7bceb145d3739e3923f64584eff6db59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a> needed to select the UART function for the given UART instance on the given GPIO number.  <a href="group__hardware__uart.html#ga7bceb145d3739e3923f64584eff6db59">More...</a><br /></td></tr>
132 <tr class="separator:ga7bceb145d3739e3923f64584eff6db59"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:ga8697ddad82a2cd5d889ce819d83783e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga8697ddad82a2cd5d889ce819d83783e3">UART_IRQ_NUM</a>(uart)</td></tr>
134 <tr class="memdesc:ga8697ddad82a2cd5d889ce819d83783e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="group__hardware__irq.html#gaf30862f51b5994ffd5863176a185d137">irq_num_t</a> for processor interrupts from the given UART instance.  <a href="group__hardware__uart.html#ga8697ddad82a2cd5d889ce819d83783e3">More...</a><br /></td></tr>
135 <tr class="separator:ga8697ddad82a2cd5d889ce819d83783e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
136 <tr class="memitem:gaffef755f98d8fcec5f7b5147924fb4f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gaffef755f98d8fcec5f7b5147924fb4f9">UART_RESET_NUM</a>(uart)</td></tr>
137 <tr class="memdesc:gaffef755f98d8fcec5f7b5147924fb4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="group__hardware__resets.html#ga53804b75cce5eb3090d482b0af2a7ce0">reset_num_t</a> used to reset a given UART instance.  <a href="group__hardware__uart.html#gaffef755f98d8fcec5f7b5147924fb4f9">More...</a><br /></td></tr>
138 <tr class="separator:gaffef755f98d8fcec5f7b5147924fb4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 </table><table class="memberdecls">
140 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
141 Enumerations</h2></td></tr>
142 <tr class="memitem:ga6bcc37e31dd40c204b4ac6f6189e8878"><td class="memItemLeft" align="right" valign="top"><a id="ga6bcc37e31dd40c204b4ac6f6189e8878" name="ga6bcc37e31dd40c204b4ac6f6189e8878"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga6bcc37e31dd40c204b4ac6f6189e8878">uart_parity_t</a> { <b>UART_PARITY_NONE</b>
143 , <b>UART_PARITY_EVEN</b>
144 , <b>UART_PARITY_ODD</b>
145  }</td></tr>
146 <tr class="memdesc:ga6bcc37e31dd40c204b4ac6f6189e8878"><td class="mdescLeft">&#160;</td><td class="mdescRight">UART Parity enumeration. <br /></td></tr>
147 <tr class="separator:ga6bcc37e31dd40c204b4ac6f6189e8878"><td class="memSeparator" colspan="2">&#160;</td></tr>
148 </table><table class="memberdecls">
149 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
150 Functions</h2></td></tr>
151 <tr class="memitem:ga064c5c42afff8712a612d7ae50a58484"><td class="memItemLeft" align="right" valign="top">static uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga064c5c42afff8712a612d7ae50a58484">uart_get_index</a> (uart_inst_t *uart)</td></tr>
152 <tr class="memdesc:ga064c5c42afff8712a612d7ae50a58484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert UART instance to hardware instance number.  <a href="group__hardware__uart.html#ga064c5c42afff8712a612d7ae50a58484">More...</a><br /></td></tr>
153 <tr class="separator:ga064c5c42afff8712a612d7ae50a58484"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <tr class="memitem:gafd9aaeaae78307db7f51aa39f501b972"><td class="memItemLeft" align="right" valign="top">static uart_inst_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gafd9aaeaae78307db7f51aa39f501b972">uart_get_instance</a> (uint num)</td></tr>
155 <tr class="memdesc:gafd9aaeaae78307db7f51aa39f501b972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the UART instance from an instance number.  <a href="group__hardware__uart.html#gafd9aaeaae78307db7f51aa39f501b972">More...</a><br /></td></tr>
156 <tr class="separator:gafd9aaeaae78307db7f51aa39f501b972"><td class="memSeparator" colspan="2">&#160;</td></tr>
157 <tr class="memitem:ga460772353a17df99adaf3352115c73d5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structuart__hw__t.html">uart_hw_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga460772353a17df99adaf3352115c73d5">uart_get_hw</a> (uart_inst_t *uart)</td></tr>
158 <tr class="memdesc:ga460772353a17df99adaf3352115c73d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the real hardware UART instance from a UART instance.  <a href="group__hardware__uart.html#ga460772353a17df99adaf3352115c73d5">More...</a><br /></td></tr>
159 <tr class="separator:ga460772353a17df99adaf3352115c73d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
160 <tr class="memitem:ga5a55924eff530aff6db3b15fd872cda4"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga5a55924eff530aff6db3b15fd872cda4">uart_init</a> (uart_inst_t *uart, uint baudrate)</td></tr>
161 <tr class="memdesc:ga5a55924eff530aff6db3b15fd872cda4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise a UART.  <a href="group__hardware__uart.html#ga5a55924eff530aff6db3b15fd872cda4">More...</a><br /></td></tr>
162 <tr class="separator:ga5a55924eff530aff6db3b15fd872cda4"><td class="memSeparator" colspan="2">&#160;</td></tr>
163 <tr class="memitem:ga85b12f7d19f5087b22f26473039d2c4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga85b12f7d19f5087b22f26473039d2c4f">uart_deinit</a> (uart_inst_t *uart)</td></tr>
164 <tr class="memdesc:ga85b12f7d19f5087b22f26473039d2c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">DeInitialise a UART.  <a href="group__hardware__uart.html#ga85b12f7d19f5087b22f26473039d2c4f">More...</a><br /></td></tr>
165 <tr class="separator:ga85b12f7d19f5087b22f26473039d2c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 <tr class="memitem:gab7f2ad3380a44597d8dda42b2d2ddef9"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gab7f2ad3380a44597d8dda42b2d2ddef9">uart_set_baudrate</a> (uart_inst_t *uart, uint baudrate)</td></tr>
167 <tr class="memdesc:gab7f2ad3380a44597d8dda42b2d2ddef9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set UART baud rate.  <a href="group__hardware__uart.html#gab7f2ad3380a44597d8dda42b2d2ddef9">More...</a><br /></td></tr>
168 <tr class="separator:gab7f2ad3380a44597d8dda42b2d2ddef9"><td class="memSeparator" colspan="2">&#160;</td></tr>
169 <tr class="memitem:ga54a9e298ebec96510e324bbab01247c7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga54a9e298ebec96510e324bbab01247c7">uart_set_hw_flow</a> (uart_inst_t *uart, bool cts, bool rts)</td></tr>
170 <tr class="memdesc:ga54a9e298ebec96510e324bbab01247c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set UART flow control CTS/RTS.  <a href="group__hardware__uart.html#ga54a9e298ebec96510e324bbab01247c7">More...</a><br /></td></tr>
171 <tr class="separator:ga54a9e298ebec96510e324bbab01247c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
172 <tr class="memitem:ga07e3c6ce7c1abf5e875b62964b8f841e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga07e3c6ce7c1abf5e875b62964b8f841e">uart_set_format</a> (uart_inst_t *uart, uint data_bits, uint stop_bits, <a class="el" href="group__hardware__uart.html#ga6bcc37e31dd40c204b4ac6f6189e8878">uart_parity_t</a> parity)</td></tr>
173 <tr class="memdesc:ga07e3c6ce7c1abf5e875b62964b8f841e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set UART data format.  <a href="group__hardware__uart.html#ga07e3c6ce7c1abf5e875b62964b8f841e">More...</a><br /></td></tr>
174 <tr class="separator:ga07e3c6ce7c1abf5e875b62964b8f841e"><td class="memSeparator" colspan="2">&#160;</td></tr>
175 <tr class="memitem:ga1908247cb5f2468517b37d5a91798181"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga1908247cb5f2468517b37d5a91798181">uart_set_irqs_enabled</a> (uart_inst_t *uart, bool rx_has_data, bool tx_needs_data)</td></tr>
176 <tr class="memdesc:ga1908247cb5f2468517b37d5a91798181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable UART interrupt outputs.  <a href="group__hardware__uart.html#ga1908247cb5f2468517b37d5a91798181">More...</a><br /></td></tr>
177 <tr class="separator:ga1908247cb5f2468517b37d5a91798181"><td class="memSeparator" colspan="2">&#160;</td></tr>
178 <tr class="memitem:ga6397bfad56e634a2ab31b6953a44caa7"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga6397bfad56e634a2ab31b6953a44caa7">uart_is_enabled</a> (uart_inst_t *uart)</td></tr>
179 <tr class="memdesc:ga6397bfad56e634a2ab31b6953a44caa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if specific UART is enabled.  <a href="group__hardware__uart.html#ga6397bfad56e634a2ab31b6953a44caa7">More...</a><br /></td></tr>
180 <tr class="separator:ga6397bfad56e634a2ab31b6953a44caa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
181 <tr class="memitem:gac3daee9514dacfb76f3c04b131e2e41a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gac3daee9514dacfb76f3c04b131e2e41a">uart_set_fifo_enabled</a> (uart_inst_t *uart, bool enabled)</td></tr>
182 <tr class="memdesc:gac3daee9514dacfb76f3c04b131e2e41a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable the FIFOs on specified UART.  <a href="group__hardware__uart.html#gac3daee9514dacfb76f3c04b131e2e41a">More...</a><br /></td></tr>
183 <tr class="separator:gac3daee9514dacfb76f3c04b131e2e41a"><td class="memSeparator" colspan="2">&#160;</td></tr>
184 <tr class="memitem:ga9d307ef71e3ce632be03bfd9bbe68117"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga9d307ef71e3ce632be03bfd9bbe68117">uart_is_writable</a> (uart_inst_t *uart)</td></tr>
185 <tr class="memdesc:ga9d307ef71e3ce632be03bfd9bbe68117"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if space is available in the TX FIFO.  <a href="group__hardware__uart.html#ga9d307ef71e3ce632be03bfd9bbe68117">More...</a><br /></td></tr>
186 <tr class="separator:ga9d307ef71e3ce632be03bfd9bbe68117"><td class="memSeparator" colspan="2">&#160;</td></tr>
187 <tr class="memitem:gaff99ad133c2c808b69d1e12054c09f4a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a">uart_tx_wait_blocking</a> (uart_inst_t *uart)</td></tr>
188 <tr class="memdesc:gaff99ad133c2c808b69d1e12054c09f4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for the UART TX fifo to be drained.  <a href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a">More...</a><br /></td></tr>
189 <tr class="separator:gaff99ad133c2c808b69d1e12054c09f4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
190 <tr class="memitem:ga4752e5d03dd98a08d95705f68784fd15"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga4752e5d03dd98a08d95705f68784fd15">uart_is_readable</a> (uart_inst_t *uart)</td></tr>
191 <tr class="memdesc:ga4752e5d03dd98a08d95705f68784fd15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether data is waiting in the RX FIFO.  <a href="group__hardware__uart.html#ga4752e5d03dd98a08d95705f68784fd15">More...</a><br /></td></tr>
192 <tr class="separator:ga4752e5d03dd98a08d95705f68784fd15"><td class="memSeparator" colspan="2">&#160;</td></tr>
193 <tr class="memitem:gada6a512414b1113a59725ddfbe23c4a5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gada6a512414b1113a59725ddfbe23c4a5">uart_write_blocking</a> (uart_inst_t *uart, const uint8_t *src, size_t len)</td></tr>
194 <tr class="memdesc:gada6a512414b1113a59725ddfbe23c4a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to the UART for transmission.  <a href="group__hardware__uart.html#gada6a512414b1113a59725ddfbe23c4a5">More...</a><br /></td></tr>
195 <tr class="separator:gada6a512414b1113a59725ddfbe23c4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
196 <tr class="memitem:gae8a066ef7339e7b22f05049435469234"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gae8a066ef7339e7b22f05049435469234">uart_read_blocking</a> (uart_inst_t *uart, uint8_t *dst, size_t len)</td></tr>
197 <tr class="memdesc:gae8a066ef7339e7b22f05049435469234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from the UART.  <a href="group__hardware__uart.html#gae8a066ef7339e7b22f05049435469234">More...</a><br /></td></tr>
198 <tr class="separator:gae8a066ef7339e7b22f05049435469234"><td class="memSeparator" colspan="2">&#160;</td></tr>
199 <tr class="memitem:ga64aa17c4b4382a59f7cb80c94f339d56"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga64aa17c4b4382a59f7cb80c94f339d56">uart_putc_raw</a> (uart_inst_t *uart, char c)</td></tr>
200 <tr class="memdesc:ga64aa17c4b4382a59f7cb80c94f339d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write single character to UART for transmission.  <a href="group__hardware__uart.html#ga64aa17c4b4382a59f7cb80c94f339d56">More...</a><br /></td></tr>
201 <tr class="separator:ga64aa17c4b4382a59f7cb80c94f339d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
202 <tr class="memitem:ga21c2cc29dcdc99ad970024dca52665a5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga21c2cc29dcdc99ad970024dca52665a5">uart_putc</a> (uart_inst_t *uart, char c)</td></tr>
203 <tr class="memdesc:ga21c2cc29dcdc99ad970024dca52665a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write single character to UART for transmission, with optional CR/LF conversions.  <a href="group__hardware__uart.html#ga21c2cc29dcdc99ad970024dca52665a5">More...</a><br /></td></tr>
204 <tr class="separator:ga21c2cc29dcdc99ad970024dca52665a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
205 <tr class="memitem:ga94be41517216933ca961fd0464f74a6c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga94be41517216933ca961fd0464f74a6c">uart_puts</a> (uart_inst_t *uart, const char *s)</td></tr>
206 <tr class="memdesc:ga94be41517216933ca961fd0464f74a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write string to UART for transmission, doing any CR/LF conversions.  <a href="group__hardware__uart.html#ga94be41517216933ca961fd0464f74a6c">More...</a><br /></td></tr>
207 <tr class="separator:ga94be41517216933ca961fd0464f74a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
208 <tr class="memitem:ga652497b933112c1759f892a03c657fec"><td class="memItemLeft" align="right" valign="top">static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga652497b933112c1759f892a03c657fec">uart_getc</a> (uart_inst_t *uart)</td></tr>
209 <tr class="memdesc:ga652497b933112c1759f892a03c657fec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a single character from the UART.  <a href="group__hardware__uart.html#ga652497b933112c1759f892a03c657fec">More...</a><br /></td></tr>
210 <tr class="separator:ga652497b933112c1759f892a03c657fec"><td class="memSeparator" colspan="2">&#160;</td></tr>
211 <tr class="memitem:gaddb01507886acab5604a2eecc014b388"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gaddb01507886acab5604a2eecc014b388">uart_set_break</a> (uart_inst_t *uart, bool en)</td></tr>
212 <tr class="memdesc:gaddb01507886acab5604a2eecc014b388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assert a break condition on the UART transmission.  <a href="group__hardware__uart.html#gaddb01507886acab5604a2eecc014b388">More...</a><br /></td></tr>
213 <tr class="separator:gaddb01507886acab5604a2eecc014b388"><td class="memSeparator" colspan="2">&#160;</td></tr>
214 <tr class="memitem:ga4ea0b7b9252cd22e2395ca6070000f7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga4ea0b7b9252cd22e2395ca6070000f7a">uart_set_translate_crlf</a> (uart_inst_t *uart, bool translate)</td></tr>
215 <tr class="memdesc:ga4ea0b7b9252cd22e2395ca6070000f7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set CR/LF conversion on UART.  <a href="group__hardware__uart.html#ga4ea0b7b9252cd22e2395ca6070000f7a">More...</a><br /></td></tr>
216 <tr class="separator:ga4ea0b7b9252cd22e2395ca6070000f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
217 <tr class="memitem:gaaa85ae059028b3f38e612e55042a8272"><td class="memItemLeft" align="right" valign="top"><a id="gaaa85ae059028b3f38e612e55042a8272" name="gaaa85ae059028b3f38e612e55042a8272"></a>
218 static void&#160;</td><td class="memItemRight" valign="bottom"><b>uart_default_tx_wait_blocking</b> (void)</td></tr>
219 <tr class="memdesc:gaaa85ae059028b3f38e612e55042a8272"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for the default UART's TX FIFO to be drained. <br /></td></tr>
220 <tr class="separator:gaaa85ae059028b3f38e612e55042a8272"><td class="memSeparator" colspan="2">&#160;</td></tr>
221 <tr class="memitem:ga026539f355b6c6f5a044a5f4ee051f0e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga026539f355b6c6f5a044a5f4ee051f0e">uart_is_readable_within_us</a> (uart_inst_t *uart, uint32_t us)</td></tr>
222 <tr class="memdesc:ga026539f355b6c6f5a044a5f4ee051f0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for up to a certain number of microseconds for the RX FIFO to be non empty.  <a href="group__hardware__uart.html#ga026539f355b6c6f5a044a5f4ee051f0e">More...</a><br /></td></tr>
223 <tr class="separator:ga026539f355b6c6f5a044a5f4ee051f0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
224 <tr class="memitem:gaee105a6aeabd79da9244a098865e28cd"><td class="memItemLeft" align="right" valign="top">static uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#gaee105a6aeabd79da9244a098865e28cd">uart_get_dreq_num</a> (uart_inst_t *uart, bool is_tx)</td></tr>
225 <tr class="memdesc:gaee105a6aeabd79da9244a098865e28cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="group__hardware__dma.html#ga8def0ea481095c94f3a0dd0b4fed999e">dreq_num_t</a> to use for pacing transfers to/from a particular UART instance.  <a href="group__hardware__uart.html#gaee105a6aeabd79da9244a098865e28cd">More...</a><br /></td></tr>
226 <tr class="separator:gaee105a6aeabd79da9244a098865e28cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
227 <tr class="memitem:ga0759dec413fb5af3bcaa9691ba98bcb9"><td class="memItemLeft" align="right" valign="top">static uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga0759dec413fb5af3bcaa9691ba98bcb9">uart_get_reset_num</a> (uart_inst_t *uart)</td></tr>
228 <tr class="memdesc:ga0759dec413fb5af3bcaa9691ba98bcb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the <a class="el" href="group__hardware__resets.html#ga53804b75cce5eb3090d482b0af2a7ce0">reset_num_t</a> to use for pacing transfers to/from a particular UART instance.  <a href="group__hardware__uart.html#ga0759dec413fb5af3bcaa9691ba98bcb9">More...</a><br /></td></tr>
229 <tr class="separator:ga0759dec413fb5af3bcaa9691ba98bcb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
230 <tr class="memitem:ga4c45ff280c79aa60358d8241b7e5824b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a>&#160;&#160;&#160;((uart_inst_t *)uart0_hw)</td></tr>
231 <tr class="memdesc:ga4c45ff280c79aa60358d8241b7e5824b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifier for UART instance 0.  <a href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">More...</a><br /></td></tr>
232 <tr class="separator:ga4c45ff280c79aa60358d8241b7e5824b"><td class="memSeparator" colspan="2">&#160;</td></tr>
233 <tr class="memitem:gad94ac6d5e345a1f794174d9bb7c6f69c"><td class="memItemLeft" align="right" valign="top"><a id="gad94ac6d5e345a1f794174d9bb7c6f69c" name="gad94ac6d5e345a1f794174d9bb7c6f69c"></a>
234 #define&#160;</td><td class="memItemRight" valign="bottom"><b>uart1</b>&#160;&#160;&#160;((uart_inst_t *)uart1_hw)</td></tr>
235 <tr class="memdesc:gad94ac6d5e345a1f794174d9bb7c6f69c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifier for UART instance 1. <br /></td></tr>
236 <tr class="separator:gad94ac6d5e345a1f794174d9bb7c6f69c"><td class="memSeparator" colspan="2">&#160;</td></tr>
237 </table>
238 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
239 <p >Hardware UART API. </p>
240 <p >RP-series microcontrollers have 2 identical instances of a UART peripheral, based on the ARM PL011. Each UART can be connected to a number of GPIO pins as defined in the GPIO muxing.</p>
241 <p >Only the TX, RX, RTS, and CTS signals are connected, meaning that the modem mode and IrDA mode of the PL011 are not supported.</p>
242 <h2><a class="anchor" id="uart_example"></a>
243 Example</h2>
244 <div class="fragment"><div class="line"> <span class="keywordtype">int</span> main() {</div>
245 <div class="line"> </div>
246 <div class="line">    <span class="comment">// Set the GPIO pin mux to the UART - pin 0 is TX, 1 is RX; note use of UART_FUNCSEL_NUM for the general</span></div>
247 <div class="line">    <span class="comment">// case where the func sel used for UART depends on the pin number</span></div>
248 <div class="line">    <span class="comment">// Do this before calling uart_init to avoid losing data</span></div>
249 <div class="line">    <a class="code hl_function" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a>(0, <a class="code hl_define" href="group__hardware__uart.html#ga7bceb145d3739e3923f64584eff6db59">UART_FUNCSEL_NUM</a>(<a class="code hl_define" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a>, 0));</div>
250 <div class="line">    <a class="code hl_function" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a>(1, <a class="code hl_define" href="group__hardware__uart.html#ga7bceb145d3739e3923f64584eff6db59">UART_FUNCSEL_NUM</a>(<a class="code hl_define" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a>, 1));</div>
251 <div class="line"> </div>
252 <div class="line">    <span class="comment">// Initialise UART 0</span></div>
253 <div class="line">    <a class="code hl_function" href="group__hardware__uart.html#ga5a55924eff530aff6db3b15fd872cda4">uart_init</a>(<a class="code hl_define" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a>, 115200);</div>
254 <div class="line"> </div>
255 <div class="line">    <a class="code hl_function" href="group__hardware__uart.html#ga94be41517216933ca961fd0464f74a6c">uart_puts</a>(<a class="code hl_define" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a>, <span class="stringliteral">&quot;Hello world!&quot;</span>);</div>
256 <div class="line">}</div>
257 <div class="ttc" id="agroup__hardware__gpio_html_ga22f6b90c4c7e0013b4b5341de0a44fc4"><div class="ttname"><a href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a></div><div class="ttdeci">void gpio_set_function(uint gpio, gpio_function_t fn)</div><div class="ttdoc">Select GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:38</div></div>
258 <div class="ttc" id="agroup__hardware__uart_html_ga4c45ff280c79aa60358d8241b7e5824b"><div class="ttname"><a href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a></div><div class="ttdeci">#define uart0</div><div class="ttdoc">Identifier for UART instance 0.</div><div class="ttdef"><b>Definition:</b> uart.h:86</div></div>
259 <div class="ttc" id="agroup__hardware__uart_html_ga5a55924eff530aff6db3b15fd872cda4"><div class="ttname"><a href="group__hardware__uart.html#ga5a55924eff530aff6db3b15fd872cda4">uart_init</a></div><div class="ttdeci">uint uart_init(uart_inst_t *uart, uint baudrate)</div><div class="ttdoc">Initialise a UART.</div><div class="ttdef"><b>Definition:</b> uart.c:42</div></div>
260 <div class="ttc" id="agroup__hardware__uart_html_ga7bceb145d3739e3923f64584eff6db59"><div class="ttname"><a href="group__hardware__uart.html#ga7bceb145d3739e3923f64584eff6db59">UART_FUNCSEL_NUM</a></div><div class="ttdeci">#define UART_FUNCSEL_NUM(uart, gpio)</div><div class="ttdoc">Returns gpio_function_t needed to select the UART function for the given UART instance on the given G...</div><div class="ttdef"><b>Definition:</b> uart.h:179</div></div>
261 <div class="ttc" id="agroup__hardware__uart_html_ga94be41517216933ca961fd0464f74a6c"><div class="ttname"><a href="group__hardware__uart.html#ga94be41517216933ca961fd0464f74a6c">uart_puts</a></div><div class="ttdeci">static void uart_puts(uart_inst_t *uart, const char *s)</div><div class="ttdoc">Write string to UART for transmission, doing any CR/LF conversions.</div><div class="ttdef"><b>Definition:</b> uart.h:524</div></div>
262 </div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2>
263 <a id="ga4c45ff280c79aa60358d8241b7e5824b" name="ga4c45ff280c79aa60358d8241b7e5824b"></a>
264 <h2 class="memtitle"><span class="permalink"><a href="#ga4c45ff280c79aa60358d8241b7e5824b">&#9670;&nbsp;</a></span>uart0</h2>
265
266 <div class="memitem">
267 <div class="memproto">
268       <table class="memname">
269         <tr>
270           <td class="memname">#define uart0&#160;&#160;&#160;((uart_inst_t *)uart0_hw)</td>
271         </tr>
272       </table>
273 </div><div class="memdoc">
274
275 <p>Identifier for UART instance 0. </p>
276 <p >The UART identifiers for use in UART functions.</p>
277 <p >e.g. uart_init(uart1, 48000) </p>
278
279 </div>
280 </div>
281 <a id="ga8b4f387572a62cc839eb004ce7c02e3f" name="ga8b4f387572a62cc839eb004ce7c02e3f"></a>
282 <h2 class="memtitle"><span class="permalink"><a href="#ga8b4f387572a62cc839eb004ce7c02e3f">&#9670;&nbsp;</a></span>UART_CLOCK_NUM</h2>
283
284 <div class="memitem">
285 <div class="memproto">
286       <table class="memname">
287         <tr>
288           <td class="memname">#define UART_CLOCK_NUM</td>
289           <td>(</td>
290           <td class="paramtype">&#160;</td>
291           <td class="paramname">uart</td><td>)</td>
292           <td></td>
293         </tr>
294       </table>
295 </div><div class="memdoc">
296
297 <p>Returns <a class="el" href="group__hardware__clocks.html#ga824c11c2ae315e0b745f6dd3db936788">clock_num_t</a> of the clock for the given UART instance. </p>
298 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
299
300 </div>
301 </div>
302 <a id="ga10472af6afab1cb220b5fbd4aee63a16" name="ga10472af6afab1cb220b5fbd4aee63a16"></a>
303 <h2 class="memtitle"><span class="permalink"><a href="#ga10472af6afab1cb220b5fbd4aee63a16">&#9670;&nbsp;</a></span>UART_DREQ_NUM</h2>
304
305 <div class="memitem">
306 <div class="memproto">
307       <table class="memname">
308         <tr>
309           <td class="memname">#define UART_DREQ_NUM</td>
310           <td>(</td>
311           <td class="paramtype">&#160;</td>
312           <td class="paramname">uart, </td>
313         </tr>
314         <tr>
315           <td class="paramkey"></td>
316           <td></td>
317           <td class="paramtype">&#160;</td>
318           <td class="paramname">is_tx&#160;</td>
319         </tr>
320         <tr>
321           <td></td>
322           <td>)</td>
323           <td></td><td></td>
324         </tr>
325       </table>
326 </div><div class="memdoc">
327
328 <p>Returns the <a class="el" href="group__hardware__dma.html#ga8def0ea481095c94f3a0dd0b4fed999e">dreq_num_t</a> used for pacing DMA transfers to or from this UART instance. If is_tx is true, then it is for transfers to the UART else for transfers from the UART. </p>
329 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
330
331 </div>
332 </div>
333 <a id="ga7bceb145d3739e3923f64584eff6db59" name="ga7bceb145d3739e3923f64584eff6db59"></a>
334 <h2 class="memtitle"><span class="permalink"><a href="#ga7bceb145d3739e3923f64584eff6db59">&#9670;&nbsp;</a></span>UART_FUNCSEL_NUM</h2>
335
336 <div class="memitem">
337 <div class="memproto">
338       <table class="memname">
339         <tr>
340           <td class="memname">#define UART_FUNCSEL_NUM</td>
341           <td>(</td>
342           <td class="paramtype">&#160;</td>
343           <td class="paramname">uart, </td>
344         </tr>
345         <tr>
346           <td class="paramkey"></td>
347           <td></td>
348           <td class="paramtype">&#160;</td>
349           <td class="paramname">gpio&#160;</td>
350         </tr>
351         <tr>
352           <td></td>
353           <td>)</td>
354           <td></td><td></td>
355         </tr>
356       </table>
357 </div><div class="memdoc">
358
359 <p>Returns <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a> needed to select the UART function for the given UART instance on the given GPIO number. </p>
360 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
361
362 </div>
363 </div>
364 <a id="gadc5c5947dc577aac3d448fdb37647927" name="gadc5c5947dc577aac3d448fdb37647927"></a>
365 <h2 class="memtitle"><span class="permalink"><a href="#gadc5c5947dc577aac3d448fdb37647927">&#9670;&nbsp;</a></span>UART_INSTANCE</h2>
366
367 <div class="memitem">
368 <div class="memproto">
369       <table class="memname">
370         <tr>
371           <td class="memname">#define UART_INSTANCE</td>
372           <td>(</td>
373           <td class="paramtype">&#160;</td>
374           <td class="paramname">num</td><td>)</td>
375           <td></td>
376         </tr>
377       </table>
378 </div><div class="memdoc">
379
380 <p>Returns the UART instance with the given UART number. </p>
381 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
382
383 </div>
384 </div>
385 <a id="ga8697ddad82a2cd5d889ce819d83783e3" name="ga8697ddad82a2cd5d889ce819d83783e3"></a>
386 <h2 class="memtitle"><span class="permalink"><a href="#ga8697ddad82a2cd5d889ce819d83783e3">&#9670;&nbsp;</a></span>UART_IRQ_NUM</h2>
387
388 <div class="memitem">
389 <div class="memproto">
390       <table class="memname">
391         <tr>
392           <td class="memname">#define UART_IRQ_NUM</td>
393           <td>(</td>
394           <td class="paramtype">&#160;</td>
395           <td class="paramname">uart</td><td>)</td>
396           <td></td>
397         </tr>
398       </table>
399 </div><div class="memdoc">
400
401 <p>Returns the <a class="el" href="group__hardware__irq.html#gaf30862f51b5994ffd5863176a185d137">irq_num_t</a> for processor interrupts from the given UART instance. </p>
402 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
403
404 </div>
405 </div>
406 <a id="ga12815b6262573d95c8a749f64cc85284" name="ga12815b6262573d95c8a749f64cc85284"></a>
407 <h2 class="memtitle"><span class="permalink"><a href="#ga12815b6262573d95c8a749f64cc85284">&#9670;&nbsp;</a></span>UART_NUM</h2>
408
409 <div class="memitem">
410 <div class="memproto">
411       <table class="memname">
412         <tr>
413           <td class="memname">#define UART_NUM</td>
414           <td>(</td>
415           <td class="paramtype">&#160;</td>
416           <td class="paramname">uart</td><td>)</td>
417           <td></td>
418         </tr>
419       </table>
420 </div><div class="memdoc">
421
422 <p>Returns the UART number for a UART instance. </p>
423 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
424
425 </div>
426 </div>
427 <a id="gaffef755f98d8fcec5f7b5147924fb4f9" name="gaffef755f98d8fcec5f7b5147924fb4f9"></a>
428 <h2 class="memtitle"><span class="permalink"><a href="#gaffef755f98d8fcec5f7b5147924fb4f9">&#9670;&nbsp;</a></span>UART_RESET_NUM</h2>
429
430 <div class="memitem">
431 <div class="memproto">
432       <table class="memname">
433         <tr>
434           <td class="memname">#define UART_RESET_NUM</td>
435           <td>(</td>
436           <td class="paramtype">&#160;</td>
437           <td class="paramname">uart</td><td>)</td>
438           <td></td>
439         </tr>
440       </table>
441 </div><div class="memdoc">
442
443 <p>Returns the <a class="el" href="group__hardware__resets.html#ga53804b75cce5eb3090d482b0af2a7ce0">reset_num_t</a> used to reset a given UART instance. </p>
444 <p >Note this macro is intended to resolve at compile time, and does no parameter checking </p>
445
446 </div>
447 </div>
448 <h2 class="groupheader">Function Documentation</h2>
449 <a id="ga85b12f7d19f5087b22f26473039d2c4f" name="ga85b12f7d19f5087b22f26473039d2c4f"></a>
450 <h2 class="memtitle"><span class="permalink"><a href="#ga85b12f7d19f5087b22f26473039d2c4f">&#9670;&nbsp;</a></span>uart_deinit()</h2>
451
452 <div class="memitem">
453 <div class="memproto">
454       <table class="memname">
455         <tr>
456           <td class="memname">void uart_deinit </td>
457           <td>(</td>
458           <td class="paramtype">uart_inst_t *&#160;</td>
459           <td class="paramname"><em>uart</em></td><td>)</td>
460           <td></td>
461         </tr>
462       </table>
463 </div><div class="memdoc">
464
465 <p>DeInitialise a UART. </p>
466 <p >Disable the UART if it is no longer used. Must be reinitialised before being used again.</p>
467 <dl class="params"><dt>Parameters</dt><dd>
468   <table class="params">
469     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
470   </table>
471   </dd>
472 </dl>
473
474 </div>
475 </div>
476 <a id="gaee105a6aeabd79da9244a098865e28cd" name="gaee105a6aeabd79da9244a098865e28cd"></a>
477 <h2 class="memtitle"><span class="permalink"><a href="#gaee105a6aeabd79da9244a098865e28cd">&#9670;&nbsp;</a></span>uart_get_dreq_num()</h2>
478
479 <div class="memitem">
480 <div class="memproto">
481 <table class="mlabels">
482   <tr>
483   <td class="mlabels-left">
484       <table class="memname">
485         <tr>
486           <td class="memname">static uint uart_get_dreq_num </td>
487           <td>(</td>
488           <td class="paramtype">uart_inst_t *&#160;</td>
489           <td class="paramname"><em>uart</em>, </td>
490         </tr>
491         <tr>
492           <td class="paramkey"></td>
493           <td></td>
494           <td class="paramtype">bool&#160;</td>
495           <td class="paramname"><em>is_tx</em>&#160;</td>
496         </tr>
497         <tr>
498           <td></td>
499           <td>)</td>
500           <td></td><td></td>
501         </tr>
502       </table>
503   </td>
504   <td class="mlabels-right">
505 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
506   </tr>
507 </table>
508 </div><div class="memdoc">
509
510 <p>Return the <a class="el" href="group__hardware__dma.html#ga8def0ea481095c94f3a0dd0b4fed999e">dreq_num_t</a> to use for pacing transfers to/from a particular UART instance. </p>
511 <dl class="params"><dt>Parameters</dt><dd>
512   <table class="params">
513     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
514     <tr><td class="paramname">is_tx</td><td>true for sending data to the UART instance, false for receiving data from the UART instance </td></tr>
515   </table>
516   </dd>
517 </dl>
518
519 </div>
520 </div>
521 <a id="ga460772353a17df99adaf3352115c73d5" name="ga460772353a17df99adaf3352115c73d5"></a>
522 <h2 class="memtitle"><span class="permalink"><a href="#ga460772353a17df99adaf3352115c73d5">&#9670;&nbsp;</a></span>uart_get_hw()</h2>
523
524 <div class="memitem">
525 <div class="memproto">
526 <table class="mlabels">
527   <tr>
528   <td class="mlabels-left">
529       <table class="memname">
530         <tr>
531           <td class="memname">static <a class="el" href="structuart__hw__t.html">uart_hw_t</a> * uart_get_hw </td>
532           <td>(</td>
533           <td class="paramtype">uart_inst_t *&#160;</td>
534           <td class="paramname"><em>uart</em></td><td>)</td>
535           <td></td>
536         </tr>
537       </table>
538   </td>
539   <td class="mlabels-right">
540 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
541   </tr>
542 </table>
543 </div><div class="memdoc">
544
545 <p>Get the real hardware UART instance from a UART instance. </p>
546 <p >This extra level of abstraction was added to facilitate adding PIO UARTs in the future. It currently does nothing, and costs nothing.</p>
547 <dl class="params"><dt>Parameters</dt><dd>
548   <table class="params">
549     <tr><td class="paramname">uart</td><td>UART instance </td></tr>
550   </table>
551   </dd>
552 </dl>
553 <dl class="section return"><dt>Returns</dt><dd>The <a class="el" href="structuart__hw__t.html">uart_hw_t</a> pointer to the UART instance registers </dd></dl>
554
555 </div>
556 </div>
557 <a id="ga064c5c42afff8712a612d7ae50a58484" name="ga064c5c42afff8712a612d7ae50a58484"></a>
558 <h2 class="memtitle"><span class="permalink"><a href="#ga064c5c42afff8712a612d7ae50a58484">&#9670;&nbsp;</a></span>uart_get_index()</h2>
559
560 <div class="memitem">
561 <div class="memproto">
562 <table class="mlabels">
563   <tr>
564   <td class="mlabels-left">
565       <table class="memname">
566         <tr>
567           <td class="memname">static uint uart_get_index </td>
568           <td>(</td>
569           <td class="paramtype">uart_inst_t *&#160;</td>
570           <td class="paramname"><em>uart</em></td><td>)</td>
571           <td></td>
572         </tr>
573       </table>
574   </td>
575   <td class="mlabels-right">
576 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
577   </tr>
578 </table>
579 </div><div class="memdoc">
580
581 <p>Convert UART instance to hardware instance number. </p>
582 <dl class="params"><dt>Parameters</dt><dd>
583   <table class="params">
584     <tr><td class="paramname">uart</td><td>UART instance </td></tr>
585   </table>
586   </dd>
587 </dl>
588 <dl class="section return"><dt>Returns</dt><dd>Number of UART, 0 or 1. </dd></dl>
589
590 </div>
591 </div>
592 <a id="gafd9aaeaae78307db7f51aa39f501b972" name="gafd9aaeaae78307db7f51aa39f501b972"></a>
593 <h2 class="memtitle"><span class="permalink"><a href="#gafd9aaeaae78307db7f51aa39f501b972">&#9670;&nbsp;</a></span>uart_get_instance()</h2>
594
595 <div class="memitem">
596 <div class="memproto">
597 <table class="mlabels">
598   <tr>
599   <td class="mlabels-left">
600       <table class="memname">
601         <tr>
602           <td class="memname">static uart_inst_t * uart_get_instance </td>
603           <td>(</td>
604           <td class="paramtype">uint&#160;</td>
605           <td class="paramname"><em>num</em></td><td>)</td>
606           <td></td>
607         </tr>
608       </table>
609   </td>
610   <td class="mlabels-right">
611 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
612   </tr>
613 </table>
614 </div><div class="memdoc">
615
616 <p>Get the UART instance from an instance number. </p>
617 <dl class="params"><dt>Parameters</dt><dd>
618   <table class="params">
619     <tr><td class="paramname">uart</td><td>UART instance </td></tr>
620   </table>
621   </dd>
622 </dl>
623 <dl class="section return"><dt>Returns</dt><dd>Number of UART, 0 or 1 </dd></dl>
624
625 </div>
626 </div>
627 <a id="ga0759dec413fb5af3bcaa9691ba98bcb9" name="ga0759dec413fb5af3bcaa9691ba98bcb9"></a>
628 <h2 class="memtitle"><span class="permalink"><a href="#ga0759dec413fb5af3bcaa9691ba98bcb9">&#9670;&nbsp;</a></span>uart_get_reset_num()</h2>
629
630 <div class="memitem">
631 <div class="memproto">
632 <table class="mlabels">
633   <tr>
634   <td class="mlabels-left">
635       <table class="memname">
636         <tr>
637           <td class="memname">static uint uart_get_reset_num </td>
638           <td>(</td>
639           <td class="paramtype">uart_inst_t *&#160;</td>
640           <td class="paramname"><em>uart</em></td><td>)</td>
641           <td></td>
642         </tr>
643       </table>
644   </td>
645   <td class="mlabels-right">
646 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
647   </tr>
648 </table>
649 </div><div class="memdoc">
650
651 <p>Return the <a class="el" href="group__hardware__resets.html#ga53804b75cce5eb3090d482b0af2a7ce0">reset_num_t</a> to use for pacing transfers to/from a particular UART instance. </p>
652 <dl class="params"><dt>Parameters</dt><dd>
653   <table class="params">
654     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
655     <tr><td class="paramname">is_tx</td><td>true for sending data to the UART instance, false for receiving data from the UART instance </td></tr>
656   </table>
657   </dd>
658 </dl>
659
660 </div>
661 </div>
662 <a id="ga652497b933112c1759f892a03c657fec" name="ga652497b933112c1759f892a03c657fec"></a>
663 <h2 class="memtitle"><span class="permalink"><a href="#ga652497b933112c1759f892a03c657fec">&#9670;&nbsp;</a></span>uart_getc()</h2>
664
665 <div class="memitem">
666 <div class="memproto">
667 <table class="mlabels">
668   <tr>
669   <td class="mlabels-left">
670       <table class="memname">
671         <tr>
672           <td class="memname">static char uart_getc </td>
673           <td>(</td>
674           <td class="paramtype">uart_inst_t *&#160;</td>
675           <td class="paramname"><em>uart</em></td><td>)</td>
676           <td></td>
677         </tr>
678       </table>
679   </td>
680   <td class="mlabels-right">
681 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
682   </tr>
683 </table>
684 </div><div class="memdoc">
685
686 <p>Read a single character from the UART. </p>
687 <p >This function will block until a character has been read</p>
688 <dl class="params"><dt>Parameters</dt><dd>
689   <table class="params">
690     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
691   </table>
692   </dd>
693 </dl>
694 <dl class="section return"><dt>Returns</dt><dd>The character read. </dd></dl>
695
696 </div>
697 </div>
698 <a id="ga5a55924eff530aff6db3b15fd872cda4" name="ga5a55924eff530aff6db3b15fd872cda4"></a>
699 <h2 class="memtitle"><span class="permalink"><a href="#ga5a55924eff530aff6db3b15fd872cda4">&#9670;&nbsp;</a></span>uart_init()</h2>
700
701 <div class="memitem">
702 <div class="memproto">
703       <table class="memname">
704         <tr>
705           <td class="memname">uint uart_init </td>
706           <td>(</td>
707           <td class="paramtype">uart_inst_t *&#160;</td>
708           <td class="paramname"><em>uart</em>, </td>
709         </tr>
710         <tr>
711           <td class="paramkey"></td>
712           <td></td>
713           <td class="paramtype">uint&#160;</td>
714           <td class="paramname"><em>baudrate</em>&#160;</td>
715         </tr>
716         <tr>
717           <td></td>
718           <td>)</td>
719           <td></td><td></td>
720         </tr>
721       </table>
722 </div><div class="memdoc">
723
724 <p>Initialise a UART. </p>
725 <p >Put the UART into a known state, and enable it. Must be called before other functions.</p>
726 <p >This function always enables the FIFOs, and configures the UART for the following default line format:</p>
727 <ul>
728 <li>8 data bits</li>
729 <li>No parity bit</li>
730 <li>One stop bit</li>
731 </ul>
732 <dl class="section note"><dt>Note</dt><dd>There is no guarantee that the baudrate requested will be possible, the nearest will be chosen, and this function will return the configured baud rate.</dd></dl>
733 <dl class="params"><dt>Parameters</dt><dd>
734   <table class="params">
735     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
736     <tr><td class="paramname">baudrate</td><td>Baudrate of UART in Hz </td></tr>
737   </table>
738   </dd>
739 </dl>
740 <dl class="section return"><dt>Returns</dt><dd>Actual set baudrate </dd></dl>
741
742 </div>
743 </div>
744 <a id="ga6397bfad56e634a2ab31b6953a44caa7" name="ga6397bfad56e634a2ab31b6953a44caa7"></a>
745 <h2 class="memtitle"><span class="permalink"><a href="#ga6397bfad56e634a2ab31b6953a44caa7">&#9670;&nbsp;</a></span>uart_is_enabled()</h2>
746
747 <div class="memitem">
748 <div class="memproto">
749 <table class="mlabels">
750   <tr>
751   <td class="mlabels-left">
752       <table class="memname">
753         <tr>
754           <td class="memname">static bool uart_is_enabled </td>
755           <td>(</td>
756           <td class="paramtype">uart_inst_t *&#160;</td>
757           <td class="paramname"><em>uart</em></td><td>)</td>
758           <td></td>
759         </tr>
760       </table>
761   </td>
762   <td class="mlabels-right">
763 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
764   </tr>
765 </table>
766 </div><div class="memdoc">
767
768 <p>Test if specific UART is enabled. </p>
769 <dl class="params"><dt>Parameters</dt><dd>
770   <table class="params">
771     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
772   </table>
773   </dd>
774 </dl>
775 <dl class="section return"><dt>Returns</dt><dd>true if the UART is enabled </dd></dl>
776
777 </div>
778 </div>
779 <a id="ga4752e5d03dd98a08d95705f68784fd15" name="ga4752e5d03dd98a08d95705f68784fd15"></a>
780 <h2 class="memtitle"><span class="permalink"><a href="#ga4752e5d03dd98a08d95705f68784fd15">&#9670;&nbsp;</a></span>uart_is_readable()</h2>
781
782 <div class="memitem">
783 <div class="memproto">
784 <table class="mlabels">
785   <tr>
786   <td class="mlabels-left">
787       <table class="memname">
788         <tr>
789           <td class="memname">static bool uart_is_readable </td>
790           <td>(</td>
791           <td class="paramtype">uart_inst_t *&#160;</td>
792           <td class="paramname"><em>uart</em></td><td>)</td>
793           <td></td>
794         </tr>
795       </table>
796   </td>
797   <td class="mlabels-right">
798 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
799   </tr>
800 </table>
801 </div><div class="memdoc">
802
803 <p>Determine whether data is waiting in the RX FIFO. </p>
804 <dl class="params"><dt>Parameters</dt><dd>
805   <table class="params">
806     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
807   </table>
808   </dd>
809 </dl>
810 <dl class="section return"><dt>Returns</dt><dd>true if the RX FIFO is not empty, otherwise false. </dd></dl>
811
812 </div>
813 </div>
814 <a id="ga026539f355b6c6f5a044a5f4ee051f0e" name="ga026539f355b6c6f5a044a5f4ee051f0e"></a>
815 <h2 class="memtitle"><span class="permalink"><a href="#ga026539f355b6c6f5a044a5f4ee051f0e">&#9670;&nbsp;</a></span>uart_is_readable_within_us()</h2>
816
817 <div class="memitem">
818 <div class="memproto">
819       <table class="memname">
820         <tr>
821           <td class="memname">bool uart_is_readable_within_us </td>
822           <td>(</td>
823           <td class="paramtype">uart_inst_t *&#160;</td>
824           <td class="paramname"><em>uart</em>, </td>
825         </tr>
826         <tr>
827           <td class="paramkey"></td>
828           <td></td>
829           <td class="paramtype">uint32_t&#160;</td>
830           <td class="paramname"><em>us</em>&#160;</td>
831         </tr>
832         <tr>
833           <td></td>
834           <td>)</td>
835           <td></td><td></td>
836         </tr>
837       </table>
838 </div><div class="memdoc">
839
840 <p>Wait for up to a certain number of microseconds for the RX FIFO to be non empty. </p>
841 <dl class="params"><dt>Parameters</dt><dd>
842   <table class="params">
843     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
844     <tr><td class="paramname">us</td><td>the number of microseconds to wait at most (may be 0 for an instantaneous check) </td></tr>
845   </table>
846   </dd>
847 </dl>
848 <dl class="section return"><dt>Returns</dt><dd>true if the RX FIFO became non empty before the timeout, false otherwise </dd></dl>
849
850 </div>
851 </div>
852 <a id="ga9d307ef71e3ce632be03bfd9bbe68117" name="ga9d307ef71e3ce632be03bfd9bbe68117"></a>
853 <h2 class="memtitle"><span class="permalink"><a href="#ga9d307ef71e3ce632be03bfd9bbe68117">&#9670;&nbsp;</a></span>uart_is_writable()</h2>
854
855 <div class="memitem">
856 <div class="memproto">
857 <table class="mlabels">
858   <tr>
859   <td class="mlabels-left">
860       <table class="memname">
861         <tr>
862           <td class="memname">static bool uart_is_writable </td>
863           <td>(</td>
864           <td class="paramtype">uart_inst_t *&#160;</td>
865           <td class="paramname"><em>uart</em></td><td>)</td>
866           <td></td>
867         </tr>
868       </table>
869   </td>
870   <td class="mlabels-right">
871 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
872   </tr>
873 </table>
874 </div><div class="memdoc">
875
876 <p>Determine if space is available in the TX FIFO. </p>
877 <dl class="params"><dt>Parameters</dt><dd>
878   <table class="params">
879     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
880   </table>
881   </dd>
882 </dl>
883 <dl class="section return"><dt>Returns</dt><dd>false if no space available, true otherwise </dd></dl>
884
885 </div>
886 </div>
887 <a id="ga21c2cc29dcdc99ad970024dca52665a5" name="ga21c2cc29dcdc99ad970024dca52665a5"></a>
888 <h2 class="memtitle"><span class="permalink"><a href="#ga21c2cc29dcdc99ad970024dca52665a5">&#9670;&nbsp;</a></span>uart_putc()</h2>
889
890 <div class="memitem">
891 <div class="memproto">
892 <table class="mlabels">
893   <tr>
894   <td class="mlabels-left">
895       <table class="memname">
896         <tr>
897           <td class="memname">static void uart_putc </td>
898           <td>(</td>
899           <td class="paramtype">uart_inst_t *&#160;</td>
900           <td class="paramname"><em>uart</em>, </td>
901         </tr>
902         <tr>
903           <td class="paramkey"></td>
904           <td></td>
905           <td class="paramtype">char&#160;</td>
906           <td class="paramname"><em>c</em>&#160;</td>
907         </tr>
908         <tr>
909           <td></td>
910           <td>)</td>
911           <td></td><td></td>
912         </tr>
913       </table>
914   </td>
915   <td class="mlabels-right">
916 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
917   </tr>
918 </table>
919 </div><div class="memdoc">
920
921 <p>Write single character to UART for transmission, with optional CR/LF conversions. </p>
922 <p >This function will block until the character has been sent to the UART transmit buffer</p>
923 <dl class="params"><dt>Parameters</dt><dd>
924   <table class="params">
925     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
926     <tr><td class="paramname">c</td><td>The character to send </td></tr>
927   </table>
928   </dd>
929 </dl>
930
931 </div>
932 </div>
933 <a id="ga64aa17c4b4382a59f7cb80c94f339d56" name="ga64aa17c4b4382a59f7cb80c94f339d56"></a>
934 <h2 class="memtitle"><span class="permalink"><a href="#ga64aa17c4b4382a59f7cb80c94f339d56">&#9670;&nbsp;</a></span>uart_putc_raw()</h2>
935
936 <div class="memitem">
937 <div class="memproto">
938 <table class="mlabels">
939   <tr>
940   <td class="mlabels-left">
941       <table class="memname">
942         <tr>
943           <td class="memname">static void uart_putc_raw </td>
944           <td>(</td>
945           <td class="paramtype">uart_inst_t *&#160;</td>
946           <td class="paramname"><em>uart</em>, </td>
947         </tr>
948         <tr>
949           <td class="paramkey"></td>
950           <td></td>
951           <td class="paramtype">char&#160;</td>
952           <td class="paramname"><em>c</em>&#160;</td>
953         </tr>
954         <tr>
955           <td></td>
956           <td>)</td>
957           <td></td><td></td>
958         </tr>
959       </table>
960   </td>
961   <td class="mlabels-right">
962 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
963   </tr>
964 </table>
965 </div><div class="memdoc">
966
967 <p>Write single character to UART for transmission. </p>
968 <p >This function will block until the entire character has been sent to the UART transmit buffer</p>
969 <dl class="params"><dt>Parameters</dt><dd>
970   <table class="params">
971     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
972     <tr><td class="paramname">c</td><td>The character to send </td></tr>
973   </table>
974   </dd>
975 </dl>
976
977 </div>
978 </div>
979 <a id="ga94be41517216933ca961fd0464f74a6c" name="ga94be41517216933ca961fd0464f74a6c"></a>
980 <h2 class="memtitle"><span class="permalink"><a href="#ga94be41517216933ca961fd0464f74a6c">&#9670;&nbsp;</a></span>uart_puts()</h2>
981
982 <div class="memitem">
983 <div class="memproto">
984 <table class="mlabels">
985   <tr>
986   <td class="mlabels-left">
987       <table class="memname">
988         <tr>
989           <td class="memname">static void uart_puts </td>
990           <td>(</td>
991           <td class="paramtype">uart_inst_t *&#160;</td>
992           <td class="paramname"><em>uart</em>, </td>
993         </tr>
994         <tr>
995           <td class="paramkey"></td>
996           <td></td>
997           <td class="paramtype">const char *&#160;</td>
998           <td class="paramname"><em>s</em>&#160;</td>
999         </tr>
1000         <tr>
1001           <td></td>
1002           <td>)</td>
1003           <td></td><td></td>
1004         </tr>
1005       </table>
1006   </td>
1007   <td class="mlabels-right">
1008 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1009   </tr>
1010 </table>
1011 </div><div class="memdoc">
1012
1013 <p>Write string to UART for transmission, doing any CR/LF conversions. </p>
1014 <p >This function will block until the entire string has been sent to the UART transmit buffer</p>
1015 <dl class="params"><dt>Parameters</dt><dd>
1016   <table class="params">
1017     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1018     <tr><td class="paramname">s</td><td>The null terminated string to send </td></tr>
1019   </table>
1020   </dd>
1021 </dl>
1022
1023 </div>
1024 </div>
1025 <a id="gae8a066ef7339e7b22f05049435469234" name="gae8a066ef7339e7b22f05049435469234"></a>
1026 <h2 class="memtitle"><span class="permalink"><a href="#gae8a066ef7339e7b22f05049435469234">&#9670;&nbsp;</a></span>uart_read_blocking()</h2>
1027
1028 <div class="memitem">
1029 <div class="memproto">
1030 <table class="mlabels">
1031   <tr>
1032   <td class="mlabels-left">
1033       <table class="memname">
1034         <tr>
1035           <td class="memname">static void uart_read_blocking </td>
1036           <td>(</td>
1037           <td class="paramtype">uart_inst_t *&#160;</td>
1038           <td class="paramname"><em>uart</em>, </td>
1039         </tr>
1040         <tr>
1041           <td class="paramkey"></td>
1042           <td></td>
1043           <td class="paramtype">uint8_t *&#160;</td>
1044           <td class="paramname"><em>dst</em>, </td>
1045         </tr>
1046         <tr>
1047           <td class="paramkey"></td>
1048           <td></td>
1049           <td class="paramtype">size_t&#160;</td>
1050           <td class="paramname"><em>len</em>&#160;</td>
1051         </tr>
1052         <tr>
1053           <td></td>
1054           <td>)</td>
1055           <td></td><td></td>
1056         </tr>
1057       </table>
1058   </td>
1059   <td class="mlabels-right">
1060 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1061   </tr>
1062 </table>
1063 </div><div class="memdoc">
1064
1065 <p>Read from the UART. </p>
1066 <p >This function blocks until len characters have been read from the UART</p>
1067 <dl class="params"><dt>Parameters</dt><dd>
1068   <table class="params">
1069     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1070     <tr><td class="paramname">dst</td><td>Buffer to accept received bytes </td></tr>
1071     <tr><td class="paramname">len</td><td>The number of bytes to receive. </td></tr>
1072   </table>
1073   </dd>
1074 </dl>
1075
1076 </div>
1077 </div>
1078 <a id="gab7f2ad3380a44597d8dda42b2d2ddef9" name="gab7f2ad3380a44597d8dda42b2d2ddef9"></a>
1079 <h2 class="memtitle"><span class="permalink"><a href="#gab7f2ad3380a44597d8dda42b2d2ddef9">&#9670;&nbsp;</a></span>uart_set_baudrate()</h2>
1080
1081 <div class="memitem">
1082 <div class="memproto">
1083       <table class="memname">
1084         <tr>
1085           <td class="memname">uint uart_set_baudrate </td>
1086           <td>(</td>
1087           <td class="paramtype">uart_inst_t *&#160;</td>
1088           <td class="paramname"><em>uart</em>, </td>
1089         </tr>
1090         <tr>
1091           <td class="paramkey"></td>
1092           <td></td>
1093           <td class="paramtype">uint&#160;</td>
1094           <td class="paramname"><em>baudrate</em>&#160;</td>
1095         </tr>
1096         <tr>
1097           <td></td>
1098           <td>)</td>
1099           <td></td><td></td>
1100         </tr>
1101       </table>
1102 </div><div class="memdoc">
1103
1104 <p>Set UART baud rate. </p>
1105 <p >Set baud rate as close as possible to requested, and return actual rate selected.</p>
1106 <p >The UART is paused for around two character periods whilst the settings are changed. Data received during this time may be dropped by the UART.</p>
1107 <p >Any characters still in the transmit buffer will be sent using the new updated baud rate. <a class="el" href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a" title="Wait for the UART TX fifo to be drained.">uart_tx_wait_blocking()</a> can be called before this function to ensure all characters at the old baud rate have been sent before the rate is changed.</p>
1108 <p >This function should not be called from an interrupt context, and the UART interrupt should be disabled before calling this function.</p>
1109 <dl class="params"><dt>Parameters</dt><dd>
1110   <table class="params">
1111     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1112     <tr><td class="paramname">baudrate</td><td>Baudrate in Hz </td></tr>
1113   </table>
1114   </dd>
1115 </dl>
1116 <dl class="section return"><dt>Returns</dt><dd>Actual set baudrate </dd></dl>
1117
1118 </div>
1119 </div>
1120 <a id="gaddb01507886acab5604a2eecc014b388" name="gaddb01507886acab5604a2eecc014b388"></a>
1121 <h2 class="memtitle"><span class="permalink"><a href="#gaddb01507886acab5604a2eecc014b388">&#9670;&nbsp;</a></span>uart_set_break()</h2>
1122
1123 <div class="memitem">
1124 <div class="memproto">
1125       <table class="memname">
1126         <tr>
1127           <td class="memname">void uart_set_break </td>
1128           <td>(</td>
1129           <td class="paramtype">uart_inst_t *&#160;</td>
1130           <td class="paramname"><em>uart</em>, </td>
1131         </tr>
1132         <tr>
1133           <td class="paramkey"></td>
1134           <td></td>
1135           <td class="paramtype">bool&#160;</td>
1136           <td class="paramname"><em>en</em>&#160;</td>
1137         </tr>
1138         <tr>
1139           <td></td>
1140           <td>)</td>
1141           <td></td><td></td>
1142         </tr>
1143       </table>
1144 </div><div class="memdoc">
1145
1146 <p>Assert a break condition on the UART transmission. </p>
1147 <dl class="params"><dt>Parameters</dt><dd>
1148   <table class="params">
1149     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1150     <tr><td class="paramname">en</td><td>Assert break condition (TX held low) if true. Clear break condition if false. </td></tr>
1151   </table>
1152   </dd>
1153 </dl>
1154
1155 </div>
1156 </div>
1157 <a id="gac3daee9514dacfb76f3c04b131e2e41a" name="gac3daee9514dacfb76f3c04b131e2e41a"></a>
1158 <h2 class="memtitle"><span class="permalink"><a href="#gac3daee9514dacfb76f3c04b131e2e41a">&#9670;&nbsp;</a></span>uart_set_fifo_enabled()</h2>
1159
1160 <div class="memitem">
1161 <div class="memproto">
1162       <table class="memname">
1163         <tr>
1164           <td class="memname">void uart_set_fifo_enabled </td>
1165           <td>(</td>
1166           <td class="paramtype">uart_inst_t *&#160;</td>
1167           <td class="paramname"><em>uart</em>, </td>
1168         </tr>
1169         <tr>
1170           <td class="paramkey"></td>
1171           <td></td>
1172           <td class="paramtype">bool&#160;</td>
1173           <td class="paramname"><em>enabled</em>&#160;</td>
1174         </tr>
1175         <tr>
1176           <td></td>
1177           <td>)</td>
1178           <td></td><td></td>
1179         </tr>
1180       </table>
1181 </div><div class="memdoc">
1182
1183 <p>Enable/Disable the FIFOs on specified UART. </p>
1184 <p >The UART is paused for around two character periods whilst the settings are changed. Data received during this time may be dropped by the UART.</p>
1185 <p >Any characters still in the transmit FIFO will be lost if the FIFO is disabled. <a class="el" href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a" title="Wait for the UART TX fifo to be drained.">uart_tx_wait_blocking()</a> can be called before this function to avoid this.</p>
1186 <p >This function should not be called from an interrupt context, and the UART interrupt should be disabled when calling this function.</p>
1187 <dl class="params"><dt>Parameters</dt><dd>
1188   <table class="params">
1189     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1190     <tr><td class="paramname">enabled</td><td>true to enable FIFO (default), false to disable </td></tr>
1191   </table>
1192   </dd>
1193 </dl>
1194
1195 </div>
1196 </div>
1197 <a id="ga07e3c6ce7c1abf5e875b62964b8f841e" name="ga07e3c6ce7c1abf5e875b62964b8f841e"></a>
1198 <h2 class="memtitle"><span class="permalink"><a href="#ga07e3c6ce7c1abf5e875b62964b8f841e">&#9670;&nbsp;</a></span>uart_set_format()</h2>
1199
1200 <div class="memitem">
1201 <div class="memproto">
1202       <table class="memname">
1203         <tr>
1204           <td class="memname">void uart_set_format </td>
1205           <td>(</td>
1206           <td class="paramtype">uart_inst_t *&#160;</td>
1207           <td class="paramname"><em>uart</em>, </td>
1208         </tr>
1209         <tr>
1210           <td class="paramkey"></td>
1211           <td></td>
1212           <td class="paramtype">uint&#160;</td>
1213           <td class="paramname"><em>data_bits</em>, </td>
1214         </tr>
1215         <tr>
1216           <td class="paramkey"></td>
1217           <td></td>
1218           <td class="paramtype">uint&#160;</td>
1219           <td class="paramname"><em>stop_bits</em>, </td>
1220         </tr>
1221         <tr>
1222           <td class="paramkey"></td>
1223           <td></td>
1224           <td class="paramtype"><a class="el" href="group__hardware__uart.html#ga6bcc37e31dd40c204b4ac6f6189e8878">uart_parity_t</a>&#160;</td>
1225           <td class="paramname"><em>parity</em>&#160;</td>
1226         </tr>
1227         <tr>
1228           <td></td>
1229           <td>)</td>
1230           <td></td><td></td>
1231         </tr>
1232       </table>
1233 </div><div class="memdoc">
1234
1235 <p>Set UART data format. </p>
1236 <p >Configure the data format (bits etc) for the UART.</p>
1237 <p >The UART is paused for around two character periods whilst the settings are changed. Data received during this time may be dropped by the UART.</p>
1238 <p >Any characters still in the transmit buffer will be sent using the new updated data format. <a class="el" href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a" title="Wait for the UART TX fifo to be drained.">uart_tx_wait_blocking()</a> can be called before this function to ensure all characters needing the old format have been sent before the format is changed.</p>
1239 <p >This function should not be called from an interrupt context, and the UART interrupt should be disabled before calling this function.</p>
1240 <dl class="params"><dt>Parameters</dt><dd>
1241   <table class="params">
1242     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1243     <tr><td class="paramname">data_bits</td><td>Number of bits of data. 5..8 </td></tr>
1244     <tr><td class="paramname">stop_bits</td><td>Number of stop bits 1..2 </td></tr>
1245     <tr><td class="paramname">parity</td><td>Parity option. </td></tr>
1246   </table>
1247   </dd>
1248 </dl>
1249
1250 </div>
1251 </div>
1252 <a id="ga54a9e298ebec96510e324bbab01247c7" name="ga54a9e298ebec96510e324bbab01247c7"></a>
1253 <h2 class="memtitle"><span class="permalink"><a href="#ga54a9e298ebec96510e324bbab01247c7">&#9670;&nbsp;</a></span>uart_set_hw_flow()</h2>
1254
1255 <div class="memitem">
1256 <div class="memproto">
1257 <table class="mlabels">
1258   <tr>
1259   <td class="mlabels-left">
1260       <table class="memname">
1261         <tr>
1262           <td class="memname">static void uart_set_hw_flow </td>
1263           <td>(</td>
1264           <td class="paramtype">uart_inst_t *&#160;</td>
1265           <td class="paramname"><em>uart</em>, </td>
1266         </tr>
1267         <tr>
1268           <td class="paramkey"></td>
1269           <td></td>
1270           <td class="paramtype">bool&#160;</td>
1271           <td class="paramname"><em>cts</em>, </td>
1272         </tr>
1273         <tr>
1274           <td class="paramkey"></td>
1275           <td></td>
1276           <td class="paramtype">bool&#160;</td>
1277           <td class="paramname"><em>rts</em>&#160;</td>
1278         </tr>
1279         <tr>
1280           <td></td>
1281           <td>)</td>
1282           <td></td><td></td>
1283         </tr>
1284       </table>
1285   </td>
1286   <td class="mlabels-right">
1287 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1288   </tr>
1289 </table>
1290 </div><div class="memdoc">
1291
1292 <p>Set UART flow control CTS/RTS. </p>
1293 <dl class="params"><dt>Parameters</dt><dd>
1294   <table class="params">
1295     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1296     <tr><td class="paramname">cts</td><td>If true enable flow control of TX by clear-to-send input </td></tr>
1297     <tr><td class="paramname">rts</td><td>If true enable assertion of request-to-send output by RX flow control </td></tr>
1298   </table>
1299   </dd>
1300 </dl>
1301
1302 </div>
1303 </div>
1304 <a id="ga1908247cb5f2468517b37d5a91798181" name="ga1908247cb5f2468517b37d5a91798181"></a>
1305 <h2 class="memtitle"><span class="permalink"><a href="#ga1908247cb5f2468517b37d5a91798181">&#9670;&nbsp;</a></span>uart_set_irqs_enabled()</h2>
1306
1307 <div class="memitem">
1308 <div class="memproto">
1309 <table class="mlabels">
1310   <tr>
1311   <td class="mlabels-left">
1312       <table class="memname">
1313         <tr>
1314           <td class="memname">static void uart_set_irqs_enabled </td>
1315           <td>(</td>
1316           <td class="paramtype">uart_inst_t *&#160;</td>
1317           <td class="paramname"><em>uart</em>, </td>
1318         </tr>
1319         <tr>
1320           <td class="paramkey"></td>
1321           <td></td>
1322           <td class="paramtype">bool&#160;</td>
1323           <td class="paramname"><em>rx_has_data</em>, </td>
1324         </tr>
1325         <tr>
1326           <td class="paramkey"></td>
1327           <td></td>
1328           <td class="paramtype">bool&#160;</td>
1329           <td class="paramname"><em>tx_needs_data</em>&#160;</td>
1330         </tr>
1331         <tr>
1332           <td></td>
1333           <td>)</td>
1334           <td></td><td></td>
1335         </tr>
1336       </table>
1337   </td>
1338   <td class="mlabels-right">
1339 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1340   </tr>
1341 </table>
1342 </div><div class="memdoc">
1343
1344 <p>Enable/Disable UART interrupt outputs. </p>
1345 <p >Enable/Disable the UART's interrupt outputs. An interrupt handler should be installed prior to calling this function.</p>
1346 <dl class="params"><dt>Parameters</dt><dd>
1347   <table class="params">
1348     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1349     <tr><td class="paramname">rx_has_data</td><td>If true an interrupt will be fired when the RX FIFO contains data. </td></tr>
1350     <tr><td class="paramname">tx_needs_data</td><td>If true an interrupt will be fired when the TX FIFO needs data. </td></tr>
1351   </table>
1352   </dd>
1353 </dl>
1354
1355 </div>
1356 </div>
1357 <a id="ga4ea0b7b9252cd22e2395ca6070000f7a" name="ga4ea0b7b9252cd22e2395ca6070000f7a"></a>
1358 <h2 class="memtitle"><span class="permalink"><a href="#ga4ea0b7b9252cd22e2395ca6070000f7a">&#9670;&nbsp;</a></span>uart_set_translate_crlf()</h2>
1359
1360 <div class="memitem">
1361 <div class="memproto">
1362       <table class="memname">
1363         <tr>
1364           <td class="memname">void uart_set_translate_crlf </td>
1365           <td>(</td>
1366           <td class="paramtype">uart_inst_t *&#160;</td>
1367           <td class="paramname"><em>uart</em>, </td>
1368         </tr>
1369         <tr>
1370           <td class="paramkey"></td>
1371           <td></td>
1372           <td class="paramtype">bool&#160;</td>
1373           <td class="paramname"><em>translate</em>&#160;</td>
1374         </tr>
1375         <tr>
1376           <td></td>
1377           <td>)</td>
1378           <td></td><td></td>
1379         </tr>
1380       </table>
1381 </div><div class="memdoc">
1382
1383 <p>Set CR/LF conversion on UART. </p>
1384 <dl class="params"><dt>Parameters</dt><dd>
1385   <table class="params">
1386     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1387     <tr><td class="paramname">translate</td><td>If true, convert line feeds to carriage return on transmissions </td></tr>
1388   </table>
1389   </dd>
1390 </dl>
1391
1392 </div>
1393 </div>
1394 <a id="gaff99ad133c2c808b69d1e12054c09f4a" name="gaff99ad133c2c808b69d1e12054c09f4a"></a>
1395 <h2 class="memtitle"><span class="permalink"><a href="#gaff99ad133c2c808b69d1e12054c09f4a">&#9670;&nbsp;</a></span>uart_tx_wait_blocking()</h2>
1396
1397 <div class="memitem">
1398 <div class="memproto">
1399 <table class="mlabels">
1400   <tr>
1401   <td class="mlabels-left">
1402       <table class="memname">
1403         <tr>
1404           <td class="memname">static void uart_tx_wait_blocking </td>
1405           <td>(</td>
1406           <td class="paramtype">uart_inst_t *&#160;</td>
1407           <td class="paramname"><em>uart</em></td><td>)</td>
1408           <td></td>
1409         </tr>
1410       </table>
1411   </td>
1412   <td class="mlabels-right">
1413 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1414   </tr>
1415 </table>
1416 </div><div class="memdoc">
1417
1418 <p>Wait for the UART TX fifo to be drained. </p>
1419 <dl class="params"><dt>Parameters</dt><dd>
1420   <table class="params">
1421     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1422   </table>
1423   </dd>
1424 </dl>
1425
1426 </div>
1427 </div>
1428 <a id="gada6a512414b1113a59725ddfbe23c4a5" name="gada6a512414b1113a59725ddfbe23c4a5"></a>
1429 <h2 class="memtitle"><span class="permalink"><a href="#gada6a512414b1113a59725ddfbe23c4a5">&#9670;&nbsp;</a></span>uart_write_blocking()</h2>
1430
1431 <div class="memitem">
1432 <div class="memproto">
1433 <table class="mlabels">
1434   <tr>
1435   <td class="mlabels-left">
1436       <table class="memname">
1437         <tr>
1438           <td class="memname">static void uart_write_blocking </td>
1439           <td>(</td>
1440           <td class="paramtype">uart_inst_t *&#160;</td>
1441           <td class="paramname"><em>uart</em>, </td>
1442         </tr>
1443         <tr>
1444           <td class="paramkey"></td>
1445           <td></td>
1446           <td class="paramtype">const uint8_t *&#160;</td>
1447           <td class="paramname"><em>src</em>, </td>
1448         </tr>
1449         <tr>
1450           <td class="paramkey"></td>
1451           <td></td>
1452           <td class="paramtype">size_t&#160;</td>
1453           <td class="paramname"><em>len</em>&#160;</td>
1454         </tr>
1455         <tr>
1456           <td></td>
1457           <td>)</td>
1458           <td></td><td></td>
1459         </tr>
1460       </table>
1461   </td>
1462   <td class="mlabels-right">
1463 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1464   </tr>
1465 </table>
1466 </div><div class="memdoc">
1467
1468 <p>Write to the UART for transmission. </p>
1469 <p >This function will block until all the data has been sent to the UART transmit buffer hardware. Note: Serial data transmission will continue until the Tx FIFO and the transmit shift register (not programmer-accessible) are empty. To ensure the UART FIFO has been emptied, you can use <a class="el" href="group__hardware__uart.html#gaff99ad133c2c808b69d1e12054c09f4a">uart_tx_wait_blocking()</a></p>
1470 <dl class="params"><dt>Parameters</dt><dd>
1471   <table class="params">
1472     <tr><td class="paramname">uart</td><td>UART instance. <a class="el" href="group__hardware__uart.html#ga4c45ff280c79aa60358d8241b7e5824b">uart0</a> or <a class="el" href="group__hardware__uart.html#gad94ac6d5e345a1f794174d9bb7c6f69c">uart1</a> </td></tr>
1473     <tr><td class="paramname">src</td><td>The bytes to send </td></tr>
1474     <tr><td class="paramname">len</td><td>The number of bytes to send </td></tr>
1475   </table>
1476   </dd>
1477 </dl>
1478
1479 </div>
1480 </div>
1481 </div><!-- contents -->
1482 </div><!-- doc-content -->
1483
1484         <script src="main.js"></script>
1485 </body>
1486 </html>
This page took 0.117514 seconds and 4 git commands to generate.