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

📄 testsuite_2bravo__validation_2usart_2usart_8c.html

📁 avr32100.zip Embedded demo
💻 HTML
📖 第 1 页 / 共 5 页
字号:
          <td></td><td></td><td width="100%"></td>        </tr>      </table></div><div class="memdoc"><p>Send a character with the usart. <p><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>character</em>&nbsp;</td><td>character to write</td></tr>  </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>status </dd></dl><dl compact><dt><b>Return values:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>USART_OK</em>&nbsp;</td><td>on success </td></tr>    <tr><td valign="top"></td><td valign="top"><em>USART_TX_BUSY</em>&nbsp;</td><td>on timeout </td></tr>  </table></dl><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00484">484</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<p>References <a class="el" href="testsuite_2bravo__validation_2pdc_2usart_8h-source.html#l00048">USART_DEFAULT_TIMEOUT</a>, <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8h-source.html#l00189">USART_SUCCESS</a>, and <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00439">usart_write_char()</a>.<div class="fragment"><pre class="fragment"><a name="l00485"></a>00485 {<a name="l00486"></a>00486         <span class="keywordtype">int</span> timeout = <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#c8dc7a35914ec78bd7382630499bd856">USART_DEFAULT_TIMEOUT</a>;<a name="l00487"></a>00487 <a name="l00488"></a>00488         <span class="keywordflow">if</span> (c == <span class="charliteral">'\n'</span>){<a name="l00489"></a>00489                 <span class="keywordflow">while</span> ((<a class="code" href="testsuite_2bravo__validation_2usart_2usart_8c.html#0c36f4b2ec5445212642ee7f94672805">usart_write_char</a>(usart, <span class="charliteral">'\r'</span>) != <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>) &amp;&amp; --timeout)<a name="l00490"></a>00490                         ;<a name="l00491"></a>00491                 <span class="keywordflow">if</span> (timeout == 0)<a name="l00492"></a>00492                         <span class="keywordflow">return</span> -1;<a name="l00493"></a>00493                 timeout = <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#c8dc7a35914ec78bd7382630499bd856">USART_DEFAULT_TIMEOUT</a>;<a name="l00494"></a>00494         }<a name="l00495"></a>00495 <a name="l00496"></a>00496         <span class="keywordflow">while</span> ((<a class="code" href="testsuite_2bravo__validation_2usart_2usart_8c.html#0c36f4b2ec5445212642ee7f94672805">usart_write_char</a>(usart, c) != <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>) &amp;&amp; --timeout)<a name="l00497"></a>00497                 ;<a name="l00498"></a>00498         <span class="keywordflow">if</span> (timeout == 0)<a name="l00499"></a>00499                 <span class="keywordflow">return</span> -1;<a name="l00500"></a>00500         <span class="keywordflow">else</span><a name="l00501"></a>00501                 <span class="keywordflow">return</span> 0;<a name="l00502"></a>00502 }</pre></div><p><p>Here is the call graph for this function:</div></div><p><a class="anchor" name="b73fc2f42bd6fe66c03d598b0158436d"></a><!-- doxytag: member="usart.c::usart_read_char" ref="b73fc2f42bd6fe66c03d598b0158436d" args="(volatile avr32_usart_t *usart, int *c)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">int usart_read_char           </td>          <td>(</td>          <td class="paramtype">volatile 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%"></td>        </tr>      </table></div><div class="memdoc"><p>Checks the RX buffer for a received character, and puts this at the memory location given. <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>Pointer to the where the read charcter should be writen (must be short in order to accept 9 bit characters) </td></tr>  </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>USART_SUCCESS if the character was read successfully<br> USART_RX_EMPTY if the RX buffer was empty<br> USART_RX_ERROR if an error was deteceted<br> USART_ADDR_RECEIVED if an address is received while in multidrop mode </dd></dl><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00451">451</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<p>Referenced by <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00471">usart_getchar()</a>.<div class="fragment"><pre class="fragment"><a name="l00452"></a>00452 {<a name="l00453"></a>00453         <span class="comment">/* Check for errors; Frame, parity and overrun In RS485 mode a parity</span><a name="l00454"></a>00454 <span class="comment">                error would mean that we received an address char */</span><a name="l00455"></a>00455         <span class="keywordflow">if</span> (usart-&gt;csr &amp;<a name="l00456"></a>00456                         ((1 &lt;&lt; AVR32_USART_CSR_OVRE_OFFSET) |<a name="l00457"></a>00457                         (1 &lt;&lt; AVR32_USART_CSR_FRAME_OFFSET) |<a name="l00458"></a>00458                         (1 &lt;&lt; AVR32_USART_CSR_PARE_OFFSET))) {<a name="l00459"></a>00459                 <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#ffa1a7abf4e6ce54c0b64cc0826f8b4d">USART_RX_ERROR</a>;<a name="l00460"></a>00460         }<a name="l00461"></a>00461         <span class="comment">/* No error; if we really did receive a char, read it and return SUCCESS */</span><a name="l00462"></a>00462         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((usart-&gt;csr &amp; (1&lt;&lt;AVR32_USART_CSR_RXRDY_OFFSET)) != 0) {<a name="l00463"></a>00463                 *c = (<span class="keywordtype">unsigned</span> short)usart-&gt;rhr;<a name="l00464"></a>00464                 <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2usart_2usart_8h.html#cbf846773f58a382f10f8daf94797059">USART_SUCCESS</a>;<a name="l00465"></a>00465         } <span class="keywordflow">else</span> {<a name="l00466"></a>00466                 <span class="keywordflow">return</span> <a class="code" href="testsuite_2bravo__validation_2pdc_2usart_8h.html#deb9432170d2d09a4ffbb098a1b4335e">USART_RX_EMPTY</a>;<a name="l00467"></a>00467         }<a name="l00468"></a>00468 } <span class="comment">/* usart_read */</span></pre></div><p></div></div><p><a class="anchor" name="31cf4d67fd204fb4684fff9d7994cb4c"></a><!-- doxytag: member="usart.c::usart_reset" ref="31cf4d67fd204fb4684fff9d7994cb4c" args="(volatile avr32_usart_t *usart)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">void usart_reset           </td>          <td>(</td>          <td class="paramtype">volatile 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>This function will reset the USART, and disable TX and RX. <p><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><p>Definition at line <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html#l00013">13</a> of file <a class="el" href="testsuite_2bravo__validation_2usart_2usart_8c-source.html">usart.c</a>.<div class="fragment"><pre class="fragment"><a name="l00014"></a>00014 {<a name="l00015"></a>00015         <span class="comment">/* Disable all usart interrupts, interrupts needed should be set</span><a name="l00016"></a>00016 <span class="comment">           explicitly on every reset */</span><a name="l00017"></a>00017         usart-&gt;idr = 0xFFFFffff;<a name="l00018"></a>00018 <a name="l00019"></a>00019         <span class="comment">/* Reset mode and other registers that could cause unpredictable</span><a name="l00020"></a>00020 <span class="comment">           behaviour after reset */</span><a name="l00021"></a>00021         usart-&gt;mr = 0;<a name="l00022"></a>00022         usart-&gt;rtor = 0;<a name="l00023"></a>00023         usart-&gt;ttgr = 0;<a name="l00024"></a>00024 <a name="l00025"></a>00025         <span class="comment">/* Shutdown RX and TX (will be reenabled when setup</span><a name="l00026"></a>00026 <span class="comment">           is completed successfully), reset status bits and turn</span><a name="l00027"></a>00027 <span class="comment">           off DTR and RTS */</span><a name="l00028"></a>00028         usart-&gt;cr = (1 &lt;&lt; AVR32_USART_CR_RSTRX_OFFSET) |<a name="l00029"></a>00029                     (1 &lt;&lt; AVR32_USART_CR_RSTTX_OFFSET) |<a name="l00030"></a>00030                     (1 &lt;&lt; AVR32_USART_CR_RSTSTA_OFFSET) |<a name="l00031"></a>00031                     (1 &lt;&lt; AVR32_USART_CR_RSTIT_OFFSET) |<a name="l00032"></a>00032                     (1 &lt;&lt; AVR32_USART_CR_RSTNACK_OFFSET) |<a name="l00033"></a>00033                     (1 &lt;&lt; AVR32_USART_CR_DTRDIS_OFFSET) |<a name="l00034"></a>00034                     (1 &lt;&lt; AVR32_USART_CR_RTSDIS_OFFSET);<a name="l00035"></a>00035 }</pre></div><p></div></div><p><a class="anchor" name="526363b4ce2f098ac507b7461b9adf0c"></a><!-- doxytag: member="usart.c::usart_reset_status" ref="526363b4ce2f098ac507b7461b9adf0c" args="(volatile avr32_usart_t *usart)" --><div class="memitem"><div class="memproto">      <table class="memname">        <tr>          <td class="memname">void usart_reset_status           </td>          <td>(</td>          <td class="paramtype">volatile 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>Reset error status. <p>This function resets the status bits indicating that a parity error, framing error or overrun has occured. The rxbreak bit, indicating a start/end of break condition on the rx-line, is also reset. <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign

⌨️ 快捷键说明

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