Serial.c
上传用户:cchhkk2004
上传日期:2022-05-10
资源大小:78k
文件大小:2k
源码类别:

VxWorks

开发平台:

Others

  1. /******************************************************************************/
  2. /* SERIAL.C: Low Level Serial Routines                                        */
  3. /******************************************************************************/
  4. /* This file is part of the uVision/ARM development tools.                    */
  5. /* Copyright (c) 2005-2006 Keil Software. All rights reserved.                */
  6. /* This software may only be used under the terms of a valid, current,        */
  7. /* end user licence from KEIL for a compatible version of KEIL software       */
  8. /* development tools. Nothing else gives you the right to use this software.  */
  9. /******************************************************************************/
  10. #include <LPC21xx.H>                     /* LPC21xx definitions               */
  11. #include "main.h"
  12. #define CR     0x0D
  13. #ifdef USE_UART0_MSG  //UART0
  14. /* implementation of putchar (also used by printf function to output data)    */
  15. int sendchar (int ch)  {                 /* Write character to Serial Port    */
  16.   if (ch == 'n')  {
  17.     while (!(U0LSR & 0x20));
  18.     U0THR = CR;                          /* output CR */
  19.   }
  20.   while (!(U0LSR & 0x20));
  21.   return (U0THR = ch);
  22. }
  23. int getkey (void)  {                     /* Read character from Serial Port   */
  24.   while (!(U0LSR & 0x01));
  25.   return (U0RBR);
  26. }
  27. #else //UART1
  28. /* implementation of putchar (also used by printf function to output data)    */
  29. int sendchar (int ch)  {                 /* Write character to Serial Port    */
  30.   if (ch == 'n')  {
  31.     while (!(U1LSR & 0x20));
  32.     U1THR = CR;                          /* output CR */
  33.   }
  34.   while (!(U1LSR & 0x20));
  35.   return (U1THR = ch);
  36. }
  37. int getkey (void)  {                     /* Read character from Serial Port   */
  38.   while (!(U1LSR & 0x01));
  39.   return (U1RBR);
  40. }
  41. #endif