Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LPC21xx.h> // LPC2148 MPU Register
- #include "uart0.h"
- #include <string.h>
- /****************************************************/
- void uart_print(unsigned char* str)
- {
- unsigned char i = 0;
- for (i=0;i<strlen(str);i++){putchar(str[i]);}
- }
- /****************************************************/
- void uart_init(void)
- {
- PINSEL0 &= 0xFFFFFFF0; // Reset P0.0,P0.1 Pin Config
- PINSEL0 |= 0x00000001; // Select P0.0 = TxD(UART0)
- PINSEL0 |= 0x00000004; // Select P0.1 = RxD(UART0)
- U0LCR &= 0xFC; // Reset Word Select(1:0)
- U0LCR |= 0x03; // Data Bit = 8 Bit
- U0LCR &= 0xFB; // Stop Bit = 1 Bit
- U0LCR &= 0xF7; // Parity = Disable
- U0LCR &= 0xBF; // Disable Break Control
- U0LCR |= 0x80; // Enable Programming of Divisor Latches
- // U0DLM:U0DLL = 60.00 MHz / [16 x Baud]
- // = 60.00 MHz / [16 x 9600]
- // = 390.6 = 391 = 0187H
- U0DLM = 0x01; // Program Divisor Latch(391) for 9600 Baud
- U0DLL = 0x87;
- U0LCR &= 0x7F; // Disable Programming of Divisor Latches
- U0FCR |= 0x01; // FIF0 Enable
- U0FCR |= 0x02; // RX FIFO Reset
- U0FCR |= 0x04; // TX FIFO Reset
- U0FCR &= 0x3F;
- }
- /****************************/
- /* Write Character To UART0 */
- /****************************/
- int putchar (int ch)
- {
- if (ch == '\n')
- {
- while (!(U0LSR & 0x20)); // Wait TXD Buffer Empty
- U0THR = 0x0D; // Write CR
- }
- while (!(U0LSR & 0x20)); // Wait TXD Buffer Empty
- return (U0THR = ch); // Write Character
- }
- /*****************************/
- /* Read Character From UART0 */
- /*****************************/
- int getchar (void)
- {
- while (!(U0LSR & 0x01)); // Wait RXD Receive Data Ready
- return (U0RBR); // Get Receice Data & Return
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement