<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Reg:UART Library for  LPC1227 in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Reg-UART-Library-for-LPC1227/m-p/546752#M9815</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Microembedded on Fri May 16 04:52:14 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help.Problem got solved when i changed the value of LPC_UART0-&amp;gt;DLL&amp;nbsp; to 0x13.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:25:12 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:25:12Z</dc:date>
    <item>
      <title>Reg:UART Library for  LPC1227</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Reg-UART-Library-for-LPC1227/m-p/546751#M9814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Microembedded on Thu May 15 06:04:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;From "I'm looking for a UART library for LPC1114"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i tried to post a message in the previous thread but my message was directed into spam.So i am reposting my message after creating a new thread.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I included the uart.c routine in my main file.This is how it looked like.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; #ifdef __USE_CMSIS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "LPC122x.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;cr_section_macros.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;NXP/crp.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;type.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;gpio.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;string.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;uart.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Function name:UART_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Descriptions:UART interrupt handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** parameters:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Returned value:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*****************************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void UART0_IRQHandler(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint8_t IIRValue, LSRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint8_t Dummy = Dummy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue = LPC_UART0-&amp;gt;IIR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue &amp;gt;&amp;gt;= 1;/* skip pending bit in IIR */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue &amp;amp;= 0x07;/* check bit 1~3, interrupt identification */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if (IIRValue == IIR_RLS)/* Receive Line Status */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSRValue = LPC_UART0-&amp;gt;LSR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Receive Line Status */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; (LSR_OE | LSR_PE | LSR_FE | LSR_RXFE | LSR_BI))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* There are errors or break interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read LSR will clear the interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTStatus0 = LSRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dummy = LPC_UART0-&amp;gt;RBR;/* Dummy read on RX to clear&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;interrupt, then bail out */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; LSR_RDR)/* Receive Data Ready */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If no error on RLS, normal ready, save into the data buffer. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Note: read RBR will clear the interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTBuffer0[UARTCount0++] = LPC_UART0-&amp;gt;RBR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UARTCount0 == BUFFSIZE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount0 = 0;/* buffer overflow */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_RDA)/* Receive Data Available */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Receive Data Available */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTBuffer0[UARTCount0++] = LPC_UART0-&amp;gt;RBR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UARTCount0 == BUFFSIZE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount0 = 0;/* buffer overflow */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_CTI)/* Character timeout indicator */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Character Time-out indicator */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTStatus0 |= 0x100;/* Bit 9 as the CTI error */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_THRE)/* THRE, transmit holding register empty */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* THRE interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSRValue = LPC_UART0-&amp;gt;LSR;/* Check status in the LSR to see if&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;valid data in U0THR or not */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; LSR_THRE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty0 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty0 = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Function name:UART_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Descriptions:UART interrupt handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** parameters:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Returned value:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*****************************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void UART1_IRQHandler(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint8_t IIRValue, LSRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint8_t Dummy = Dummy;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue = LPC_UART1-&amp;gt;IIR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue &amp;gt;&amp;gt;= 1;/* skip pending bit in IIR */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; IIRValue &amp;amp;= 0x07;/* check bit 1~3, interrupt identification */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if (IIRValue == IIR_RLS)/* Receive Line Status */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSRValue = LPC_UART1-&amp;gt;LSR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Receive Line Status */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; (LSR_OE | LSR_PE | LSR_FE | LSR_RXFE | LSR_BI))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* There are errors or break interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read LSR will clear the interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTStatus1 = LSRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dummy = LPC_UART1-&amp;gt;RBR;/* Dummy read on RX to clear&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;interrupt, then bail out */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; LSR_RDR)/* Receive Data Ready */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If no error on RLS, normal ready, save into the data buffer. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Note: read RBR will clear the interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTBuffer1[UARTCount1++] = LPC_UART1-&amp;gt;RBR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UARTCount1 == BUFFSIZE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount1 = 0;/* buffer overflow */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_RDA)/* Receive Data Available */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Receive Data Available */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTBuffer1[UARTCount1++] = LPC_UART1-&amp;gt;RBR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (UARTCount1 == BUFFSIZE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount1 = 0;/* buffer overflow */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_CTI)/* Character timeout indicator */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Character Time-out indicator */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTStatus1 |= 0x100;/* Bit 9 as the CTI error */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if (IIRValue == IIR_THRE)/* THRE, transmit holding register empty */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* THRE interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LSRValue = LPC_UART1-&amp;gt;LSR;/* Check status in the LSR to see if&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;valid data in U0THR or not */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LSRValue &amp;amp; LSR_THRE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty1 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty1 = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Function name:ModemInit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Descriptions:Initialize UART0 port as modem, setup pin select.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** parameters:location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Returned value:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*****************************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ModemInit( uint32_t location )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if ( location == 0 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_3 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_3 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DTR output */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_7 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_7 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART CTS input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_0 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_0 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RTS output */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_4 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_4 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DSR input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_5 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_5 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DCD input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_6 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO0_6 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RI input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if ( location == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_3 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_3 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DTR output */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_4 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_4 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART CTS input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_0 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_0 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RTS output */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_7 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_7 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DSR input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_6 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_6 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART DCD input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_5 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_IOCON-&amp;gt;PIO2_5 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RI input */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_UART0-&amp;gt;MCR = 0xC0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable Auto RTS and Auto CTS. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Function name:SetupUART_Location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Descriptions:Setup UART0 location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** parameters:port number, location&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Returned value:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*****************************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void SetupUART_Location(uint32_t portNum, uint32_t location)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if ( portNum == 0 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if ( location == 0 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_1 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_1 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 RXD LOC0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_2 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_2 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 TXD LOC0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else if ( location == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_1 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_1 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 RXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_2 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_2 |= 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART0 TXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else if ( portNum == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if ( location == 0 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_8 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART1 I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_8 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART1 RXD LOC0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_9 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO0_9 |= 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART1 TXD LOC0 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else if ( location == 1 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_11 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART1 I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_11 |= 0x05;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_10 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_10 |= 0x05;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART TXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_12 &amp;amp;= ~0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART1 I/O config */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_12 |= 0x03;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART RXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_13 &amp;amp;= ~0x07;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_IOCON-&amp;gt;PIO2_13 |= 0x03;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* UART TXD LOC1 */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;while ( 1 );&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*****************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Function name:UARTInit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Descriptions:Initialize UARTx port, setup pin select,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**clock, parity, stop bits, FIFO, etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** parameters:UART port number, baudrate&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;** Returned value:None&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;**&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*****************************************************************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void UARTInit(uint32_t portNum, uint32_t baudrate)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t i, Fdiv;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t regVal;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if ( portNum == 0 )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UARTTxEmpty0 = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UARTCount0 = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( i = 0; i &amp;lt; BUFFSIZE; i++ )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; UARTBuffer0&lt;/SPAN&gt;&lt;I&gt; = 0;&lt;BR /&gt;}&lt;BR /&gt;NVIC_DisableIRQ(UART0_IRQn);&lt;BR /&gt;&lt;BR /&gt;SetupUART_Location( portNum, 0 );/* default is location 0 */&lt;BR /&gt;&lt;BR /&gt;/* Enable UART 0 clock */&lt;BR /&gt;LPC_SYSCON-&amp;gt;PRESETCTRL |= (0x1&amp;lt;&amp;lt;2);&lt;BR /&gt;LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (0x1&amp;lt;&amp;lt;12);&lt;BR /&gt;LPC_SYSCON-&amp;gt;UART0CLKDIV = 0x1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* divided by 1 */&lt;BR /&gt;&lt;BR /&gt;LPC_UART0-&amp;gt;LCR = 0x83;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 bits, no Parity, 1 Stop bit */&lt;BR /&gt;regVal = LPC_SYSCON-&amp;gt;UART0CLKDIV;&lt;BR /&gt;Fdiv = ((SystemCoreClock/regVal)/16)/baudrate ;/*baud rate */ //16&lt;BR /&gt;&lt;BR /&gt;//LPC_UART0-&amp;gt;DLM = Fdiv / 256;&lt;BR /&gt;LPC_UART0-&amp;gt;DLM = 0x00;&lt;BR /&gt;//LPC_UART0-&amp;gt;DLL = Fdiv % 256;&lt;BR /&gt;LPC_UART0-&amp;gt;DLL = 0x16;&lt;BR /&gt;LPC_UART0-&amp;gt;LCR = 0x03;/* DLAB = 0 */&lt;BR /&gt;LPC_UART0-&amp;gt;FDR = 0x10;/* set to default value: 0x10 *///0x10&lt;BR /&gt;LPC_UART0-&amp;gt;FCR = 0x07;/* Enable and reset TX and RX FIFO. */&lt;BR /&gt;&lt;BR /&gt;/* Read to clear the line status. */&lt;BR /&gt;regVal = LPC_UART0-&amp;gt;LSR;&lt;BR /&gt;&lt;BR /&gt;/* Ensure a clean start, no data in either TX or RX FIFO. */&lt;BR /&gt;while ( (LPC_UART0-&amp;gt;LSR &amp;amp; (LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT) );&lt;BR /&gt;while ( LPC_UART0-&amp;gt;LSR &amp;amp; LSR_RDR )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; regVal = LPC_UART0-&amp;gt;RBR;/* Dump data from RX FIFO */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/* Enable the UART Interrupt */&lt;BR /&gt;NVIC_EnableIRQ(UART0_IRQn);&lt;BR /&gt;&lt;BR /&gt;#if TX_INTERRUPT&lt;BR /&gt;LPC_UART0-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS;/* Enable UART interrupt */&lt;BR /&gt;#else&lt;BR /&gt;LPC_UART0-&amp;gt;IER = IER_RBR | IER_RLS;/* Enable UART interrupt */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;UARTTxEmpty1 = 1;&lt;BR /&gt;UARTCount1 = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( i = 0; i &amp;lt; BUFFSIZE; i++ )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; UARTBuffer1&lt;I&gt; = 0;&lt;BR /&gt;}&lt;BR /&gt;NVIC_DisableIRQ(UART1_IRQn);&lt;BR /&gt;&lt;BR /&gt;SetupUART_Location( portNum, 0 );/* default is location 0 */&lt;BR /&gt;&lt;BR /&gt;/* Enable UART 1 clock */&lt;BR /&gt;LPC_SYSCON-&amp;gt;PRESETCTRL |= (0x1&amp;lt;&amp;lt;3);&lt;BR /&gt;LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (0x1&amp;lt;&amp;lt;13);&lt;BR /&gt;LPC_SYSCON-&amp;gt;UART1CLKDIV = 0x1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* divided by 1 */&lt;BR /&gt;&lt;BR /&gt;LPC_UART1-&amp;gt;LCR = 0x83;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 bits, no Parity, 1 Stop bit */&lt;BR /&gt;regVal = LPC_SYSCON-&amp;gt;UART1CLKDIV;&lt;BR /&gt;Fdiv = ((SystemCoreClock/regVal)/12)/baudrate ;/*baud rate */&lt;BR /&gt;&lt;BR /&gt;LPC_UART1-&amp;gt;DLM = Fdiv / 256;&lt;BR /&gt;LPC_UART1-&amp;gt;DLL = Fdiv % 256;&lt;BR /&gt;LPC_UART1-&amp;gt;LCR = 0x03;/* DLAB = 0 */&lt;BR /&gt;LPC_UART1-&amp;gt;FDR = 0x10;/* set to default value: 0x10 */&lt;BR /&gt;LPC_UART1-&amp;gt;FCR = 0x07;/* Enable and reset TX and RX FIFO. */&lt;BR /&gt;&lt;BR /&gt;/* Read to clear the line status. */&lt;BR /&gt;regVal = LPC_UART1-&amp;gt;LSR;&lt;BR /&gt;&lt;BR /&gt;/* Ensure a clean start, no data in either TX or RX FIFO. */&lt;BR /&gt;while ( (LPC_UART1-&amp;gt;LSR &amp;amp; (LSR_THRE|LSR_TEMT)) != (LSR_THRE|LSR_TEMT) );&lt;BR /&gt;while ( LPC_UART1-&amp;gt;LSR &amp;amp; LSR_RDR )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; regVal = LPC_UART1-&amp;gt;RBR;/* Dump data from RX FIFO */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/* Enable the UART Interrupt */&lt;BR /&gt;NVIC_EnableIRQ(UART1_IRQn);&lt;BR /&gt;&lt;BR /&gt;#if TX_INTERRUPT&lt;BR /&gt;LPC_UART1-&amp;gt;IER = IER_RBR | IER_THRE | IER_RLS;/* Enable UART interrupt */&lt;BR /&gt;#else&lt;BR /&gt;LPC_UART1-&amp;gt;IER = IER_RBR | IER_RLS;/* Enable UART interrupt */&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/*****************************************************************************&lt;BR /&gt;** Function name:UARTSend&lt;BR /&gt;**&lt;BR /&gt;** Descriptions:Send a block of data to the UART 0 port based&lt;BR /&gt;**on the data length&lt;BR /&gt;**&lt;BR /&gt;** parameters:portNum, buffer pointer, and data length&lt;BR /&gt;** Returned value:None&lt;BR /&gt;**&lt;BR /&gt;*****************************************************************************/&lt;BR /&gt;void UARTSend(uint32_t portNum, uint8_t *BufferPtr, uint32_t Length)&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; while ( Length != 0 )&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;if ( portNum == 0 )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* THRE status, contain valid data */&lt;BR /&gt;#if !TX_INTERRUPT&lt;BR /&gt;&amp;nbsp; while ( !(LPC_UART0-&amp;gt;LSR &amp;amp; LSR_THRE) );&lt;BR /&gt;&amp;nbsp; LPC_UART0-&amp;gt;THR = *BufferPtr;&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp; /* Below flag is set inside the interrupt handler when THRE occurs. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( !(UARTTxEmpty0 &amp;amp; 0x01) );&lt;BR /&gt;&amp;nbsp; LPC_UART0-&amp;gt;THR = *BufferPtr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty0 = 0;/* not empty in the THR until it shifts out */&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; /* THRE status, contain valid data */&lt;BR /&gt;#if !TX_INTERRUPT&lt;BR /&gt;&amp;nbsp; while ( !(LPC_UART1-&amp;gt;LSR &amp;amp; LSR_THRE) );&lt;BR /&gt;&amp;nbsp; LPC_UART1-&amp;gt;THR = *BufferPtr;&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp; /* Below flag is set inside the interrupt handler when THRE occurs. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( !(UARTTxEmpty1 &amp;amp; 0x01) );&lt;BR /&gt;&amp;nbsp; LPC_UART1-&amp;gt;THR = *BufferPtr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTTxEmpty1 = 0;/* not empty in the THR until it shifts out */&lt;BR /&gt;#endif&lt;BR /&gt;}&lt;BR /&gt;BufferPtr++;&lt;BR /&gt;Length--;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return;&lt;BR /&gt;}&lt;BR /&gt;int main (void)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetupUART_Location(0,0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTInit(0, 9600);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( UARTCount0 != 0 )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART0-&amp;gt;IER = IER_THRE | IER_RLS;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable RBR */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend( 0, "UARTONDONEOK" , 12);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount0 = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART0-&amp;gt;IER = IER_THRE | IER_RLS | IER_RBR;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Re-enable RBR */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;If i run this program I am getting junk data in my terminal.If i increase the character length,length of junk data too increases.I am using 12MHz clock.I suspect baudrate type issue.&lt;BR /&gt;&lt;BR /&gt;Please check if i&amp;nbsp; have gone wrong somewhere.&lt;BR /&gt;&lt;BR /&gt;Thanks a lot.&lt;/I&gt;&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:25:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Reg-UART-Library-for-LPC1227/m-p/546751#M9814</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:25:11Z</dc:date>
    </item>
    <item>
      <title>Re: Reg:UART Library for  LPC1227</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Reg-UART-Library-for-LPC1227/m-p/546752#M9815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Microembedded on Fri May 16 04:52:14 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help.Problem got solved when i changed the value of LPC_UART0-&amp;gt;DLL&amp;nbsp; to 0x13.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:25:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Reg-UART-Library-for-LPC1227/m-p/546752#M9815</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:25:12Z</dc:date>
    </item>
  </channel>
</rss>

