📄 usart_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: 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="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><h1>usart.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>USART driver library. <p>This file contains basic drivers for the AVR32 USART, with support for all all modes, settings and clock speeds.<p><ul><li>Compiler: IAR EWAAVR32 and GNU GCC for AVR32</li><li>Supported devices: All AVR32 devices with a USART module can be used.</li><li>AppNote: AVR32100 - Communication with the AVR32 USART</li></ul><p><dl class="author" compact><dt><b>Author:</b></dt><dd>Atmel Corporation: <a href="http://www.atmel.com">http://www.atmel.com</a> <br> Support email: <a href="mailto:avr32@atmel.com">avr32@atmel.com</a></dd></dl><dl class="rcs" compact><dt><b>Name</b></dt><dd></dd></dl><dl class="rcs" compact><dt><b>Revision</b></dt><dd>1.7 </dd></dl><dl class="rcs" compact><dt><b>RCSfile</b></dt><dd><a class="el" href="usart_8c.html">usart.c</a>,v </dd></dl><dl class="rcs" compact><dt><b>Date</b></dt><dd>2006/05/10 13:00:07 </dd></dl><p>Definition in file <a class="el" href="usart_8c-source.html">usart.c</a>.<p><code>#include "<a class="el" href="usart_8h-source.html">usart.h</a>"</code><br><p>Include dependency graph for usart.c:<p><center><img src="usart_8c__incl.png" border="0" usemap="#usart.c_map" alt=""></center><map name="usart.c_map"><area href="usart_8h.html" shape="rect" coords="121,8,182,32" alt=""></map><p><a href="usart_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="usart_8c.html#0cd4c3b95035f5943696ffd9b56ee494">usart_bw_write_char</a> (volatile struct 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="usart_8c.html#3637cfca68c8f4aef6efa48feee70b05">usart_framing_error</a> (volatile struct 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="usart_8c.html#ad19b20067ca5ccf90d584e3b09ab02a">usart_getchar</a> (volatile struct 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="usart_8c.html#54b39126c57d8c1511a1f199b681a8eb">usart_init_handshaking</a> (volatile struct 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="usart_8c.html#8db29da20412777c74c322d0fae89ecb">usart_init_IrDA</a> (volatile struct 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="usart_8c.html#8e201d6c020402a4b2864d67ae8f4935">usart_init_iso7816</a> (volatile struct 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="usart_8c.html#10edfa287366908edc4182421d00008b">usart_init_modem</a> (volatile struct 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="usart_8c.html#48c8d76fc9fdde84b94a6e09184a6446">usart_init_rs232</a> (volatile struct 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="usart_8c.html#cdd842541ff63ad361bb137f464bf1a0">usart_init_rs485</a> (volatile struct 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="usart_8c.html#8130f0bc38f83949813164455b44c215">usart_mode_is_multidrop</a> (volatile struct 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="usart_8c.html#f19dc6969879984f29017d93fb7eb457">usart_overrun_error</a> (volatile struct 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="usart_8c.html#d7c23614e6558fa48bed23c78c07515f">usart_parity_error</a> (volatile struct 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="usart_8c.html#908695fc913f77a6c1ab2a89e201a1fd">usart_putchar</a> (volatile struct 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="usart_8c.html#ada9ca86fda25626da4a1c4b1e723682">usart_read_char</a> (volatile struct 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="usart_8c.html#e994c1e7797dda76388176f208a2e6f2">usart_reset</a> (volatile struct avr32_usart_t *usart)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usart_8c.html#5f5ba5edef2948c6e5e8c37ba07e5989">usart_reset_status</a> (volatile struct avr32_usart_t *usart)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Reset error status. <a href="#5f5ba5edef2948c6e5e8c37ba07e5989"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="usart_8c.html#a5490f06d469da4ce5723c9e1555d269">usart_send_address</a> (volatile struct 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="usart_8c.html#6f965be9b52e86ba6f47f12a0b6d08e7">usart_set_baudrate</a> (volatile struct 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="usart_8c.html#26a849327e3bccdef17734f30667d9bd">usart_write_char</a> (volatile struct avr32_usart_t *usart, int c)</td></tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="0cd4c3b95035f5943696ffd9b56ee494"></a><!-- doxytag: member="usart.c::usart_bw_write_char" ref="0cd4c3b95035f5943696ffd9b56ee494" args="(volatile struct 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 struct 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="usart_8c-source.html#l00484">484</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="usart_8h-source.html#l00253">USART_SUCCESS</a>, and <a class="el" href="usart_8c-source.html#l00492">usart_write_char()</a>.<p>Referenced by <a class="el" href="usart_8c-source.html#l00461">usart_send_address()</a>.<div class="fragment"><pre class="fragment"><a name="l00485"></a>00485 {<a name="l00486"></a>00486 <span class="keywordflow">while</span> (<a class="code" href="usart_8c.html#26a849327e3bccdef17734f30667d9bd">usart_write_char</a>(usart, c) != <a class="code" href="usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>) {<a name="l00487"></a>00487 }<a name="l00488"></a>00488 <a name="l00489"></a>00489 <span class="keywordflow">return</span>;<a name="l00490"></a>00490 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8c_0cd4c3b95035f5943696ffd9b56ee494_cgraph.png" border="0" usemap="#usart_8c_0cd4c3b95035f5943696ffd9b56ee494_cgraph_map" alt=""></center><map name="usart_8c_0cd4c3b95035f5943696ffd9b56ee494_cgraph_map"><area href="usart_8c.html#26a849327e3bccdef17734f30667d9bd" shape="rect" coords="213,6,347,30" alt=""></map></div></div><p><a class="anchor" name="3637cfca68c8f4aef6efa48feee70b05"></a><!-- doxytag: member="usart.c::usart_framing_error" ref="3637cfca68c8f4aef6efa48feee70b05" args="(volatile struct 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 struct 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="usart_8c-source.html#l00426">426</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<div class="fragment"><pre class="fragment"><a name="l00427"></a>00427 {<a name="l00428"></a>00428 <span class="keywordflow">return</span> ((usart->csr & (1<<AVR32_USART_CSR_FRAME_OFFSET)) != 0);<a name="l00429"></a>00429 }</pre></div><p></div></div><p><a class="anchor" name="ad19b20067ca5ccf90d584e3b09ab02a"></a><!-- doxytag: member="usart.c::usart_getchar" ref="ad19b20067ca5ccf90d584e3b09ab02a" args="(volatile struct 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 struct 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="usart_8c-source.html#l00524">524</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="usart_8c-source.html#l00504">usart_read_char()</a>, <a class="el" href="usart_8h-source.html#l00263">USART_RX_EMPTY</a>, and <a class="el" href="usart_8h-source.html#l00265">USART_RX_ERROR</a>.<div class="fragment"><pre class="fragment"><a name="l00525"></a>00525 {<a name="l00526"></a>00526 <span class="keywordtype">int</span> c, ret;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -