📄 main.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 + -