UART---查詢方式(EasyARM2131)
**--------------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"
/***********************************************************************
** 函數名稱:DelayNS()
** 函數功能:長軟件延時
** 入口參數:dly延時控制值,值越大,延時越長
** 出口參數:無
***********************************************************************/
void DelayNS(uint32 dly)
{
uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
#define UART_BPS 115200 //串口通信波特率
/***********************************************************************
** 函數名稱:UART0_Init()
** 函數功能:串口初始化,設置為8位數據位,1位停止位,
** 無奇偶校驗,波特率為115200
** 入口參數:無
** 出口參數:無
***********************************************************************/
void UART0_Init()
{
uint16 Fdiv;
U0LCR = 0x83;
Fdiv = (Fpclk/16)/UART_BPS;
U0DLM = Fdiv/256;
U0DLL = Fdiv%256;
U0LCR = 0x03;
}
/***********************************************************************
** 函數名稱:UART0_GetByte()
** 函數功能:從串口接收一個字節數據,使用查詢方式接收
** 入口參數:無
** 出口參數:接收到的數據
***********************************************************************/
uint8 UART0_GetByte()
{
uint8 rcv_dat;
while((U0LSR & 0x01) == 0);
rcv_dat = U0RBR;
return(rcv_dat);
}
/***********************************************************************
** 函數名稱:UART0_GetStr()
** 函數功能:串口接收
** 入口參數:s 指向接收數據數組的指針
** n 接收的個數
** 出口參數:無
***********************************************************************/
void UART0_GetStr(uint8 *s, uint32 n)
{
for (;n>0;n--)
{
*s++ = UART0_GetByte();
}
}
/***********************************************************************
** 函數名稱:UART0_SendByte()
** 函數功能:向串口發送字節數據,并等待發送完畢,使用查詢方式
** 入口參數:dat 要發送的數據
** 出口參數:無
***********************************************************************/
void UART0_SendByte(uint8 dat)
{
U0THR = dat;
while((U0LSR & 0x40) == 0);
}
/***********************************************************************
** 函數名稱:UART0_SendStr()
** 函數功能:向串口發送一字符串
** 入口參數:str 要發送的字符串的指針
** 出口參數:無
***********************************************************************/
void UART0_SendStr(uint8 const *str)
{
while(1)
{
if(*str ==
主站蜘蛛池模板:
应用必备|
韶关市|
泸定县|
嘉义市|
桂平市|
姜堰市|
蓝田县|
周宁县|
全州县|
普格县|
卢龙县|
三河市|
莱阳市|
古蔺县|
绥宁县|
怀集县|
浦城县|
姜堰市|
河北省|
正定县|
塔城市|
布尔津县|
新竹市|
通江县|
金溪县|
南投市|
辰溪县|
石家庄市|
丽江市|
新建县|
巴楚县|
宁海县|
扶风县|
垣曲县|
阳江市|
民勤县|
东丰县|
寻乌县|
渝北区|
全州县|
安多县|