maygapixel

Untitled

Dec 16th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.00 KB | None | 0 0
  1. #include <LPC21xx.h>                                        // LPC2148 MPU Register
  2. #include "uart0.h"
  3. #include <string.h>
  4. /****************************************************/
  5. void uart_print(unsigned char* str)
  6. {
  7.      unsigned char i = 0;
  8.      for (i=0;i<strlen(str);i++){putchar(str[i]);}
  9.    
  10. }
  11. /****************************************************/
  12.  void uart_init(void)  
  13. {
  14.   PINSEL0 &= 0xFFFFFFF0;                                    // Reset P0.0,P0.1 Pin Config
  15.   PINSEL0 |= 0x00000001;                                    // Select P0.0 = TxD(UART0)
  16.   PINSEL0 |= 0x00000004;                                    // Select P0.1 = RxD(UART0)
  17.  
  18.   U0LCR &= 0xFC;                                            // Reset Word Select(1:0)
  19.   U0LCR |= 0x03;                                            // Data Bit = 8 Bit
  20.   U0LCR &= 0xFB;                                            // Stop Bit = 1 Bit
  21.   U0LCR &= 0xF7;                                            // Parity = Disable
  22.   U0LCR &= 0xBF;                                            // Disable Break Control
  23.   U0LCR |= 0x80;                                            // Enable Programming of Divisor Latches
  24.  
  25.   // U0DLM:U0DLL = 60.00 MHz / [16 x Baud]
  26.   //             = 60.00 MHz / [16 x 9600]
  27.   //             = 390.6 = 391 = 0187H
  28.   U0DLM = 0x01;                                             // Program Divisor Latch(391) for 9600 Baud
  29.   U0DLL = 0x87;
  30.  
  31.   U0LCR &= 0x7F;                                            // Disable Programming of Divisor Latches
  32.  
  33.   U0FCR |= 0x01;                                            // FIF0 Enable
  34.   U0FCR |= 0x02;                                            // RX FIFO Reset
  35.   U0FCR |= 0x04;                                            // TX FIFO Reset
  36.   U0FCR &= 0x3F;                      
  37. }
  38.  
  39. /****************************/
  40. /* Write Character To UART0 */
  41. /****************************/
  42. int putchar (int ch)  
  43. {                  
  44.   if (ch == '\n')  
  45.   {
  46.     while (!(U0LSR & 0x20));                                // Wait TXD Buffer Empty
  47.     U0THR = 0x0D;                                           // Write CR
  48.   }
  49.   while (!(U0LSR & 0x20));                                  // Wait TXD Buffer Empty
  50.   return (U0THR = ch);                                      // Write Character
  51. }
  52.  
  53. /*****************************/
  54. /* Read Character From UART0 */
  55. /*****************************/
  56. int getchar (void)  
  57. {                    
  58.   while (!(U0LSR & 0x01));                                  // Wait RXD Receive Data Ready
  59.   return (U0RBR);                                           // Get Receice Data & Return
  60. }
Advertisement
Add Comment
Please, Sign In to add comment