<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://mars.merhot.dk/w/index.php?action=history&amp;feed=atom&amp;title=MSP430F5529%2FUART_console</id>
		<title>MSP430F5529/UART console - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://mars.merhot.dk/w/index.php?action=history&amp;feed=atom&amp;title=MSP430F5529%2FUART_console"/>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=MSP430F5529/UART_console&amp;action=history"/>
		<updated>2026-05-21T06:16:50Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=MSP430F5529/UART_console&amp;diff=40708&amp;oldid=prev</id>
		<title>Heth: Created page with &quot;The following code is a simple implementation on console function inplementing STDIN/STDOUT and STDERR on '''uca1''' on MSP430F5529   &lt;source lang=c line&gt; #include &quot;io430....&quot;</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=MSP430F5529/UART_console&amp;diff=40708&amp;oldid=prev"/>
				<updated>2022-12-08T06:13:51Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;The following code is a simple implementation on console function inplementing STDIN/STDOUT and STDERR on &amp;#039;&amp;#039;&amp;#039;uca1&amp;#039;&amp;#039;&amp;#039; on &lt;a href=&quot;/w/index.php/MSP430F5529&quot; title=&quot;MSP430F5529&quot;&gt;MSP430F5529&lt;/a&gt;   &amp;lt;source lang=c line&amp;gt; #include &amp;quot;io430....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The following code is a simple implementation on console function inplementing STDIN/STDOUT and STDERR on '''uca1''' on [[MSP430F5529]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=c line&amp;gt;&lt;br /&gt;
#include &amp;quot;io430.h&amp;quot;&lt;br /&gt;
#include &amp;lt;stddef.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void uart_init( ) {&lt;br /&gt;
&lt;br /&gt;
  P4SEL = BIT4+BIT5;                        // P3.4,5 = USCI_A1 TXD/RXD&lt;br /&gt;
  UCA1CTL1 |= UCSWRST;                      // **Put state machine in reset**&lt;br /&gt;
  UCA1CTL1 |= UCSSEL_1;                     // CLK = ACLK&lt;br /&gt;
  UCA1BR0 = 0x03;                           // 32kHz/9600=3.41 (see User's Guide)&lt;br /&gt;
  UCA1BR1 = 0x00;                           //&lt;br /&gt;
  UCA1MCTL = UCBRS_3+UCBRF_0;               // Modulation UCBRSx=3, UCBRFx=0&lt;br /&gt;
  UCA1CTL1 &amp;amp;= ~UCSWRST;                     // **Initialize USCI state machine**&lt;br /&gt;
   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//cin - Character in&lt;br /&gt;
// Poll USCI_A0 receive register until character received.&lt;br /&gt;
// Parameters: none&lt;br /&gt;
// Returns: unsigned char - character received&lt;br /&gt;
unsigned char cin( void ) {&lt;br /&gt;
      while ( !(0x01 &amp;amp; UCA1IFG) );&lt;br /&gt;
  return(UCA1RXBUF);&lt;br /&gt;
}&lt;br /&gt;
//cin_nonblocked&lt;br /&gt;
//If character received - return it&lt;br /&gt;
//Else return 0x00 - No character received&lt;br /&gt;
 unsigned char cin_nonblocked( void ) {&lt;br /&gt;
  if ( 0x01 &amp;amp; UCA1IFG ) {&lt;br /&gt;
    return(UCA1RXBUF);&lt;br /&gt;
  } else {&lt;br /&gt;
    return(0x00);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//cou - Character out&lt;br /&gt;
// Transmit character poll USCI_A0 transmit register until ready.&lt;br /&gt;
// Parameters: Character to transmit&lt;br /&gt;
// Returns: none&lt;br /&gt;
int cout( unsigned char c ) {&lt;br /&gt;
  while ( !(0x02 &amp;amp; UCA1IFG) ); //&amp;amp;&amp;amp; (count++ &amp;gt; 0) );&lt;br /&gt;
  UCA1TXBUF = c;&lt;br /&gt;
  if (c == '\n')&lt;br /&gt;
    cout('\r');&lt;br /&gt;
  return(c);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
  THE DLIB LOW-LEVEL I/O INTERFACE&lt;br /&gt;
        - See IAR C-compiler manual&lt;br /&gt;
        - See skeleton functions in IAR installation ./430/src/lib/dlib&lt;br /&gt;
*/&lt;br /&gt;
#include &amp;lt;yfuns.h&amp;gt;&lt;br /&gt;
// __read() - DLIB-low level file i/o - defaults to console STDIN&lt;br /&gt;
size_t __read(int handle, unsigned char * buffer, size_t size) {&lt;br /&gt;
  int nChars = 0;&lt;br /&gt;
&lt;br /&gt;
  /* This template only reads from &amp;quot;standard in&amp;quot;, for all other file&lt;br /&gt;
   * handles it returns failure. */&lt;br /&gt;
  if (handle != _LLIO_STDIN) {&lt;br /&gt;
    return _LLIO_ERROR;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for (/* Empty */; size &amp;gt; 0; --size) {&lt;br /&gt;
    int c = cin();&lt;br /&gt;
        if (c &amp;lt; 0)&lt;br /&gt;
      break;&lt;br /&gt;
&lt;br /&gt;
    *buffer++ = c;&lt;br /&gt;
    ++nChars;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return nChars;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// __write() - DLIB-low level file i/o - defaults to console STDOUT and STDERR&lt;br /&gt;
size_t __write(int handle, const unsigned char * buffer, size_t size) {&lt;br /&gt;
&lt;br /&gt;
  size_t nChars = 0;&lt;br /&gt;
  &lt;br /&gt;
  if (buffer == 0) {&lt;br /&gt;
    /*&lt;br /&gt;
     * This means that we should flush internal buffers.  Since we&lt;br /&gt;
     * don't we just return.  (Remember, &amp;quot;handle&amp;quot; == -1 means that all&lt;br /&gt;
     * handles should be flushed.)&lt;br /&gt;
     */&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* This template only writes to &amp;quot;standard out&amp;quot; and &amp;quot;standard err&amp;quot;,&lt;br /&gt;
   * for all other file handles it returns failure. */&lt;br /&gt;
  if (handle != _LLIO_STDOUT &amp;amp;&amp;amp; handle != _LLIO_STDERR) {&lt;br /&gt;
    return _LLIO_ERROR;&lt;br /&gt;
  }&lt;br /&gt;
  for (/* Empty */; size != 0; --size) {&lt;br /&gt;
    if (cout(*buffer++) &amp;lt; 0) {&lt;br /&gt;
      return _LLIO_ERROR;&lt;br /&gt;
    }&lt;br /&gt;
    ++nChars;&lt;br /&gt;
  }&lt;br /&gt;
  return nChars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:MSP430]]&lt;/div&gt;</summary>
		<author><name>Heth</name></author>	</entry>

	</feed>