Main.c
上传用户:gzxf2008
上传日期:2016-10-05
资源大小:181k
文件大小:2k
源码类别:

单片机开发

开发平台:

C/C++

  1. /*******************************************************************************
  2. *File: main.C
  3. *功能: 串口发送数据
  4. *说明: 使用外部晶振,不使用PLL,Fpclk=Fcclk/4
  5. *******************************************************************************/
  6. #include   "config.h"
  7. /*******************************************************************************
  8. *名称: DelayNS()
  9. *功能: 长软件延时
  10. *******************************************************************************/
  11. void DelayNS(uint32 dly)
  12. { uint32 i;
  13.    for(;dly>0;dly--)
  14.        for(i=0;i<50000;i++);
  15. }
  16. /*******************************************************************************
  17. *名称: UART0_Ini()
  18. *功能: 初始化串口0.设置为8位数据位,1位停止位,无奇偶校验,波特率为9600
  19. *******************************************************************************/
  20. void UART0_Ini(void)
  21. {  U0LCR=0x83;                       //DLAB=1,可设置波特率
  22.    U0DLL=0x12;
  23.    U0DLM=0x00;
  24.    U0LCR=0x03;
  25. }
  26. /*******************************************************************************
  27. *名称: UART0_SendByte()
  28. *功能: 向串口发送字节数据,并等待发送完毕
  29. *******************************************************************************/
  30. void UART0_SendByte(uint8 data)
  31. {   U0THR=data;                     //发送数据
  32.     while((U0LSR&0x40)==0);         //等待数据发送完毕
  33.     {
  34.       uint32 i;
  35.       for(i=0; i<5; i++);
  36.    }
  37. }
  38. /*******************************************************************************
  39. *名称:UART0_SendStr()
  40. *功能:向串口发送一字符串
  41. *******************************************************************************/
  42. void UART0_SendStr(uint8 const *str)
  43. {  while(1)
  44.   { if(*str=='') 
  45.     {UART0_SendByte('r');
  46.      UART0_SendByte('n');
  47.          break;
  48.       } 
  49.   UART0_SendByte(*str++);           //发送数据
  50.   }
  51. }
  52. char UART0_RecvByte(void)
  53. {  while(!(U0LSR&0x01));
  54.    return U0RBR;
  55. }
  56. /*******************************************************************************
  57. *名称: main()
  58. *功能: 向串口UART0发送字符串"Hello World!"
  59. *******************************************************************************/
  60. int main(void)
  61. {  uint8  const SEND_STRING[]="HELLO WORLD!n";
  62.    PINSEL0=0x00000005;              //设置I/O连接到UART0
  63.    PINSEL1=0x00000000;
  64.    UART0_Ini();
  65.    
  66.    UART0_SendStr(SEND_STRING);
  67.    DelayNS(10);
  68.    
  69.     while(1)
  70.    {
  71.       UART0_SendByte(UART0_RecvByte());
  72.    }
  73.  }