📄 usart__example_8c-source.html
字号:
<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 = &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, &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 = &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 = &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 = &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 = &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 = &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<size; i++){<a name="l00179"></a>00179 <a name="l00180"></a>00180 pio->pdr |= ( 1<<( (**piomap) % 32) );<a name="l00181"></a>00181 pio->pudr |= ( 1<<( (**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->asr |= ( 1<<( (**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->bsr |= ( 1<<( (**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 <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 + -