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

📄 usart_8c.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<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_8c_48c8d76fc9fdde84b94a6e09184a6446_cgraph.png" border="0" usemap="#usart_8c_48c8d76fc9fdde84b94a6e09184a6446_cgraph_map" alt=""></center><map name="usart_8c_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="cdd842541ff63ad361bb137f464bf1a0"></a><!-- doxytag: member="usart.c::usart_init_rs485" ref="cdd842541ff63ad361bb137f464bf1a0" 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_rs485           </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><p>Definition at line <a class="el" href="usart_8c-source.html#l00310">310</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="usart_8c-source.html#l00152">usart_init_rs232()</a>, <a class="el" href="usart_8h-source.html#l00292">USART_MODE_RS485</a>, and <a class="el" href="usart_8h-source.html#l00253">USART_SUCCESS</a>.<div class="fragment"><pre class="fragment"><a name="l00311"></a>00311 {<a name="l00312"></a>00312         <span class="keywordtype">int</span> retval;<a name="l00313"></a>00313 <a name="l00314"></a>00314         <span class="comment">/* First: Setup standard RS323 */</span><a name="l00315"></a>00315         <span class="keywordflow">if</span> ((retval = <a class="code" href="usart_8c.html#48c8d76fc9fdde84b94a6e09184a6446">usart_init_rs232</a>(usart, opt, cpu_hz)) != <a class="code" href="usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>)<a name="l00316"></a>00316                 <span class="keywordflow">return</span> retval;<a name="l00317"></a>00317 <a name="l00318"></a>00318         <span class="comment">/* Clear previous mode */</span><a name="l00319"></a>00319         usart-&gt;mr &amp;= ~(0xf &lt;&lt; AVR32_USART_MR_MODE_OFFSET);<a name="l00320"></a>00320         <span class="comment">/* Set Modem mode */</span><a name="l00321"></a>00321         usart-&gt;mr |= (<a class="code" href="usart_8h.html#a2946a63275da85d3b578044a88bbd7d">USART_MODE_RS485</a> &lt;&lt; AVR32_USART_MR_MODE_OFFSET);<a name="l00322"></a>00322         <span class="keywordflow">return</span> <a class="code" href="usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00323"></a>00323 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8c_cdd842541ff63ad361bb137f464bf1a0_cgraph.png" border="0" usemap="#usart_8c_cdd842541ff63ad361bb137f464bf1a0_cgraph_map" alt=""></center><map name="usart_8c_cdd842541ff63ad361bb137f464bf1a0_cgraph_map"><area href="usart_8c.html#48c8d76fc9fdde84b94a6e09184a6446" shape="rect" coords="184,30,315,54" alt=""><area href="usart_8c.html#e994c1e7797dda76388176f208a2e6f2" shape="rect" coords="391,6,487,30" alt=""><area href="usart_8c.html#6f965be9b52e86ba6f47f12a0b6d08e7" shape="rect" coords="363,54,515,78" alt=""></map></div></div><p><a class="anchor" name="8130f0bc38f83949813164455b44c215"></a><!-- doxytag: member="usart.c::usart_mode_is_multidrop" ref="8130f0bc38f83949813164455b44c215" args="(volatile struct avr32_usart_t *usart)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">static int usart_mode_is_multidrop           </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%"><code> [static]</code></td>        </tr>      </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="usart_8c-source.html#l00065">65</a> of file <a class="el" href="usart_8c-source.html">usart.c</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="l00066"></a>00066 {<a name="l00067"></a>00067   <span class="keywordflow">return</span> ( (usart-&gt;mr &amp; 0x00000600) &gt;&gt; AVR32_USART_MR_PAR_OFFSET );<a name="l00068"></a>00068 }</pre></div><p></div></div><p><a class="anchor" name="f19dc6969879984f29017d93fb7eb457"></a><!-- doxytag: member="usart.c::usart_overrun_error" ref="f19dc6969879984f29017d93fb7eb457" args="(volatile struct avr32_usart_t *usart)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int usart_overrun_error           </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><p>Definition at line <a class="el" href="usart_8c-source.html#l00437">437</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<div class="fragment"><pre class="fragment"><a name="l00438"></a>00438 {<a name="l00439"></a>00439         <span class="keywordflow">return</span> ((usart-&gt;csr &amp; AVR32_USART_CSR_OVRE_OFFSET)) != 0;<a name="l00440"></a>00440 }</pre></div><p></div></div><p><a class="anchor" name="d7c23614e6558fa48bed23c78c07515f"></a><!-- doxytag: member="usart.c::usart_parity_error" ref="d7c23614e6558fa48bed23c78c07515f" args="(volatile struct avr32_usart_t *usart)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int usart_parity_error           </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><p>Definition at line <a class="el" href="usart_8c-source.html#l00415">415</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<div class="fragment"><pre class="fragment"><a name="l00416"></a>00416 {

⌨️ 快捷键说明

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