Difference between revisions of "ARM Communication Protocol : UART"
Line 3: | Line 3: | ||
---- | ---- | ||
=Basics= | =Basics= | ||
+ | |||
+ | LPC1768 has 4 UARTS out of which UART0, UART2, UART3 are very similar while UART1 is little bit different from all these. | ||
+ | |||
+ | ===Registers=== | ||
+ | Let's have a brief review through some of the important UART registers. | ||
+ | |||
+ | ====RBR ( Receiver Buffer Register )==== | ||
+ | ====THR ( Transmit Holding Register )==== | ||
+ | ====DLL ( Divisor Latch LSB register )==== | ||
+ | ====DLM ( Divisor Latch MSB register )==== | ||
+ | ====FCR ( FIFO Control Register )==== | ||
+ | ====LCR ( Line Control Register )==== | ||
+ | ====LSR ( Line Status Register )==== | ||
+ | |||
=Schematic= | =Schematic= | ||
=Code= | =Code= |
Revision as of 16:15, 17 March 2015
Amruta (talk) 13:22, 17 March 2015 (IST)
Contents
Basics
LPC1768 has 4 UARTS out of which UART0, UART2, UART3 are very similar while UART1 is little bit different from all these.
Registers
Let's have a brief review through some of the important UART registers.
RBR ( Receiver Buffer Register )
THR ( Transmit Holding Register )
DLL ( Divisor Latch LSB register )
DLM ( Divisor Latch MSB register )
FCR ( FIFO Control Register )
LCR ( Line Control Register )
LSR ( Line Status Register )
Schematic
Code
Let's make a Decimal Counter with UART .
Initialize the UART0 with 9600 baud-rate.
Display the initial message and go on displaying incremented count taking some pause.
To know more about UART library, check this.
#include "lpc17xx.h" //Device specific header file #include "uart.h" //Explore Embedded UART library which contains the uart routines #include "delay.h" //Explore Embedded library containing the delay routines /* start the main program */ int main() { uint16_t cnt=0; /* Setup and initialize the microcontroller system */ SystemInit(); /* Initialize the UART before Transmitting/Receiving any data */ UART_Init(UART0,9600); UART_Printf("5digit decimal counter: "); /* Transmit the counter till 9999 */ while(cnt < 9999) { /* Transmit the 4-digit counter value and go to next line */ UART_Printf("\n\r%4u",cnt); /* Increment the counter value after 1-sec */ DELAY_sec(1); cnt++; } while(1); }