2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml">
7 <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 <title>UARTs — Freedom Metal v201905 documentation</title>
10 <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
11 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
13 <script type="text/javascript" src="../_static/jquery.js"></script>
14 <script type="text/javascript" src="../_static/underscore.js"></script>
15 <script type="text/javascript" src="../_static/doctools.js"></script>
16 <link rel="index" title="Index" href="../genindex.html" />
17 <link rel="search" title="Search" href="../search.html" />
18 <link rel="prev" title="TTY" href="tty.html" />
20 <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
23 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
28 <div class="document">
29 <div class="documentwrapper">
30 <div class="bodywrapper">
33 <div class="body" role="main">
35 <div class="section" id="uarts">
36 <h1>UARTs<a class="headerlink" href="#uarts" title="Permalink to this headline">¶</a></h1>
37 <p>API for UART serial ports. </p>
38 <div class="breathe-sectiondef docutils container">
39 <p class="breathe-sectiondef-title rubric">Functions</p>
41 <dt id="_CPPv315metal_uart_initP10metal_uarti">
42 <span id="_CPPv215metal_uart_initP10metal_uarti"></span><span id="metal_uart_init__metal_uartP.i"></span><span class="target" id="uart_8h_1adbf9256d85888e26836baba4a51fc1e4"></span>void <code class="descname">metal_uart_init</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em>, int <em>baud_rate</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv315metal_uart_initP10metal_uarti" title="Permalink to this definition">¶</a><br /></dt>
43 <dd><p>Initialize UART device. </p>
44 <p>Initialize the UART device described by the UART handle. This function must be called before any other method on the UART can be invoked. It is invalid to initialize a UART more than once.</p>
45 <p><dl class="docutils">
46 <dt><strong>Parameters</strong></dt>
47 <dd><ul class="breatheparameterlist first last simple">
48 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
49 <li><code class="docutils literal notranslate"><span class="pre">baud_rate</span></code>: the baud rate to set the UART to </li>
57 <dt id="_CPPv315metal_uart_putcP10metal_uarth">
58 <span id="_CPPv215metal_uart_putcP10metal_uarth"></span><span id="metal_uart_putc__metal_uartP.unsigned-c"></span><span class="target" id="uart_8h_1aed0d369d1bccd7703496b85e4a660e9c"></span>int <code class="descname">metal_uart_putc</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em>, unsigned char <em>c</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv315metal_uart_putcP10metal_uarth" title="Permalink to this definition">¶</a><br /></dt>
59 <dd><p>Output a character over the UART. </p>
60 <p><dl class="docutils">
61 <dt><strong>Return</strong></dt>
62 <dd>0 upon success </dd>
63 <dt><strong>Parameters</strong></dt>
64 <dd><ul class="breatheparameterlist first last simple">
65 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
66 <li><code class="docutils literal notranslate"><span class="pre">c</span></code>: The character to send over the UART </li>
74 <dt id="_CPPv315metal_uart_getcP10metal_uartPh">
75 <span id="_CPPv215metal_uart_getcP10metal_uartPh"></span><span id="metal_uart_getc__metal_uartP.unsigned-cP"></span><span class="target" id="uart_8h_1a8bb43c693eaef1b3a50f7f90da319723"></span>int <code class="descname">metal_uart_getc</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em>, unsigned char *<em>c</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv315metal_uart_getcP10metal_uartPh" title="Permalink to this definition">¶</a><br /></dt>
76 <dd><p>Read a character sent over the UART. </p>
77 <p><dl class="docutils">
78 <dt><strong>Return</strong></dt>
79 <dd>0 upon success </dd>
80 <dt><strong>Parameters</strong></dt>
81 <dd><ul class="breatheparameterlist first last simple">
82 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
83 <li><code class="docutils literal notranslate"><span class="pre">c</span></code>: The varible to hold the read character </li>
91 <dt id="_CPPv324metal_uart_get_baud_rateP10metal_uart">
92 <span id="_CPPv224metal_uart_get_baud_rateP10metal_uart"></span><span id="metal_uart_get_baud_rate__metal_uartP"></span><span class="target" id="uart_8h_1a9ad40970f7ddee96d8742262108bace7"></span>int <code class="descname">metal_uart_get_baud_rate</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv324metal_uart_get_baud_rateP10metal_uart" title="Permalink to this definition">¶</a><br /></dt>
93 <dd><p>Get the baud rate of the UART peripheral. </p>
94 <p><dl class="docutils">
95 <dt><strong>Return</strong></dt>
96 <dd>The current baud rate of the UART </dd>
97 <dt><strong>Parameters</strong></dt>
98 <dd><ul class="breatheparameterlist first last simple">
99 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
106 <dl class="function">
107 <dt id="_CPPv324metal_uart_set_baud_rateP10metal_uarti">
108 <span id="_CPPv224metal_uart_set_baud_rateP10metal_uarti"></span><span id="metal_uart_set_baud_rate__metal_uartP.i"></span><span class="target" id="uart_8h_1a1dfd8db9befd5a70a1575a78c7b2be9b"></span>int <code class="descname">metal_uart_set_baud_rate</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em>, int <em>baud_rate</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv324metal_uart_set_baud_rateP10metal_uarti" title="Permalink to this definition">¶</a><br /></dt>
109 <dd><p>Set the baud rate of the UART peripheral. </p>
110 <p><dl class="docutils">
111 <dt><strong>Return</strong></dt>
112 <dd>the new baud rate of the UART </dd>
113 <dt><strong>Parameters</strong></dt>
114 <dd><ul class="breatheparameterlist first last simple">
115 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
116 <li><code class="docutils literal notranslate"><span class="pre">baud_rate</span></code>: The baud rate to configure </li>
123 <dl class="function">
124 <dt id="_CPPv331metal_uart_interrupt_controllerP10metal_uart">
125 <span id="_CPPv231metal_uart_interrupt_controllerP10metal_uart"></span><span id="metal_uart_interrupt_controller__metal_uartP"></span><span class="target" id="uart_8h_1ab18c5494323eafd1fb571f4f0a870d7f"></span><em class="property">struct</em> <a class="reference internal" href="interrupt.html#_CPPv315metal_interrupt" title="metal_interrupt">metal_interrupt</a> *<code class="descname">metal_uart_interrupt_controller</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv331metal_uart_interrupt_controllerP10metal_uart" title="Permalink to this definition">¶</a><br /></dt>
126 <dd><p>Get the interrupt controller of the UART peripheral. </p>
127 <p>Get the interrupt controller for the UART peripheral. The interrupt controller must be initialized before any interrupts can be registered or enabled with it.</p>
128 <p><dl class="docutils">
129 <dt><strong>Return</strong></dt>
130 <dd>The handle for the UART interrupt controller </dd>
131 <dt><strong>Parameters</strong></dt>
132 <dd><ul class="breatheparameterlist first last simple">
133 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
140 <dl class="function">
141 <dt id="_CPPv327metal_uart_get_interrupt_idP10metal_uart">
142 <span id="_CPPv227metal_uart_get_interrupt_idP10metal_uart"></span><span id="metal_uart_get_interrupt_id__metal_uartP"></span><span class="target" id="uart_8h_1a785bd006fa3262d19cb54fc2e88a6a57"></span>int <code class="descname">metal_uart_get_interrupt_id</code><span class="sig-paren">(</span><em class="property">struct</em> <a class="reference internal" href="#_CPPv310metal_uart" title="metal_uart">metal_uart</a> *<em>uart</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv327metal_uart_get_interrupt_idP10metal_uart" title="Permalink to this definition">¶</a><br /></dt>
143 <dd><p>Get the interrupt ID of the UART controller. </p>
144 <p><dl class="docutils">
145 <dt><strong>Return</strong></dt>
146 <dd>The UART interrupt id </dd>
147 <dt><strong>Parameters</strong></dt>
148 <dd><ul class="breatheparameterlist first last simple">
149 <li><code class="docutils literal notranslate"><span class="pre">uart</span></code>: The UART device handle </li>
158 <dt id="_CPPv310metal_uart">
159 <span id="_CPPv210metal_uart"></span><span id="metal_uart"></span><span class="target" id="structmetal__uart"></span><em class="property">struct </em><code class="descname">metal_uart</code><a class="headerlink" href="#_CPPv310metal_uart" title="Permalink to this definition">¶</a><br /></dt>
160 <dd><em>#include <uart.h></em><p>Handle for a UART serial device. </p>
170 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
171 <div class="sphinxsidebarwrapper">
172 <h1 class="logo"><a href="../index.html">Freedom Metal</a></h1>
183 <li class="toctree-l1"><a class="reference internal" href="../introduction.html">Introduction to Freedom Metal</a></li>
184 <li class="toctree-l1"><a class="reference internal" href="../devguide.html">Developer Guide</a></li>
185 <li class="toctree-l1 current"><a class="reference internal" href="../api.html">API Reference</a><ul class="current">
186 <li class="toctree-l2"><a class="reference internal" href="button.html">Buttons</a></li>
187 <li class="toctree-l2"><a class="reference internal" href="cache.html">Caches</a></li>
188 <li class="toctree-l2"><a class="reference internal" href="clock.html">Clocks</a></li>
189 <li class="toctree-l2"><a class="reference internal" href="cpu.html">CPU</a></li>
190 <li class="toctree-l2"><a class="reference internal" href="gpio.html">GPIO</a></li>
191 <li class="toctree-l2"><a class="reference internal" href="interrupt.html">Interrupts</a></li>
192 <li class="toctree-l2"><a class="reference internal" href="itim.html">ITIM</a></li>
193 <li class="toctree-l2"><a class="reference internal" href="led.html">LEDs</a></li>
194 <li class="toctree-l2"><a class="reference internal" href="lock.html">Locks</a></li>
195 <li class="toctree-l2"><a class="reference internal" href="memory.html">Memory Enumeration</a></li>
196 <li class="toctree-l2"><a class="reference internal" href="pmp.html">PMPs</a></li>
197 <li class="toctree-l2"><a class="reference internal" href="shutdown.html">Shutdown</a></li>
198 <li class="toctree-l2"><a class="reference internal" href="spi.html">SPIs</a></li>
199 <li class="toctree-l2"><a class="reference internal" href="switch.html">Switches</a></li>
200 <li class="toctree-l2"><a class="reference internal" href="timer.html">Timer API</a></li>
201 <li class="toctree-l2"><a class="reference internal" href="tty.html">TTY</a></li>
202 <li class="toctree-l2 current"><a class="current reference internal" href="#">UARTs</a></li>
207 <div class="relations">
208 <h3>Related Topics</h3>
210 <li><a href="../index.html">Documentation overview</a><ul>
211 <li><a href="../api.html">API Reference</a><ul>
212 <li>Previous: <a href="tty.html" title="previous chapter">TTY</a></li>
217 <div id="searchbox" style="display: none" role="search">
218 <h3>Quick search</h3>
219 <div class="searchformwrapper">
220 <form class="search" action="../search.html" method="get">
221 <input type="text" name="q" />
222 <input type="submit" value="Go" />
223 <input type="hidden" name="check_keywords" value="yes" />
224 <input type="hidden" name="area" value="default" />
228 <script type="text/javascript">$('#searchbox').show(0);</script>
231 <div class="clearer"></div>
234 ©2019, SiFive Inc..
237 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.7.5</a>
238 & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.11</a>
241 <a href="../_sources/apiref/uart.rst.txt"
242 rel="nofollow">Page source</a>