新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > UART---查詢方式(EasyARM2131)

UART---查詢方式(EasyARM2131)

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
/****************************************Copyright (c)********************

**--------------File Info-------------------------------------------------
** File name:main.c
** Last modified Date: 2011-04-10
** Last Version:1.0
** Descriptions:The main() function example template
**
**-----------------------------------------------------------------------
** Created by:lxliu
** Created date:2011-04-10
** Version:1.0
** Descriptions:The original version
**
**-----------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
************************************************************************/
#include "config.h"

本文引用地址:http://m.butianyuan.cn/article/201611/317409.htm

/***********************************************************************
** 函數(shù)名稱:DelayNS()
** 函數(shù)功能:長(zhǎng)軟件延時(shí)
** 入口參數(shù):dly延時(shí)控制值,值越大,延時(shí)越長(zhǎng)
** 出口參數(shù):無(wú)
***********************************************************************/

void DelayNS(uint32 dly)
{
uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}

#define UART_BPS 115200 //串口通信波特率
/***********************************************************************
** 函數(shù)名稱:UART0_Init()
** 函數(shù)功能:串口初始化,設(shè)置為8位數(shù)據(jù)位,1位停止位,
** 無(wú)奇偶校驗(yàn),波特率為115200
** 入口參數(shù):無(wú)
** 出口參數(shù):無(wú)
***********************************************************************/
void UART0_Init()
{
uint16 Fdiv;

U0LCR = 0x83;
Fdiv = (Fpclk/16)/UART_BPS;
U0DLM = Fdiv/256;
U0DLL = Fdiv%256;
U0LCR = 0x03;
}


/***********************************************************************
** 函數(shù)名稱:UART0_GetByte()
** 函數(shù)功能:從串口接收一個(gè)字節(jié)數(shù)據(jù),使用查詢方式接收
** 入口參數(shù):無(wú)
** 出口參數(shù):接收到的數(shù)據(jù)
***********************************************************************/

uint8 UART0_GetByte()
{
uint8 rcv_dat;

while((U0LSR & 0x01) == 0);
rcv_dat = U0RBR;

return(rcv_dat);
}

/***********************************************************************
** 函數(shù)名稱:UART0_GetStr()
** 函數(shù)功能:串口接收
** 入口參數(shù):s 指向接收數(shù)據(jù)數(shù)組的指針
** n 接收的個(gè)數(shù)
** 出口參數(shù):無(wú)
***********************************************************************/
void UART0_GetStr(uint8 *s, uint32 n)
{
for (;n>0;n--)
{
*s++ = UART0_GetByte();
}

}

/***********************************************************************
** 函數(shù)名稱:UART0_SendByte()
** 函數(shù)功能:向串口發(fā)送字節(jié)數(shù)據(jù),并等待發(fā)送完畢,使用查詢方式
** 入口參數(shù):dat 要發(fā)送的數(shù)據(jù)
** 出口參數(shù):無(wú)
***********************************************************************/
void UART0_SendByte(uint8 dat)
{
U0THR = dat;
while((U0LSR & 0x40) == 0);

}

/***********************************************************************
** 函數(shù)名稱:UART0_SendStr()
** 函數(shù)功能:向串口發(fā)送一字符串
** 入口參數(shù):str 要發(fā)送的字符串的指針
** 出口參數(shù):無(wú)
***********************************************************************/
void UART0_SendStr(uint8 const *str)
{
while(1)
{
if(*str ==