⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 以查询方式通过阿UART0进行通信
💻 C
字号:

#include "config.h"
/***************************************************************************
   **函数名称:DelayNS()
   **函数功能:长软件延时
   **入口参数:dly 延时参数,值越大,延时越长
   **出口参数:无
   **************************************************************************/
 void DelayNS(uint dly)
 {uint32 i;
 for(;dly;dly--)
    for(i=0;i<=5000;i++);
    
 }
 
 #define UART_BPS 115200                   //串口通信波特率
 /***************************************************************************
   **函数名称:UART_Init()
   **函数功能:串口初始化,设置为8位数据位,一位停止位,无奇偶校验,波特率为115200
   **入口参数:无
   **出口参数:无
   **************************************************************************/ 
 void UART0_Init(void)
 {
   uint16 Fdiv;
   
   
   U0LCR=0x83;                            //DLAB=1,允许设置波特率
   Fdiv=(Fpclk/16)/UART_BPS;              //设置波特率
   UODLM=Fdiv/256;
   UODLL=Fdiv%256;
   U0LCR=0x03;
 
   
 }
   
  /***************************************************************************
   **函数名称:UART0_GetByte()
   **函数功能:从串口接收一字节数据,使用查询方式接收
   **入口参数:无
   **出口参数:接收到的数据
   **************************************************************************/   
   
  uint8 UART0_GetByte(void)
  {uint8 rcv_dat;
  
  while((U0LSR&0x01)==0);                 //等待接收标志置位
  rcv_dat=U0RBR;                          //读取数据
  return(rcv_dat);
  
  }  
  
   /***************************************************************************
   **函数名称:UART0_GetStr()
   **函数功能:从串口接收
   **入口参数:s   指向接收数据数组的指针
               n   接收的个数
   **出口参数:无
   **************************************************************************/  
  
  
  void UART0_GetStr()
    {for(;n>0;n--)
      {*s++=UART0_GetByte();
      }
      }
  
   /***************************************************************************
   **函数名称:UART0_SendByte()
   **函数功能:向串口发送字节数据,并等待发送完毕,使用查询方式
   **入口参数:data  要发送的数据
   **出口参数:无
   **************************************************************************/    
  
  void UART0_SendByte(uint8 dat)
  {
   U0THR=dat;
   
    while((U0LSR&0x40)==0);
    
   }
   
    /***************************************************************************
   **函数名称:UART0_SendStr()
   **函数功能:从串口发送一字符串
   **入口参数:str   要发送的字符串的指针
               n   接收的个数
   **出口参数:无
   **************************************************************************/   
 void UART0_SendStr(uint8 const *str)
   {while(1)
     {
      if(*str=='\0') break;
      UART0_SendByte(*str++);
      
      }
    }
    /***************************************************************************
   **函数名称:main()
   **函数功能:从串口UART0接收字符串"Hello EVERYONE I am using EaeyARM2131!",并发送回上位机显示
   **调试说明:需要PC串口显示终端软件,如Easy ARM.exe
   **************************************************************************/    
  int main (void)
{ 
   uint8 snd[32];
   
  // PINSEL0=0x00000005;此可能影响其他引脚连接
   PINSEL0=(PINSEL0&(~0x0F))|0x05;//此可能影响其他引脚连接,将P0.0,P0.1选择UART0功能,设置I/O连接到UART0;
   
   UART0_Init();                  //串口初始化
   
   UART0_GetStr(snd,18);          //从串口接收字符串
   
   DelayNS(10);
   
   UART0_SendStr(snd);            //向串口发送字符串
   
   DelayNS(10);
   
   while(1);
   
   return 0;
   
   //PINSEL0=0x05<<16;,将P0.8,P0.9选择UART0功能;
   // PINSEL0=(PINSEL0&(~0x0F<<16))|(0x05<<16);//此可能影响其他引脚连接
   
// add user source code 
    return 0;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -