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

📄 usart__example_8c-source.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<a name="l00099"></a>00099   <span class="keyword">struct </span><a class="code" href="structusart__options__t.html">usart_options_t</a> opt;<a name="l00100"></a>00100 <a name="l00101"></a>00101   <span class="keyword">volatile</span> <span class="keyword">struct </span>avr32_usart_t *usart = &amp;AVR32_USART1;<a name="l00102"></a>00102 <a name="l00103"></a>00103   <a class="code" href="usart__example_8c.html#8a26ea9b2ab943a38ada2d6ca9282231">avr32_piomap_t</a> usart_piomap = {                                  \<a name="l00104"></a>00104     {AVR32_USART1_RXD_0_PIN, AVR32_USART1_RXD_0_FUNCTION}, \<a name="l00105"></a>00105     {AVR32_USART1_TXD_0_PIN, AVR32_USART1_TXD_0_FUNCTION}   \<a name="l00106"></a>00106   };<a name="l00107"></a>00107 <a name="l00108"></a>00108   <span class="comment">// Set options for the USART</span><a name="l00109"></a>00109   opt.<a class="code" href="structusart__options__t.html#276ad428776a25b8247762bd2c82b35b">baudrate</a> = 115200;<a name="l00110"></a>00110   opt.<a class="code" href="structusart__options__t.html#a6b77cc05829d2e70ee7f96194c6ce23">charlength</a> = 8;<a name="l00111"></a>00111   opt.<a class="code" href="structusart__options__t.html#85401f7a6f516a5883adc0538dc27f8e">paritytype</a> = <a class="code" href="usart_8h.html#0b656451a78c0f602ee8855d52c719a8">USART_NO_PARITY</a>;<a name="l00112"></a>00112   opt.<a class="code" href="structusart__options__t.html#433a6ede2186d42b4cf19ef4b370cd61">stopbits</a> = <a class="code" href="usart_8h.html#f2d819c8836b2d7838ab501d36458969">USART_1_STOPBIT</a>;<a name="l00113"></a>00113   opt.<a class="code" href="structusart__options__t.html#0dc365b8779891743180e9b69116f5ea">channelmode</a> = <a class="code" href="usart_8h.html#0bd9f61e5232af833543eac9419c2d70">USART_NORMAL_CHMODE</a>;<a name="l00114"></a>00114 <a name="l00115"></a>00115   <span class="comment">// Initialize it in RS232 mode</span><a name="l00116"></a>00116   <a class="code" href="usart_8c.html#48c8d76fc9fdde84b94a6e09184a6446">usart_init_rs232</a>(usart, &amp;opt, cpu_hz);<a name="l00117"></a>00117 <a name="l00118"></a>00118   <span class="comment">// Setup pio for USART</span><a name="l00119"></a>00119   <a class="code" href="usart__example_8c.html#0789f45a4ff69e0f650c2d3e2fdf35bb">pio_enable_module</a>(usart_piomap, 2);<a name="l00120"></a>00120 <a name="l00121"></a>00121   <a class="code" href="usart__example_8c.html#2929a2158663c710a90f2d760007397a">print</a>(usart, <span class="stringliteral">"This is AVR32 saying hello from the STK1000!\n"</span>);<a name="l00122"></a>00122 <a name="l00123"></a>00123   <span class="keywordflow">return</span> <a class="code" href="usart__example_8c.html#a90cac659d18e8ef6294c7ae337f6b58">SUCCESS</a>;<a name="l00124"></a>00124 }<a name="l00125"></a>00125 <a name="l00126"></a>00126 <a name="l00134"></a><a class="code" href="usart__example_8c.html#2929a2158663c710a90f2d760007397a">00134</a> <span class="keywordtype">void</span> <a class="code" href="usart__example_8c.html#2929a2158663c710a90f2d760007397a">print</a>(<span class="keyword">volatile</span> <span class="keyword">struct</span> avr32_usart_t * usart, <span class="keywordtype">char</span> *str)<a name="l00135"></a>00135 {<a name="l00136"></a>00136         <span class="keywordflow">while</span> (*str != <span class="charliteral">'\0'</span>)<a name="l00137"></a>00137                 <a class="code" href="usart_8c.html#908695fc913f77a6c1ab2a89e201a1fd">usart_putchar</a>(usart, *str++);<a name="l00138"></a>00138 }<a name="l00139"></a>00139 <a name="l00140"></a>00140 <a name="l00150"></a><a class="code" href="usart__example_8c.html#0789f45a4ff69e0f650c2d3e2fdf35bb">00150</a> <span class="keywordtype">int</span> <a class="code" href="usart__example_8c.html#0789f45a4ff69e0f650c2d3e2fdf35bb">pio_enable_module</a>(<a class="code" href="usart__example_8c.html#8a26ea9b2ab943a38ada2d6ca9282231">avr32_piomap_t</a> piomap, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size)<a name="l00151"></a>00151 {<a name="l00152"></a>00152   <span class="keywordtype">int</span> i;<a name="l00153"></a>00153   <span class="keyword">volatile</span> <span class="keyword">struct </span>avr32_pio_t *pio;<a name="l00154"></a>00154 <a name="l00155"></a>00155   <span class="comment">/* get the base address for the port */</span><a name="l00156"></a>00156   <span class="keywordflow">switch</span> (**piomap/32) {<a name="l00157"></a>00157 <a name="l00158"></a>00158   <span class="keywordflow">case</span> 0:<a name="l00159"></a>00159     pio = &amp;AVR32_PIOA;<a name="l00160"></a>00160     <span class="keywordflow">break</span>;<a name="l00161"></a>00161   <span class="keywordflow">case</span> 1:<a name="l00162"></a>00162     pio = &amp;AVR32_PIOB;<a name="l00163"></a>00163     <span class="keywordflow">break</span>;<a name="l00164"></a>00164   <span class="keywordflow">case</span> 2:<a name="l00165"></a>00165     pio = &amp;AVR32_PIOC;<a name="l00166"></a>00166     <span class="keywordflow">break</span>;<a name="l00167"></a>00167   <span class="keywordflow">case</span> 3:<a name="l00168"></a>00168     pio = &amp;AVR32_PIOD;<a name="l00169"></a>00169     <span class="keywordflow">break</span>;<a name="l00170"></a>00170   <span class="keywordflow">case</span> 4:<a name="l00171"></a>00171     pio = &amp;AVR32_PIOE;<a name="l00172"></a>00172     <span class="keywordflow">break</span>;<a name="l00173"></a>00173   <span class="keywordflow">default</span> :<a name="l00174"></a>00174     <span class="keywordflow">return</span> <a class="code" href="usart__example_8c.html#6d58f9ac447476b4e084d7ca383f5183">FAILURE</a>;<a name="l00175"></a>00175 <a name="l00176"></a>00176   }<a name="l00177"></a>00177 <a name="l00178"></a>00178   <span class="keywordflow">for</span>(i=0; i&lt;size; i++){<a name="l00179"></a>00179 <a name="l00180"></a>00180     pio-&gt;pdr |= ( 1&lt;&lt;( (**piomap) % 32) );<a name="l00181"></a>00181     pio-&gt;pudr |= ( 1&lt;&lt;( (**piomap) % 32) );<a name="l00182"></a>00182 <a name="l00183"></a>00183     <span class="keywordflow">switch</span>( *(*piomap+1) ){    <a name="l00184"></a>00184     <span class="keywordflow">case</span> 0:<a name="l00185"></a>00185       pio-&gt;asr |= ( 1&lt;&lt;( (**piomap) % 32) );<a name="l00186"></a>00186       <span class="keywordflow">break</span>;<a name="l00187"></a>00187     <span class="keywordflow">case</span> 1:<a name="l00188"></a>00188       pio-&gt;bsr |= ( 1&lt;&lt;( (**piomap) % 32) );<a name="l00189"></a>00189       <span class="keywordflow">break</span>;<a name="l00190"></a>00190     <span class="keywordflow">default</span>:<a name="l00191"></a>00191       <span class="keywordflow">return</span> <a class="code" href="usart__example_8c.html#6d58f9ac447476b4e084d7ca383f5183">FAILURE</a>;<a name="l00192"></a>00192     }<a name="l00193"></a>00193 <a name="l00194"></a>00194     ++piomap;<a name="l00195"></a>00195 <a name="l00196"></a>00196   }<a name="l00197"></a>00197   <a name="l00198"></a>00198   <span class="keywordflow">return</span> <a class="code" href="usart__example_8c.html#a90cac659d18e8ef6294c7ae337f6b58">SUCCESS</a>;<a name="l00199"></a>00199 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu May 10 14:17:56 2007 for AVR321000 Communication with the AVR32 USART by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body></html>

⌨️ 快捷键说明

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