]> Git Repo - pico-vscode.git/blob - web/docs/group__pico__stdio.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__pico__stdio.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: pico_stdio</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__pico__stdio.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="#groups">Modules</a> &#124;
107 <a href="#func-members">Functions</a>  </div>
108   <div class="headertitle"><div class="title">pico_stdio<div class="ingroups"><a class="el" href="group__runtime.html">Runtime Infrastructure</a></div></div></div>
109 </div><!--header-->
110 <div class="contents">
111
112 <p>Customized stdio support allowing for input and output from UART, USB, semi-hosting etc.  
113 <a href="#details">More...</a></p>
114 <table class="memberdecls">
115 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
116 Modules</h2></td></tr>
117 <tr class="memitem:group__pico__stdio__semihosting"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio__semihosting.html">pico_stdio_semihosting</a></td></tr>
118 <tr class="memdesc:group__pico__stdio__semihosting"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental support for stdout using RAM semihosting. <br /></td></tr>
119 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
120 <tr class="memitem:group__pico__stdio__uart"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio__uart.html">pico_stdio_uart</a></td></tr>
121 <tr class="memdesc:group__pico__stdio__uart"><td class="mdescLeft">&#160;</td><td class="mdescRight">Support for stdin/stdout using UART. <br /></td></tr>
122 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
123 <tr class="memitem:group__pico__stdio__rtt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio__rtt.html">pico_stdio_rtt</a></td></tr>
124 <tr class="memdesc:group__pico__stdio__rtt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Support for stdin/stdout using SEGGER RTT. <br /></td></tr>
125 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:group__pico__stdio__usb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio__usb.html">pico_stdio_usb</a></td></tr>
127 <tr class="memdesc:group__pico__stdio__usb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Support for stdin/stdout over USB serial (CDC) <br /></td></tr>
128 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
129 </table><table class="memberdecls">
130 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
131 Functions</h2></td></tr>
132 <tr class="memitem:ga0e604311fb226dae91ff4eb17a19d67a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga0e604311fb226dae91ff4eb17a19d67a">stdio_init_all</a> (void)</td></tr>
133 <tr class="memdesc:ga0e604311fb226dae91ff4eb17a19d67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize all of the present standard stdio types that are linked into the binary.  <a href="group__pico__stdio.html#ga0e604311fb226dae91ff4eb17a19d67a">More...</a><br /></td></tr>
134 <tr class="separator:ga0e604311fb226dae91ff4eb17a19d67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:gace6c31545f212bf181718f4fc7587ea7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#gace6c31545f212bf181718f4fc7587ea7">stdio_deinit_all</a> (void)</td></tr>
136 <tr class="memdesc:gace6c31545f212bf181718f4fc7587ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitialize all of the present standard stdio types that are linked into the binary.  <a href="group__pico__stdio.html#gace6c31545f212bf181718f4fc7587ea7">More...</a><br /></td></tr>
137 <tr class="separator:gace6c31545f212bf181718f4fc7587ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:ga90927805d6b48285139ab31098623df1"><td class="memItemLeft" align="right" valign="top"><a id="ga90927805d6b48285139ab31098623df1" name="ga90927805d6b48285139ab31098623df1"></a>
139 void&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_flush</b> (void)</td></tr>
140 <tr class="memdesc:ga90927805d6b48285139ab31098623df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes any buffered output. <br /></td></tr>
141 <tr class="separator:ga90927805d6b48285139ab31098623df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
142 <tr class="memitem:ga26d27f1b58f1385798f93a9799c40b73"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga26d27f1b58f1385798f93a9799c40b73">stdio_getchar_timeout_us</a> (uint32_t timeout_us)</td></tr>
143 <tr class="memdesc:ga26d27f1b58f1385798f93a9799c40b73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a character from stdin if there is one available within a timeout.  <a href="group__pico__stdio.html#ga26d27f1b58f1385798f93a9799c40b73">More...</a><br /></td></tr>
144 <tr class="separator:ga26d27f1b58f1385798f93a9799c40b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
145 <tr class="memitem:ga5d24f1a711eba3e0084b6310f6478c1a"><td class="memItemLeft" align="right" valign="top"><a id="ga5d24f1a711eba3e0084b6310f6478c1a" name="ga5d24f1a711eba3e0084b6310f6478c1a"></a>
146 static int&#160;</td><td class="memItemRight" valign="bottom"><b>getchar_timeout_us</b> (uint32_t timeout_us)</td></tr>
147 <tr class="memdesc:ga5d24f1a711eba3e0084b6310f6478c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="group__pico__stdio.html#ga26d27f1b58f1385798f93a9799c40b73">stdio_getchar_timeout_us</a> for backwards compatibility. <br /></td></tr>
148 <tr class="separator:ga5d24f1a711eba3e0084b6310f6478c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:ga826d33ec05c3e33dbddf0cb09e329562"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga826d33ec05c3e33dbddf0cb09e329562">stdio_set_driver_enabled</a> (<a class="el" href="structstdio__driver.html">stdio_driver_t</a> *driver, bool enabled)</td></tr>
150 <tr class="memdesc:ga826d33ec05c3e33dbddf0cb09e329562"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds or removes a driver from the list of active drivers used for input/output.  <a href="group__pico__stdio.html#ga826d33ec05c3e33dbddf0cb09e329562">More...</a><br /></td></tr>
151 <tr class="separator:ga826d33ec05c3e33dbddf0cb09e329562"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <tr class="memitem:gae3944ee24af8163a9538f01cda3e28df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#gae3944ee24af8163a9538f01cda3e28df">stdio_filter_driver</a> (<a class="el" href="structstdio__driver.html">stdio_driver_t</a> *driver)</td></tr>
153 <tr class="memdesc:gae3944ee24af8163a9538f01cda3e28df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Control limiting of output to a single driver.  <a href="group__pico__stdio.html#gae3944ee24af8163a9538f01cda3e28df">More...</a><br /></td></tr>
154 <tr class="separator:gae3944ee24af8163a9538f01cda3e28df"><td class="memSeparator" colspan="2">&#160;</td></tr>
155 <tr class="memitem:gaba86bf2cb6b86a9078cd94dcf47b1915"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#gaba86bf2cb6b86a9078cd94dcf47b1915">stdio_set_translate_crlf</a> (<a class="el" href="structstdio__driver.html">stdio_driver_t</a> *driver, bool translate)</td></tr>
156 <tr class="memdesc:gaba86bf2cb6b86a9078cd94dcf47b1915"><td class="mdescLeft">&#160;</td><td class="mdescRight">control conversion of line feeds to carriage return on transmissions  <a href="group__pico__stdio.html#gaba86bf2cb6b86a9078cd94dcf47b1915">More...</a><br /></td></tr>
157 <tr class="separator:gaba86bf2cb6b86a9078cd94dcf47b1915"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <tr class="memitem:ga8caa718064b34ce684c02f9f1313ac41"><td class="memItemLeft" align="right" valign="top"><a id="ga8caa718064b34ce684c02f9f1313ac41" name="ga8caa718064b34ce684c02f9f1313ac41"></a>
159 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_putchar_raw</b> (int c)</td></tr>
160 <tr class="memdesc:ga8caa718064b34ce684c02f9f1313ac41"><td class="mdescLeft">&#160;</td><td class="mdescRight">putchar variant that skips any CR/LF conversion if enabled <br /></td></tr>
161 <tr class="separator:ga8caa718064b34ce684c02f9f1313ac41"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:gae67e6fe5e7c87d6f15816797020245ad"><td class="memItemLeft" align="right" valign="top"><a id="gae67e6fe5e7c87d6f15816797020245ad" name="gae67e6fe5e7c87d6f15816797020245ad"></a>
163 static int&#160;</td><td class="memItemRight" valign="bottom"><b>putchar_raw</b> (int c)</td></tr>
164 <tr class="memdesc:gae67e6fe5e7c87d6f15816797020245ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="group__pico__stdio.html#ga8caa718064b34ce684c02f9f1313ac41">stdio_putchar_raw</a> for backwards compatibility. <br /></td></tr>
165 <tr class="separator:gae67e6fe5e7c87d6f15816797020245ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
166 <tr class="memitem:gad00b5fbfdcfd83b79512b402f5881458"><td class="memItemLeft" align="right" valign="top"><a id="gad00b5fbfdcfd83b79512b402f5881458" name="gad00b5fbfdcfd83b79512b402f5881458"></a>
167 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_puts_raw</b> (const char *s)</td></tr>
168 <tr class="memdesc:gad00b5fbfdcfd83b79512b402f5881458"><td class="mdescLeft">&#160;</td><td class="mdescRight">puts variant that skips any CR/LF conversion if enabled <br /></td></tr>
169 <tr class="separator:gad00b5fbfdcfd83b79512b402f5881458"><td class="memSeparator" colspan="2">&#160;</td></tr>
170 <tr class="memitem:ga9a78025384cd3ce2095d01e09a2c0565"><td class="memItemLeft" align="right" valign="top"><a id="ga9a78025384cd3ce2095d01e09a2c0565" name="ga9a78025384cd3ce2095d01e09a2c0565"></a>
171 static int&#160;</td><td class="memItemRight" valign="bottom"><b>puts_raw</b> (const char *s)</td></tr>
172 <tr class="memdesc:ga9a78025384cd3ce2095d01e09a2c0565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="group__pico__stdio.html#gad00b5fbfdcfd83b79512b402f5881458">stdio_puts_raw</a> for backwards compatibility. <br /></td></tr>
173 <tr class="separator:ga9a78025384cd3ce2095d01e09a2c0565"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:ga4b010bf88f65fc5d38a29d5538fa80e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga4b010bf88f65fc5d38a29d5538fa80e1">stdio_set_chars_available_callback</a> (void(*fn)(void *), void *param)</td></tr>
175 <tr class="memdesc:ga4b010bf88f65fc5d38a29d5538fa80e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">get notified when there are input characters available  <a href="group__pico__stdio.html#ga4b010bf88f65fc5d38a29d5538fa80e1">More...</a><br /></td></tr>
176 <tr class="separator:ga4b010bf88f65fc5d38a29d5538fa80e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:ga7ea974d7cbc7f7e325b4a1b0fe80e4ab"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga7ea974d7cbc7f7e325b4a1b0fe80e4ab">stdio_get_until</a> (char *buf, int len, <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> until)</td></tr>
178 <tr class="memdesc:ga7ea974d7cbc7f7e325b4a1b0fe80e4ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until a timeout to reard at least one character into a buffer.  <a href="group__pico__stdio.html#ga7ea974d7cbc7f7e325b4a1b0fe80e4ab">More...</a><br /></td></tr>
179 <tr class="separator:ga7ea974d7cbc7f7e325b4a1b0fe80e4ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
180 <tr class="memitem:ga2657ebac5e66ff37d0231b2b94dcd87f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__pico__stdio.html#ga2657ebac5e66ff37d0231b2b94dcd87f">stdio_put_string</a> (const char *s, int len, bool newline, bool cr_translation)</td></tr>
181 <tr class="memdesc:ga2657ebac5e66ff37d0231b2b94dcd87f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a buffer to stdout with optional newline and carriage return insertion.  <a href="group__pico__stdio.html#ga2657ebac5e66ff37d0231b2b94dcd87f">More...</a><br /></td></tr>
182 <tr class="separator:ga2657ebac5e66ff37d0231b2b94dcd87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:gac135c621fb85b37ba7ca271ad44cc984"><td class="memItemLeft" align="right" valign="top"><a id="gac135c621fb85b37ba7ca271ad44cc984" name="gac135c621fb85b37ba7ca271ad44cc984"></a>
184 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_getchar</b> (void)</td></tr>
185 <tr class="memdesc:gac135c621fb85b37ba7ca271ad44cc984"><td class="mdescLeft">&#160;</td><td class="mdescRight">stdio_getchar Alias for getchar that definitely does not go thru the implementation in the standard C library even when PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS == 0 <br /></td></tr>
186 <tr class="separator:gac135c621fb85b37ba7ca271ad44cc984"><td class="memSeparator" colspan="2">&#160;</td></tr>
187 <tr class="memitem:ga5a0417cd80362b585340991cdbe942ad"><td class="memItemLeft" align="right" valign="top"><a id="ga5a0417cd80362b585340991cdbe942ad" name="ga5a0417cd80362b585340991cdbe942ad"></a>
188 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_putchar</b> (int)</td></tr>
189 <tr class="memdesc:ga5a0417cd80362b585340991cdbe942ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">stdio_getchar Alias for putchar that definitely does not go thru the implementation in the standard C library even when PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS == 0 <br /></td></tr>
190 <tr class="separator:ga5a0417cd80362b585340991cdbe942ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 <tr class="memitem:ga37b78b01a1defa869f4b6eae07cbc86e"><td class="memItemLeft" align="right" valign="top"><a id="ga37b78b01a1defa869f4b6eae07cbc86e" name="ga37b78b01a1defa869f4b6eae07cbc86e"></a>
192 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_puts</b> (const char *s)</td></tr>
193 <tr class="memdesc:ga37b78b01a1defa869f4b6eae07cbc86e"><td class="mdescLeft">&#160;</td><td class="mdescRight">stdio_getchar Alias for puts that definitely does not go thru the implementation in the standard C library even when PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS == 0 <br /></td></tr>
194 <tr class="separator:ga37b78b01a1defa869f4b6eae07cbc86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
195 <tr class="memitem:gaad0147c9744dfa14ffa591007310ad25"><td class="memItemLeft" align="right" valign="top"><a id="gaad0147c9744dfa14ffa591007310ad25" name="gaad0147c9744dfa14ffa591007310ad25"></a>
196 int&#160;</td><td class="memItemRight" valign="bottom"><b>stdio_vprintf</b> (const char *format, va_list va)</td></tr>
197 <tr class="memdesc:gaad0147c9744dfa14ffa591007310ad25"><td class="mdescLeft">&#160;</td><td class="mdescRight">stdio_getchar Alias for vprintf that definitely does not go thru the implementation in the standard C library even when PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS == 0 <br /></td></tr>
198 <tr class="separator:gaad0147c9744dfa14ffa591007310ad25"><td class="memSeparator" colspan="2">&#160;</td></tr>
199 <tr class="memitem:gae9afcfe3e3db353e1bddd5b87d7be454"><td class="memItemLeft" align="right" valign="top"><a id="gae9afcfe3e3db353e1bddd5b87d7be454" name="gae9afcfe3e3db353e1bddd5b87d7be454"></a>
200 int&#160;</td><td class="memItemRight" valign="bottom"><b>__printflike</b> (1, 0) stdio_printf(const char *format</td></tr>
201 <tr class="memdesc:gae9afcfe3e3db353e1bddd5b87d7be454"><td class="mdescLeft">&#160;</td><td class="mdescRight">stdio_getchar Alias for printf that definitely does not go thru the implementation in the standard C library even when PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS == 0 <br /></td></tr>
202 <tr class="separator:gae9afcfe3e3db353e1bddd5b87d7be454"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 </table>
204 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
205 <p >Customized stdio support allowing for input and output from UART, USB, semi-hosting etc. </p>
206 <p >Note the API for adding additional input output devices is not yet considered stable </p>
207 <h2 class="groupheader">Function Documentation</h2>
208 <a id="gace6c31545f212bf181718f4fc7587ea7" name="gace6c31545f212bf181718f4fc7587ea7"></a>
209 <h2 class="memtitle"><span class="permalink"><a href="#gace6c31545f212bf181718f4fc7587ea7">&#9670;&nbsp;</a></span>stdio_deinit_all()</h2>
210
211 <div class="memitem">
212 <div class="memproto">
213       <table class="memname">
214         <tr>
215           <td class="memname">bool stdio_deinit_all </td>
216           <td>(</td>
217           <td class="paramtype">void&#160;</td>
218           <td class="paramname"></td><td>)</td>
219           <td></td>
220         </tr>
221       </table>
222 </div><div class="memdoc">
223
224 <p>Deinitialize all of the present standard stdio types that are linked into the binary. </p>
225 <p >This method currently only supports stdio_uart and stdio_semihosting</p>
226 <dl class="section return"><dt>Returns</dt><dd>true if all outputs was successfully deinitialized, false otherwise. </dd></dl>
227 <dl class="section see"><dt>See also</dt><dd>stdio_uart, stdio_usb, stdio_semihosting, stdio_rtt </dd></dl>
228
229 </div>
230 </div>
231 <a id="gae3944ee24af8163a9538f01cda3e28df" name="gae3944ee24af8163a9538f01cda3e28df"></a>
232 <h2 class="memtitle"><span class="permalink"><a href="#gae3944ee24af8163a9538f01cda3e28df">&#9670;&nbsp;</a></span>stdio_filter_driver()</h2>
233
234 <div class="memitem">
235 <div class="memproto">
236       <table class="memname">
237         <tr>
238           <td class="memname">void stdio_filter_driver </td>
239           <td>(</td>
240           <td class="paramtype"><a class="el" href="structstdio__driver.html">stdio_driver_t</a> *&#160;</td>
241           <td class="paramname"><em>driver</em></td><td>)</td>
242           <td></td>
243         </tr>
244       </table>
245 </div><div class="memdoc">
246
247 <p>Control limiting of output to a single driver. </p>
248 <dl class="section note"><dt>Note</dt><dd>this method should always be called on an initialized driver</dd></dl>
249 <dl class="params"><dt>Parameters</dt><dd>
250   <table class="params">
251     <tr><td class="paramname">driver</td><td>if non-null then output only that driver will be used for input/output (assuming it is in the list of enabled drivers). if NULL then all enabled drivers will be used </td></tr>
252   </table>
253   </dd>
254 </dl>
255
256 </div>
257 </div>
258 <a id="ga7ea974d7cbc7f7e325b4a1b0fe80e4ab" name="ga7ea974d7cbc7f7e325b4a1b0fe80e4ab"></a>
259 <h2 class="memtitle"><span class="permalink"><a href="#ga7ea974d7cbc7f7e325b4a1b0fe80e4ab">&#9670;&nbsp;</a></span>stdio_get_until()</h2>
260
261 <div class="memitem">
262 <div class="memproto">
263       <table class="memname">
264         <tr>
265           <td class="memname">int stdio_get_until </td>
266           <td>(</td>
267           <td class="paramtype">char *&#160;</td>
268           <td class="paramname"><em>buf</em>, </td>
269         </tr>
270         <tr>
271           <td class="paramkey"></td>
272           <td></td>
273           <td class="paramtype">int&#160;</td>
274           <td class="paramname"><em>len</em>, </td>
275         </tr>
276         <tr>
277           <td class="paramkey"></td>
278           <td></td>
279           <td class="paramtype"><a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td>
280           <td class="paramname"><em>until</em>&#160;</td>
281         </tr>
282         <tr>
283           <td></td>
284           <td>)</td>
285           <td></td><td></td>
286         </tr>
287       </table>
288 </div><div class="memdoc">
289
290 <p>Waits until a timeout to reard at least one character into a buffer. </p>
291 <p >This method returns as soon as input is available, but more characters may be returned up to the end of the buffer.</p>
292 <dl class="params"><dt>Parameters</dt><dd>
293   <table class="params">
294     <tr><td class="paramname">buf</td><td>the buffer to read into </td></tr>
295     <tr><td class="paramname">len</td><td>the length of the buffer </td></tr>
296   </table>
297   </dd>
298 </dl>
299 <dl class="section return"><dt>Returns</dt><dd>the number of characters read or PICO_ERROR_TIMEOUT </dd></dl>
300 <dl class="params"><dt>Parameters</dt><dd>
301   <table class="params">
302     <tr><td class="paramname">until</td><td>the time after which to return PICO_ERROR_TIMEOUT if no characters are available </td></tr>
303   </table>
304   </dd>
305 </dl>
306
307 </div>
308 </div>
309 <a id="ga26d27f1b58f1385798f93a9799c40b73" name="ga26d27f1b58f1385798f93a9799c40b73"></a>
310 <h2 class="memtitle"><span class="permalink"><a href="#ga26d27f1b58f1385798f93a9799c40b73">&#9670;&nbsp;</a></span>stdio_getchar_timeout_us()</h2>
311
312 <div class="memitem">
313 <div class="memproto">
314       <table class="memname">
315         <tr>
316           <td class="memname">int stdio_getchar_timeout_us </td>
317           <td>(</td>
318           <td class="paramtype">uint32_t&#160;</td>
319           <td class="paramname"><em>timeout_us</em></td><td>)</td>
320           <td></td>
321         </tr>
322       </table>
323 </div><div class="memdoc">
324
325 <p>Return a character from stdin if there is one available within a timeout. </p>
326 <dl class="params"><dt>Parameters</dt><dd>
327   <table class="params">
328     <tr><td class="paramname">timeout_us</td><td>the timeout in microseconds, or 0 to not wait for a character if none available. </td></tr>
329   </table>
330   </dd>
331 </dl>
332 <dl class="section return"><dt>Returns</dt><dd>the character from 0-255 or PICO_ERROR_TIMEOUT if timeout occurs </dd></dl>
333
334 </div>
335 </div>
336 <a id="ga0e604311fb226dae91ff4eb17a19d67a" name="ga0e604311fb226dae91ff4eb17a19d67a"></a>
337 <h2 class="memtitle"><span class="permalink"><a href="#ga0e604311fb226dae91ff4eb17a19d67a">&#9670;&nbsp;</a></span>stdio_init_all()</h2>
338
339 <div class="memitem">
340 <div class="memproto">
341       <table class="memname">
342         <tr>
343           <td class="memname">bool stdio_init_all </td>
344           <td>(</td>
345           <td class="paramtype">void&#160;</td>
346           <td class="paramname"></td><td>)</td>
347           <td></td>
348         </tr>
349       </table>
350 </div><div class="memdoc">
351
352 <p>Initialize all of the present standard stdio types that are linked into the binary. </p>
353 <p >Call this method once you have set up your clocks to enable the stdio support for UART, USB, semihosting, and RTT based on the presence of the respective libraries in the binary.</p>
354 <p >When stdio_usb is configured, this method can be optionally made to block, waiting for a connection via the variables specified in <a class="el" href="group__pico__stdio__usb.html#gab87bcfa3f24e5a3fe92a944f9eecc460">stdio_usb_init</a> (i.e. PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS)</p>
355 <dl class="section return"><dt>Returns</dt><dd>true if at least one output was successfully initialized, false otherwise. </dd></dl>
356 <dl class="section see"><dt>See also</dt><dd>stdio_uart, stdio_usb, stdio_semihosting, stdio_rtt </dd></dl>
357
358 </div>
359 </div>
360 <a id="ga2657ebac5e66ff37d0231b2b94dcd87f" name="ga2657ebac5e66ff37d0231b2b94dcd87f"></a>
361 <h2 class="memtitle"><span class="permalink"><a href="#ga2657ebac5e66ff37d0231b2b94dcd87f">&#9670;&nbsp;</a></span>stdio_put_string()</h2>
362
363 <div class="memitem">
364 <div class="memproto">
365       <table class="memname">
366         <tr>
367           <td class="memname">int stdio_put_string </td>
368           <td>(</td>
369           <td class="paramtype">const char *&#160;</td>
370           <td class="paramname"><em>s</em>, </td>
371         </tr>
372         <tr>
373           <td class="paramkey"></td>
374           <td></td>
375           <td class="paramtype">int&#160;</td>
376           <td class="paramname"><em>len</em>, </td>
377         </tr>
378         <tr>
379           <td class="paramkey"></td>
380           <td></td>
381           <td class="paramtype">bool&#160;</td>
382           <td class="paramname"><em>newline</em>, </td>
383         </tr>
384         <tr>
385           <td class="paramkey"></td>
386           <td></td>
387           <td class="paramtype">bool&#160;</td>
388           <td class="paramname"><em>cr_translation</em>&#160;</td>
389         </tr>
390         <tr>
391           <td></td>
392           <td>)</td>
393           <td></td><td></td>
394         </tr>
395       </table>
396 </div><div class="memdoc">
397
398 <p>Prints a buffer to stdout with optional newline and carriage return insertion. </p>
399 <p >This method returns as soon as input is available, but more characters may be returned up to the end of the buffer.</p>
400 <dl class="params"><dt>Parameters</dt><dd>
401   <table class="params">
402     <tr><td class="paramname">s</td><td>the characters to print </td></tr>
403     <tr><td class="paramname">len</td><td>the length of s </td></tr>
404     <tr><td class="paramname">newline</td><td>true if a newline should be added after the string </td></tr>
405     <tr><td class="paramname">cr_translation</td><td>true if line feed to carriage return translation should be performed </td></tr>
406   </table>
407   </dd>
408 </dl>
409 <dl class="section return"><dt>Returns</dt><dd>the number of characters written </dd></dl>
410
411 </div>
412 </div>
413 <a id="ga4b010bf88f65fc5d38a29d5538fa80e1" name="ga4b010bf88f65fc5d38a29d5538fa80e1"></a>
414 <h2 class="memtitle"><span class="permalink"><a href="#ga4b010bf88f65fc5d38a29d5538fa80e1">&#9670;&nbsp;</a></span>stdio_set_chars_available_callback()</h2>
415
416 <div class="memitem">
417 <div class="memproto">
418       <table class="memname">
419         <tr>
420           <td class="memname">void stdio_set_chars_available_callback </td>
421           <td>(</td>
422           <td class="paramtype">void(*)(void *)&#160;</td>
423           <td class="paramname"><em>fn</em>, </td>
424         </tr>
425         <tr>
426           <td class="paramkey"></td>
427           <td></td>
428           <td class="paramtype">void *&#160;</td>
429           <td class="paramname"><em>param</em>&#160;</td>
430         </tr>
431         <tr>
432           <td></td>
433           <td>)</td>
434           <td></td><td></td>
435         </tr>
436       </table>
437 </div><div class="memdoc">
438
439 <p>get notified when there are input characters available </p>
440 <dl class="params"><dt>Parameters</dt><dd>
441   <table class="params">
442     <tr><td class="paramname">fn</td><td>Callback function to be called when characters are available. Pass NULL to cancel any existing callback </td></tr>
443     <tr><td class="paramname">param</td><td>Pointer to pass to the callback </td></tr>
444   </table>
445   </dd>
446 </dl>
447
448 </div>
449 </div>
450 <a id="ga826d33ec05c3e33dbddf0cb09e329562" name="ga826d33ec05c3e33dbddf0cb09e329562"></a>
451 <h2 class="memtitle"><span class="permalink"><a href="#ga826d33ec05c3e33dbddf0cb09e329562">&#9670;&nbsp;</a></span>stdio_set_driver_enabled()</h2>
452
453 <div class="memitem">
454 <div class="memproto">
455       <table class="memname">
456         <tr>
457           <td class="memname">void stdio_set_driver_enabled </td>
458           <td>(</td>
459           <td class="paramtype"><a class="el" href="structstdio__driver.html">stdio_driver_t</a> *&#160;</td>
460           <td class="paramname"><em>driver</em>, </td>
461         </tr>
462         <tr>
463           <td class="paramkey"></td>
464           <td></td>
465           <td class="paramtype">bool&#160;</td>
466           <td class="paramname"><em>enabled</em>&#160;</td>
467         </tr>
468         <tr>
469           <td></td>
470           <td>)</td>
471           <td></td><td></td>
472         </tr>
473       </table>
474 </div><div class="memdoc">
475
476 <p>Adds or removes a driver from the list of active drivers used for input/output. </p>
477 <dl class="section note"><dt>Note</dt><dd>this method should always be called on an initialized driver and is not re-entrant </dd></dl>
478 <dl class="params"><dt>Parameters</dt><dd>
479   <table class="params">
480     <tr><td class="paramname">driver</td><td>the driver </td></tr>
481     <tr><td class="paramname">enabled</td><td>true to add, false to remove </td></tr>
482   </table>
483   </dd>
484 </dl>
485
486 </div>
487 </div>
488 <a id="gaba86bf2cb6b86a9078cd94dcf47b1915" name="gaba86bf2cb6b86a9078cd94dcf47b1915"></a>
489 <h2 class="memtitle"><span class="permalink"><a href="#gaba86bf2cb6b86a9078cd94dcf47b1915">&#9670;&nbsp;</a></span>stdio_set_translate_crlf()</h2>
490
491 <div class="memitem">
492 <div class="memproto">
493       <table class="memname">
494         <tr>
495           <td class="memname">void stdio_set_translate_crlf </td>
496           <td>(</td>
497           <td class="paramtype"><a class="el" href="structstdio__driver.html">stdio_driver_t</a> *&#160;</td>
498           <td class="paramname"><em>driver</em>, </td>
499         </tr>
500         <tr>
501           <td class="paramkey"></td>
502           <td></td>
503           <td class="paramtype">bool&#160;</td>
504           <td class="paramname"><em>translate</em>&#160;</td>
505         </tr>
506         <tr>
507           <td></td>
508           <td>)</td>
509           <td></td><td></td>
510         </tr>
511       </table>
512 </div><div class="memdoc">
513
514 <p>control conversion of line feeds to carriage return on transmissions </p>
515 <dl class="section note"><dt>Note</dt><dd>this method should always be called on an initialized driver</dd></dl>
516 <dl class="params"><dt>Parameters</dt><dd>
517   <table class="params">
518     <tr><td class="paramname">driver</td><td>the driver </td></tr>
519     <tr><td class="paramname">translate</td><td>If true, convert line feeds to carriage return on transmissions </td></tr>
520   </table>
521   </dd>
522 </dl>
523
524 </div>
525 </div>
526 </div><!-- contents -->
527 </div><!-- doc-content -->
528
529         <script src="main.js"></script>
530 </body>
531 </html>
This page took 0.059969 seconds and 4 git commands to generate.