微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LCP2131例程 UART0查询法

LCP2131例程 UART0查询法

时间:11-25 来源:互联网 点击:
#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;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top