?? 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 + -