⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usart_8h.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<p>Referenced by <a class="el" href="usart_8c-source.html#l00484">usart_bw_write_char()</a>, <a class="el" href="usart_8c-source.html#l00220">usart_init_handshaking()</a>, <a class="el" href="usart_8c-source.html#l00261">usart_init_IrDA()</a>, <a class="el" href="usart_8c-source.html#l00333">usart_init_iso7816()</a>, <a class="el" href="usart_8c-source.html#l00285">usart_init_modem()</a>, <a class="el" href="usart_8c-source.html#l00152">usart_init_rs232()</a>, <a class="el" href="usart_8c-source.html#l00310">usart_init_rs485()</a>, <a class="el" href="usart_8c-source.html#l00538">usart_putchar()</a>, <a class="el" href="usart_8c-source.html#l00504">usart_read_char()</a>, <a class="el" href="usart_8c-source.html#l00461">usart_send_address()</a>, <a class="el" href="usart_8c-source.html#l00105">usart_set_baudrate()</a>, and <a class="el" href="usart_8c-source.html#l00492">usart_write_char()</a>.</div></div><p><a class="anchor" name="481df5bfed5fec78ff5697b335ab5947"></a><!-- doxytag: member="usart.h::USART_TX_BUSY" ref="481df5bfed5fec78ff5697b335ab5947" args="" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">#define USART_TX_BUSY&nbsp;&nbsp;&nbsp;2          </td>        </tr>      </table></div><div class="memdoc"><p>Value returned by transmission function when transmitter was busy <p>Definition at line <a class="el" href="usart_8h-source.html#l00261">261</a> of file <a class="el" href="usart_8h-source.html">usart.h</a>.<p>Referenced by <a class="el" href="usart_8c-source.html#l00492">usart_write_char()</a>.</div></div><p><hr><h2>Function Documentation</h2><a class="anchor" name="0cd4c3b95035f5943696ffd9b56ee494"></a><!-- doxytag: member="usart.h::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 *&nbsp;</td>          <td class="paramname"> <em>usart</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">int&nbsp;</td>          <td class="paramname"> <em>c</em></td><td>&nbsp;</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>&nbsp;</td><td>Base address of the usart </td></tr>    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</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_8h_0cd4c3b95035f5943696ffd9b56ee494_cgraph.png" border="0" usemap="#usart_8h_0cd4c3b95035f5943696ffd9b56ee494_cgraph_map" alt=""></center><map name="usart_8h_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="ad19b20067ca5ccf90d584e3b09ab02a"></a><!-- doxytag: member="usart.h::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 *&nbsp;</td>          <td class="paramname"> <em>usart</em>          </td>          <td>&nbsp;)&nbsp;</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>&nbsp;</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;<a name="l00527"></a>00527 <a name="l00528"></a>00528         <span class="keywordflow">while</span> (((ret = <a class="code" href="usart_8c.html#ada9ca86fda25626da4a1c4b1e723682">usart_read_char</a>(usart, &amp;c)) == <a class="code" href="usart_8h.html#deb9432170d2d09a4ffbb098a1b4335e">USART_RX_EMPTY</a>)) {<a name="l00529"></a>00529         }<a name="l00530"></a>00530 <a name="l00531"></a>00531         <span class="keywordflow">if</span> (ret == <a class="code" href="usart_8h.html#ffa1a7abf4e6ce54c0b64cc0826f8b4d">USART_RX_ERROR</a>)<a name="l00532"></a>00532                 <span class="keywordflow">return</span> -1;<a name="l00533"></a>00533         <span class="keywordflow">else</span><a name="l00534"></a>00534                 <span class="keywordflow">return</span> c;<a name="l00535"></a>00535 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8h_ad19b20067ca5ccf90d584e3b09ab02a_cgraph.png" border="0" usemap="#usart_8h_ad19b20067ca5ccf90d584e3b09ab02a_cgraph_map" alt=""></center><map name="usart_8h_ad19b20067ca5ccf90d584e3b09ab02a_cgraph_map"><area href="usart_8c.html#ada9ca86fda25626da4a1c4b1e723682" shape="rect" coords="168,6,299,30" alt=""></map></div></div><p><a class="anchor" name="48c8d76fc9fdde84b94a6e09184a6446"></a><!-- doxytag: member="usart.h::usart_init_rs232" ref="48c8d76fc9fdde84b94a6e09184a6446" args="(volatile struct avr32_usart_t *usart, struct usart_options_t *opt, long cpu_hz)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int usart_init_rs232           </td>          <td>(</td>          <td class="paramtype">volatile struct avr32_usart_t *&nbsp;</td>          <td class="paramname"> <em>usart</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *&nbsp;</td>          <td class="paramname"> <em>opt</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">long&nbsp;</td>          <td class="paramname"> <em>cpu_hz</em></td><td>&nbsp;</td>        </tr>        <tr>          <td></td>          <td>)</td>          <td></td><td></td><td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>Setup the usart to use the standard RS232 protocol <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>&nbsp;</td><td>Base address of the usart </td></tr>    <tr><td valign="top"></td><td valign="top"><em>*opt</em>&nbsp;</td><td>Options needed to set up RS232 communcation (see <a class="el" href="structusart__options__t.html">usart_options_t</a>) </td></tr>    <tr><td valign="top"></td><td valign="top"><em>cpu_hz</em>&nbsp;</td><td>The usart clk frequency </td></tr>  </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>USART_SUCCESS or USART_INVALID_INPUT </dd></dl><p>Definition at line <a class="el" href="usart_8c-source.html#l00152">152</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="usart_8h-source.html#l00077">usart_options_t::baudrate</a>, <a class="el" href="usart_8h-source.html#l00104">usart_options_t::channelmode</a>, <a class="el" href="usart_8h-source.html#l00082">usart_options_t::charlength</a>, <a class="el" href="usart_8h-source.html#l00089">usart_options_t::paritytype</a>, <a class="el" href="usart_8h-source.html#l00097">usart_options_t::stopbits</a>, <a class="el" href="usart_8h-source.html#l00258">USART_INVALID_INPUT</a>, <a class="el" href="usart_8c-source.html#l00070">usart_reset()</a>, <a class="el" href="usart_8c-source.html#l00105">usart_set_baudrate()</a>, and <a class="el" href="usart_8h-source.html#l00253">USART_SUCCESS</a>.<p>Referenced by <a class="el" href="usart__example_8c-source.html#l00096">main()</a>, <a class="el" href="usart_8c-source.html#l00220">usart_init_handshaking()</a>, <a class="el" href="usart_8c-source.html#l00261">usart_init_IrDA()</a>, <a class="el" href="usart_8c-source.html#l00285">usart_init_modem()</a>, and <a class="el" href="usart_8c-source.html#l00310">usart_init_rs485()</a>.<div class="fragment"><pre class="fragment"><a name="l00153"></a>00153 {<a name="l00154"></a>00154         <span class="keywordtype">int</span> retval;<a name="l00155"></a>00155 <a name="l00156"></a>00156         <span class="comment">/* Reset the usart and shutdown RX and TX */</span><a name="l00157"></a>00157         <a class="code" href="usart_8c.html#e994c1e7797dda76388176f208a2e6f2">usart_reset</a>(usart);<a name="l00158"></a>00158 <a name="l00159"></a>00159         <span class="comment">/* Control input values */</span><a name="l00160"></a>00160         <span class="keywordflow">if</span> (opt == 0) <span class="comment">/* Null pointer */</span><a name="l00161"></a>00161                 <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00162"></a>00162         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#a6b77cc05829d2e70ee7f96194c6ce23">charlength</a> &lt; 5 || opt-&gt;<a class="code" href="structusart__options__t.html#a6b77cc05829d2e70ee7f96194c6ce23">charlength</a> &gt; 9)<a name="l00163"></a>00163                 <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00164"></a>00164         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#85401f7a6f516a5883adc0538dc27f8e">paritytype</a> &gt; 7)<a name="l00165"></a>00165                 <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00166"></a>00166         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#433a6ede2186d42b4cf19ef4b370cd61">stopbits</a> &gt; 2+255)<a name="l00167"></a>00167                 <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00168"></a>00168         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#0dc365b8779891743180e9b69116f5ea">channelmode</a> &gt; 3)<a name="l00169"></a>00169                 <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00170"></a>00170 <a name="l00171"></a>00171         <span class="keywordflow">if</span> ((retval = <a class="code" href="usart_8c.html#6f965be9b52e86ba6f47f12a0b6d08e7">usart_set_baudrate</a>(usart, opt-&gt;<a class="code" href="structusart__options__t.html#276ad428776a25b8247762bd2c82b35b">baudrate</a>, cpu_hz)) != \<a name="l00172"></a>00172              <a class="code" href="usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>)<a name="l00173"></a>00173                 <span class="keywordflow">return</span> retval;<a name="l00174"></a>00174 <a name="l00175"></a>00175         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#a6b77cc05829d2e70ee7f96194c6ce23">charlength</a> == 9) {<a name="l00176"></a>00176                 <span class="comment">/* Charlength set to 9 bits; MODE9 dominates CHRL */</span><a name="l00177"></a>00177                 usart-&gt;mr |= (1&lt;&lt;AVR32_USART_MR_MODE9_OFFSET);<a name="l00178"></a>00178         } <span class="keywordflow">else</span> {<a name="l00179"></a>00179                 <span class="comment">/* CHRL gives the charlength( - 5) when USART_MODE9=0 */</span><a name="l00180"></a>00180                 usart-&gt;mr |=<a name="l00181"></a>00181                         ((opt-&gt;<a class="code" href="structusart__options__t.html#a6b77cc05829d2e70ee7f96194c6ce23">charlength</a>-5) &lt;&lt; AVR32_USART_MR_CHRL_OFFSET);<a name="l00182"></a>00182         }<a name="l00183"></a>00183 <a name="l00184"></a>00184         usart-&gt;mr |= (opt-&gt;<a class="code" href="structusart__options__t.html#0dc365b8779891743180e9b69116f5ea">channelmode</a> &lt;&lt; AVR32_USART_MR_CHMODE_OFFSET) |<a name="l00185"></a>00185                      (opt-&gt;<a class="code" href="structusart__options__t.html#85401f7a6f516a5883adc0538dc27f8e">paritytype</a> &lt;&lt; AVR32_USART_MR_PAR_OFFSET);<a name="l00186"></a>00186 <a name="l00187"></a>00187         <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structusart__options__t.html#433a6ede2186d42b4cf19ef4b370cd61">stopbits</a> &gt; 2)<a name="l00188"></a>00188         {<a name="l00189"></a>00189                 <span class="comment">/* Set two stop bits */</span><a name="l00190"></a>00190                 usart-&gt;mr |= (2 &lt;&lt; AVR32_USART_MR_NBSTOP_OFFSET);<a name="l00191"></a>00191                 <span class="comment">/* And a timeguard period gives the rest */</span><a name="l00192"></a>00192                 usart-&gt;ttgr = (opt-&gt;<a class="code" href="structusart__options__t.html#433a6ede2186d42b4cf19ef4b370cd61">stopbits</a>-2);<a name="l00193"></a>00193         }<a name="l00194"></a>00194         <span class="keywordflow">else</span><a name="l00195"></a>00195                 <span class="comment">/* Insert 1, 1.5 or 2 stop bits */</span><a name="l00196"></a>00196                 usart-&gt;mr |= (opt-&gt;<a class="code" href="structusart__options__t.html#433a6ede2186d42b4cf19ef4b370cd61">stopbits</a> &lt;&lt; AVR32_USART_MR_NBSTOP_OFFSET);<a name="l00197"></a>00197 <a name="l00198"></a>00198         <span class="comment">/* Setup complete; enable communication */</span><a name="l00199"></a>00199         <span class="comment">/* Enable input and output */</span><a name="l00200"></a>00200         usart-&gt;cr |= (1&lt;&lt;AVR32_USART_CR_TXEN_OFFSET) |<a name="l00201"></a>00201                      (1&lt;&lt;AVR32_USART_CR_RXEN_OFFSET);<a name="l00202"></a>00202 <a name="l00203"></a>00203         <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00204"></a>00204 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8h_48c8d76fc9fdde84b94a6e09184a6446_cgraph.png" border="0" usemap="#usart_8h_48c8d76fc9fdde84b94a6e09184a6446_cgraph_map" alt=""></center><map name="usart_8h_48c8d76fc9fdde84b94a6e09184a6446_cgraph_map"><area href="usart_8c.html#e994c1e7797dda76388176f208a2e6f2" shape="rect" coords="212,6,308,30" alt=""><area href="usart_8c.html#6f965be9b52e86ba6f47f12a0b6d08e7" shape="rect" coords="184,54,336,78" alt=""></map></div></div><p><a class="anchor" name="908695fc913f77a6c1ab2a89e201a1fd"></a><!-- doxytag: member="usart.h::usart_putchar" ref="908695fc913f77a6c1ab2a89e201a1fd" args="(volatile struct avr32_usart_t *usart, int c)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int usart_putchar           </td>          <td>(</td>          <td class="paramtype">volatile struct avr32_usart_t *&nbsp;</td>          <td class="paramname"> <em>usart</em>, </td>        </tr>        <tr>          <td class="paramkey"></td>          <td></td>          <td class="paramtype">int&nbsp;</td>          <td class="paramname"> <em>c</em></td><td>&nbsp;</td>        </tr>        <tr>          <td></td>  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -