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

📄 usart_8c.html.svn-base

📁 avr32100.zip Embedded demo
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
<a name="l00271"></a>00271         usart-&gt;ifr = irda_filter;<a name="l00272"></a>00272 <a name="l00273"></a>00273         <span class="comment">/* Activate "low-pass filtering" of input */</span><a name="l00274"></a>00274         usart-&gt;mr |= (1 &lt;&lt; AVR32_USART_MR_FILTER_OFFSET);<a name="l00275"></a>00275         <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00276"></a>00276 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8c_8db29da20412777c74c322d0fae89ecb_cgraph.png" border="0" usemap="#usart_8c_8db29da20412777c74c322d0fae89ecb_cgraph_map" alt=""></center><map name="usart_8c_8db29da20412777c74c322d0fae89ecb_cgraph_map"><area href="testsuite_2bravo__validation_2usart_2usart_8c.html#093c5ad113e1ab43603c0d815ad8dc54" shape="rect" coords="167,8,285,32" alt=""></map>    </td>  </tr></table><a class="anchor" name="8e201d6c020402a4b2864d67ae8f4935"></a><!-- doxytag: member="usart.c::usart_init_iso7816" ref="8e201d6c020402a4b2864d67ae8f4935" args="(volatile struct avr32_usart_t *usart, const struct iso7816_options_t *opt, int t, const long cpu_hz)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">int usart_init_iso7816           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">volatile struct avr32_usart_t *&nbsp;</td>          <td class="mdname" nowrap> <em>usart</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const struct <a class="el" href="structiso7816__options__t.html">iso7816_options_t</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>opt</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>t</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const long&nbsp;</td>          <td class="mdname" nowrap> <em>cpu_hz</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p><p>Definition at line <a class="el" href="usart_8c-source.html#l00333">333</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00085">iso7816_options_t::bit_order</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00073">iso7816_options_t::dis_suc_nack</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00056">iso7816_options_t::fidi_ratio</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00065">iso7816_options_t::inhibit_nack</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00050">iso7816_options_t::iso7816_hz</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00078">iso7816_options_t::max_iterations</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00194">USART_INVALID_INPUT</a>, <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8h-source.html#l00072">USART_MODE_ISO7816_T0</a>, <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8h-source.html#l00074">USART_MODE_ISO7816_T1</a>, <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8c-source.html#l00027">usart_reset()</a>, <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8c-source.html#l00065">usart_set_baudrate()</a>, and <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00189">USART_SUCCESS</a>.<div class="fragment"><pre class="fragment"><a name="l00334"></a>00334 {<a name="l00335"></a>00335         <span class="keywordtype">int</span> retval;<a name="l00336"></a>00336 <a name="l00337"></a>00337         <span class="comment">/* Reset the usart and shutdown RX and TX */</span><a name="l00338"></a>00338         <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8c.html#31cf4d67fd204fb4684fff9d7994cb4c">usart_reset</a>(usart);<a name="l00339"></a>00339 <a name="l00340"></a>00340         <span class="keywordflow">if</span> (opt == 0)<a name="l00341"></a>00341                 <span class="comment">/* Null pointer */</span><a name="l00342"></a>00342                 <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00343"></a>00343 <a name="l00344"></a>00344         <span class="comment">/* Don't care about charlength, parity or channelmode; All these fields</span><a name="l00345"></a>00345 <span class="comment">           are ignored in iso7816 mode. 8bit characters and even parity is always</span><a name="l00346"></a>00346 <span class="comment">           used */</span><a name="l00347"></a>00347 <a name="l00348"></a>00348         <span class="keywordflow">if</span> (t == 0)<a name="l00349"></a>00349         {<a name="l00350"></a>00350                 <span class="comment">/* Set USART mode to ISO7816, T=0 */</span><a name="l00351"></a>00351                 <span class="comment">/* The T=0 protocol always use 2 stop bits */</span><a name="l00352"></a>00352                 usart-&gt;mr = (<a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#af44f2a4560d84b228624189aad26d5e">USART_MODE_ISO7816_T0</a> &lt;&lt; AVR32_USART_MR_USART_MODE_OFFSET) |<a name="l00353"></a>00353                             (2 &lt;&lt; AVR32_USART_MR_NBSTOP_OFFSET) |<a name="l00354"></a>00354                             (opt-&gt;<a class="code" href="structiso7816__options__t.html#96af893cd6275fd35a063a235f489a82">bit_order</a> &lt;&lt; AVR32_USART_MR_MSBF_OFFSET); <span class="comment">/* Allow MSBF in T=0 */</span><a name="l00355"></a>00355         }<a name="l00356"></a>00356         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (t == 1)<a name="l00357"></a>00357         {<a name="l00358"></a>00358                 <span class="comment">/* Only LSB first in the T=1 protocol */</span><a name="l00359"></a>00359                 <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structiso7816__options__t.html#96af893cd6275fd35a063a235f489a82">bit_order</a> != 0)<a name="l00360"></a>00360                         <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00361"></a>00361                 <span class="comment">/* max_iterations field is only used in T=0 mode */</span><a name="l00362"></a>00362                 <span class="keywordflow">if</span> (opt-&gt;<a class="code" href="structiso7816__options__t.html#4c74df529ed76d2962f54cd1f0f5027f">max_iterations</a> != 0)<a name="l00363"></a>00363                         <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00364"></a>00364                 <span class="comment">/* Set USART mode to ISO7816, T=1 */</span><a name="l00365"></a>00365                 usart-&gt;mr = (<a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#20cc4cd0b851232cd6b3680713792a44">USART_MODE_ISO7816_T1</a> &lt;&lt; AVR32_USART_MR_USART_MODE_OFFSET);<a name="l00366"></a>00366                 <span class="comment">/* The T=1 protocol always use 1 stop bit (no change needed) */</span><a name="l00367"></a>00367         }<a name="l00368"></a>00368         <span class="keywordflow">else</span><a name="l00369"></a>00369                 <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#50b4e9378f434da8823badca3af2f15d">USART_INVALID_INPUT</a>;<a name="l00370"></a>00370 <a name="l00371"></a>00371         <span class="keywordflow">if</span> ((retval = <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8c.html#38c10272f6d0b8e873a213dd39d5d1cf">usart_set_baudrate</a>(usart, opt-&gt;<a class="code" href="structiso7816__options__t.html#6670bdcae159decd3ff5c00f6f3f4fcc">iso7816_hz</a>, cpu_hz)) != <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>)<a name="l00372"></a>00372                 <span class="keywordflow">return</span> retval;<a name="l00373"></a>00373 <a name="l00374"></a>00374         <span class="comment">/* Set FIDI register: bit rate = selected clock/FI_DI_ratio/16 */</span><a name="l00375"></a>00375         usart-&gt;fidi = opt-&gt;<a class="code" href="structiso7816__options__t.html#bf0d2900a6f8f97c0163176f2600551c">fidi_ratio</a>;<a name="l00376"></a>00376         <span class="comment">/* Set ISO7816 spesific options in the MODE register */</span><a name="l00377"></a>00377         usart-&gt;mr |= (opt-&gt;<a class="code" href="structiso7816__options__t.html#128f4d404bb0369177a591eb8a0a9269">inhibit_nack</a> &lt;&lt; AVR32_USART_MR_INACK_OFFSET) |<a name="l00378"></a>00378                      (opt-&gt;<a class="code" href="structiso7816__options__t.html#b8d335e18629f4fcf625e1a7e23e35be">dis_suc_nack</a> &lt;&lt; AVR32_USART_MR_DSNACK_OFFSET) |<a name="l00379"></a>00379                      (opt-&gt;<a class="code" href="structiso7816__options__t.html#4c74df529ed76d2962f54cd1f0f5027f">max_iterations</a> &lt;&lt; AVR32_USART_MR_MAX_ITERATION_OFFSET) |<a name="l00380"></a>00380                      (1 &lt;&lt; AVR32_USART_MR_CLKO_OFFSET); <span class="comment">/* Enable clock output */</span><a name="l00381"></a>00381 <a name="l00382"></a>00382         <span class="comment">/* Setup complete; enable input */</span><a name="l00383"></a>00383         <span class="comment">/* Leave TX disabled for now */</span><a name="l00384"></a>00384         usart-&gt;cr |= (1&lt;&lt;AVR32_USART_CR_RXEN_OFFSET);<a name="l00385"></a>00385 <a name="l00386"></a>00386         <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00387"></a>00387 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8c_8e201d6c020402a4b2864d67ae8f4935_cgraph.png" border="0" usemap="#usart_8c_8e201d6c020402a4b2864d67ae8f4935_cgraph_map" alt=""></center><map name="usart_8c_8e201d6c020402a4b2864d67ae8f4935_cgraph_map"><area href="testsuite_2bravo__validation_2pdc_2usart_8c.html#31cf4d67fd204fb4684fff9d7994cb4c" shape="rect" coords="211,8,299,32" alt=""><area href="testsuite_2bravo__validation_2pdc_2usart_8c.html#38c10272f6d0b8e873a213dd39d5d1cf" shape="rect" coords="187,56,323,80" alt=""></map>    </td>  </tr></table><a class="anchor" name="10edfa287366908edc4182421d00008b"></a><!-- doxytag: member="usart.c::usart_init_modem" ref="10edfa287366908edc4182421d00008b" args="(volatile struct avr32_usart_t *usart, struct usart_options_t *opt, long cpu_hz)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">int usart_init_modem           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">volatile struct avr32_usart_t *&nbsp;</td>          <td class="mdname" nowrap> <em>usart</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>struct <a class="el" href="structusart__options__t.html">usart_options_t</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>opt</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>long&nbsp;</td>          <td class="mdname" nowrap> <em>cpu_hz</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p><p>Definition at line <a class="el" href="usart_8c-source.html#l00285">285</a> of file <a class="el" href="usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00095">usart_init_rs232()</a>, <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8h-source.html#l00070">USART_MODE_MODEM</a>, and <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00189">USART_SUCCESS</a>.<div class="fragment"><pre class="fragment"><a name="l00286"></a>00286 {<a name="l00287"></a>00287         <span class="keywordtype">int</span> retval;<a name="l00288"></a>00288 <a name="l00289"></a>00289         <span class="comment">/* First: Setup standard RS323 */</span><a name="l00290"></a>00290         <span class="keywordflow">if</span> ((retval = <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8c.html#093c5ad113e1ab43603c0d815ad8dc54">usart_init_rs232</a>(usart, opt, cpu_hz)) != <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>)<a name="l00291"></a>00291                 <span class="keywordflow">return</span> retval;<a name="l00292"></a>00292 <a name="l00293"></a>00293         <span class="comment">/* Clear previous mode */</span><a name="l00294"></a>00294         usart-&gt; mr &amp;= ~(0xf &lt;&lt; AVR32_USART_MR_USART_MODE_OFFSET);<a name="l00295"></a>00295         <span class="comment">/* Set Modem mode */</span><a name="l00296"></a>00296         usart-&gt; mr |= (<a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#e01dfbdf6f2d1c148b0320e19f8fa98e">USART_MODE_MODEM</a> &lt;&lt; AVR32_USART_MR_USART_MODE_OFFSET);<a name="l00297"></a>00297         <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00298"></a>00298 }</pre></div><p><p>Here is the call graph for this function:<p><center><img src="usart_8c_10edfa287366908edc4182421d00008b_cgraph.png" border="0" usemap="#usart_8c_10edfa287366908edc4182421d00008b_cgraph_map" alt=""></center><map name="usart_8c_10edfa287366908edc4182421d00008b_cgraph_map"><area href="testsuite_2bravo__validation_2usart_2usart_8c.html#093c5ad113e1ab43603c0d815ad8dc54" shape="rect" coords="183,8,301,32" alt=""></map>    </td>  </tr></table><a class="anchor" name="48c8d76fc9fdde84b94a6e09184a6446"></a><!-- doxytag: member="usart.c::usart_init_rs232" ref="48c8d76fc9fdde84b94a6e09184a6446" args="(volatile struct avr32_usart_t *usart, struct usart_options_t *opt, long cpu_hz)" --><p>

⌨️ 快捷键说明

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