📄 uart0app.c
字号:
/****************************************Copyright (c)**************************************************
** 广州周立功单片机发展有限公司
** 研 究 所
** 产品一部
**
** http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: UART0APP.C
**创 建 人: 刘养海
**最后修改日期: 2004年2月25日
**描 述: 定义LPC21xx\LPC22xx中UART0应用层函数
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 刘养海
** 版 本: v1.0
** 日 期: 2004年2月25日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define _UART0APP_GLOBAL_
//文件引用
#include "config.h"
//#define Fpclk 11059200
/*********************************************************************************************************
**--------------技巧说明------------------------------------------------------------------------------
** 在文件中定义了用于UART0实际应用层操作的函数
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
/*
************************************************************************************************************************
**函数原型 : void Delay(UINT32 i)
**参数说明 : i;软件Delay
**返回 值 : 无
**说 明 : 本函数用于简单的延时
*****
*******************************************************************************************************************
*/
void Delay(UINT32 i)
{
while(i--);
}
/*
************************************************************************************************************************
**函数原型 : void InitUart0(UINT32 BPS)
**参数说明 : BPS -->> BandRate;
LCR -->> U0LCR 寄存器;
FCR -->> UOFCR 寄存器;
**返回 值 : 无
**说 明 : 本函数用于硬件初始化UART0
************************************************************************************************************************
*/
void InitUart0(UINT32 BPS)
{
PCONP |= (0x01 << 3) ;
PINSEL0 &= ~((UINT32)0x0F);
PINSEL0 |= ((UINT32)0x05);
//设定波特率
U0LCR =0x80;
U0DLL=Fpclk/(16*BPS)&0x000000ff;
U0DLM=(Fpclk/(16*BPS)) >>8;
uU0LCR.Bits.DLAB_BIT =0x00;
//在此加入自己的初始化代码
U0LCR =0x03;
U0FCR =0xC1;
}
/*
************************************************************************************************************************
**函数原型 : void Uart0Send(UINT32 Len,UINT8 *Buf)
**参数说明 : Len -->> 发送字符长度;
Buf -->> 要发送数据的缓冲区首址
**返回 值 : 无
**说 明 : 本函数用于UART0发送数据,应用FIFO,非发送中断方式
************************************************************************************************************************
*/
void Uart0Send(UINT32 Len,UINT8 *Buf)
{
UINT32 i,j,k;
UINT8 *p =Buf;
i= Len/16;
j=Len%16;
while(i--)
{
for(k=0;k<16;k++)
{
uU0THR.Word=(UINT32)(*p++);
}
while(0 == (U0LSR &0x40));
}
for(k=0;k<j;k++)
{
uU0THR.Word=(UINT32)(*p++);
}
}
/*
************************************************************************************************************************
**函数原型 : void Uart0Rcv(UINT32 Len,UINT8 *Buf)
**参数说明 : Len -->> 接收字符长度;<=16;
Buf -->> 解收数据的缓冲区首址
**返回 值 : 无
**说 明 : 本函数用于UART0接收数据,应用FIFO
************************************************************************************************************************
*/
void Uart0Rcv(UINT32 Len,UINT8 *Buf)
{
UINT32 i,j;
if(Len >16)
{
i=16;
}
else
{
i=Len;
}
for(j=0;j<i;j++)
{
*(Buf+j)=(UINT8)(uU0RBR.Bits.BR_BIT);
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -