📄 testsuite_2bravo__validation_2usart_2usart_8c.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>AVR321000 Communication with the AVR32 USART: testsuite/bravo_validation/usart/usart.c File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.1 --><div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div><div class="nav"><a class="el" href="dir_ed041fa8052270846d9a0dab17b0d151.html">testsuite</a> » <a class="el" href="dir_18e6971fa792d4606dff45a531675719.html">bravo_validation</a> » <a class="el" href="dir_7f7ec19554deddf0beb795c9218a445b.html">usart</a></div><h1>usart.c File Reference</h1><p><code>#include "<a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html">usart.h</a>"</code><br><p>Include dependency graph for usart.c:<p><a href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#6742a3db6c2d4cf16295223932d33df5">usart_bw_write_char</a> (volatile avr32_usart_t *usart, int c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#9b41b7d6439778a70b3c7bae5495190e">usart_framing_error</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#a751e180b091943b684b48c581aaef3e">usart_getchar</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#b00d34610c3eed1fadf32cc3d5c35dbf">usart_init_handshaking</a> (volatile avr32_usart_t *usart, struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *opt, long cpu_hz, int software_handshaking, char xon_char, char xoff_char)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#fe90cc3b0056aa859f9cd075f40800fe">usart_init_IrDA</a> (volatile avr32_usart_t *usart, struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *opt, long cpu_hz, unsigned char irda_filter)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#ded86d5a38f2f0093c3b923ceba13ced">usart_init_iso7816</a> (volatile avr32_usart_t *usart, const struct <a class="el" href="structiso7816__options__t.html">iso7816_options_t</a> *opt, int t, const long cpu_hz)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#5788e19292e7392d88925587f565f31b">usart_init_modem</a> (volatile avr32_usart_t *usart, struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *opt, long cpu_hz)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#093c5ad113e1ab43603c0d815ad8dc54">usart_init_rs232</a> (volatile avr32_usart_t *usart, struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *opt, long cpu_hz)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#036dbbb86557bfc093656d58cd9c8417">usart_init_rs485</a> (volatile avr32_usart_t *usart, struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *opt, long cpu_hz)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#cc362133839fdd80c3a8c484ccda0cc6">usart_mode_is_multidrop</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#4aadffc324ff58ec1e77ca53cc67b5ff">usart_overrun_error</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#f8545b625339cd0c1f27dd467f9ff673">usart_parity_error</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#2ff96c7ceba22b5663bee08da4633ed9">usart_putchar</a> (volatile avr32_usart_t *usart, int c)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Send a character with the usart. <a href="#2ff96c7ceba22b5663bee08da4633ed9"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#b73fc2f42bd6fe66c03d598b0158436d">usart_read_char</a> (volatile avr32_usart_t *usart, int *c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#31cf4d67fd204fb4684fff9d7994cb4c">usart_reset</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">This function will reset the USART, and disable TX and RX. <a href="#31cf4d67fd204fb4684fff9d7994cb4c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#526363b4ce2f098ac507b7461b9adf0c">usart_reset_status</a> (volatile avr32_usart_t *usart)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Reset error status. <a href="#526363b4ce2f098ac507b7461b9adf0c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#9f2429a7b9d05f100052dd791fb499df">usart_send_address</a> (volatile avr32_usart_t *usart, int address)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#87da5bc4206db1f5f9ada10c9caa286b">usart_set_baudrate</a> (volatile avr32_usart_t *usart, unsigned int baudrate, long cpu_hz)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#0c36f4b2ec5445212642ee7f94672805">usart_write_char</a> (volatile avr32_usart_t *usart, int c)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c.html#28b90f556104f041e783662329b64a38">usart_write_line</a> (volatile avr32_usart_t *usart, char *<a class="el" href="pdc__example_8c.html#ed1cfb225a5fb77461e7972691e68a72">string</a>)</td></tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="6742a3db6c2d4cf16295223932d33df5"></a><!-- doxytag: member="usart.c::usart_bw_write_char" ref="6742a3db6c2d4cf16295223932d33df5" args="(volatile avr32_usart_t *usart, int c)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void usart_bw_write_char </td> <td>(</td> <td class="paramtype">volatile avr32_usart_t * </td> <td class="paramname"> <em>usart</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>c</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p>A busy wait for writing a character to the usart. Use with *caution* <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>*usart</em> </td><td>Base address of the usart </td></tr> <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>The character (up to 9 bits) to transmit </td></tr> </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>None </dd></dl><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00431">431</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<p>Referenced by <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00408">usart_send_address()</a>.<div class="fragment"><pre class="fragment"><a name="l00432"></a>00432 {<a name="l00433"></a>00433 <span class="keywordflow">while</span> (<a class="code" href="testsuite_2bravo__validation_2usart_2usart_8c.html#0c36f4b2ec5445212642ee7f94672805">usart_write_char</a>(usart, c) != <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>) {<a name="l00434"></a>00434 }<a name="l00435"></a>00435 <a name="l00436"></a>00436 <span class="keywordflow">return</span>;<a name="l00437"></a>00437 }</pre></div><p></div></div><p><a class="anchor" name="9b41b7d6439778a70b3c7bae5495190e"></a><!-- doxytag: member="usart.c::usart_framing_error" ref="9b41b7d6439778a70b3c7bae5495190e" args="(volatile avr32_usart_t *usart)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">int usart_framing_error </td> <td>(</td> <td class="paramtype">volatile avr32_usart_t * </td> <td class="paramname"> <em>usart</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00373">373</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<div class="fragment"><pre class="fragment"><a name="l00374"></a>00374 {<a name="l00375"></a>00375 <span class="keywordflow">return</span> ((usart->csr & (1<<AVR32_USART_CSR_FRAME_OFFSET)) != 0);<a name="l00376"></a>00376 }</pre></div><p></div></div><p><a class="anchor" name="a751e180b091943b684b48c581aaef3e"></a><!-- doxytag: member="usart.c::usart_getchar" ref="a751e180b091943b684b48c581aaef3e" args="(volatile avr32_usart_t *usart)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">int usart_getchar </td> <td>(</td> <td class="paramtype">volatile avr32_usart_t * </td> <td class="paramname"> <em>usart</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Wait until a character is recevied, and return this. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>*usart</em> </td><td>Base address of the usart </td></tr> </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>The received character, or -1 upon error </dd></dl><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00471">471</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<p>Referenced by <a class="el" href="usart__example1_8c-source.html#l00018">usart_int_handler()</a>.<div class="fragment"><pre class="fragment"><a name="l00472"></a>00472 {<a name="l00473"></a>00473 <span class="keywordtype">int</span> c, ret;<a name="l00474"></a>00474 <span class="keywordflow">while</span> (((ret = <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8c.html#b73fc2f42bd6fe66c03d598b0158436d">usart_read_char</a>(usart, &c)) == <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#deb9432170d2d09a4ffbb098a1b4335e">USART_RX_EMPTY</a>)) {<a name="l00475"></a>00475 }<a name="l00476"></a>00476 <a name="l00477"></a>00477 <span class="keywordflow">if</span> (ret == <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#ffa1a7abf4e6ce54c0b64cc0826f8b4d">USART_RX_ERROR</a>)<a name="l00478"></a>00478 <span class="keywordflow">return</span> -1;<a name="l00479"></a>00479 <span class="keywordflow">else</span><a name="l00480"></a>00480 <span class="keywordflow">return</span> c;<a name="l00481"></a>00481 }</pre></div><p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -