#include”config.h”
voidDelayNS(uint32 dly)
{
uint32 i;
for(;dly>0;dly–)
for(i=0;i<50000;i++);
}
#defineUART_BPS 115200
voidUART0_Init(void)
{
uint16 Fdiv;
U0LCR=0x83;//决议发送和接纳的数据字符格局, 0x1000 0011 8位字符长度,1个中止位,制止奇偶校验
Fdiv=(Fpclk/16)/UART_BPS;
U0DLM=Fdiv/256;
U0DLL=Fdiv%256;
U0LCR=0x03;//设制好波特率后,再封闭不让设制。
}
uint8 UART0_GetByte(void)
{
uint8 rcv_dat;
while((U0LSR&0x01)==0);//U0LSR 线状况寄存器,供给UART Rx,Tx模块的状况信息;这里是判别是否接纳数据安排妥当。
rcv_dat=U0RBR;//接纳缓存寄存器
return(rcv_dat);
}
voidUART0_GetStr(uint8*s,uint32 n)
{
for(;n>0;n–)
{
*s++=UART0_GetByte();
}
}
voidUART0_SendByte(uint8 dat)
{
U0THR=dat;//U0THR 发送坚持寄存器
while((U0LSR&0x40)==0);//发送器空,等U0THR为空。也便是等它发送完结。
}
voidUART0_SendStr(uint8const*str)
{
while(1)
{
if(*str==)break;
UART0_SendByte(*str++);
}
}
intmain()
{
uint8 snd[32];
PINSEL0=0x00000005;
UART0_Init();
while(1)
{
UART0_GetStr(snd,18);
DelayNS(10);
UART0_SendStr(snd);
DelayNS(10);
}
return0;
}