📄 uart1.c
字号:
/*************************************************************************************
** Copyright (c) 2007,XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
** http://XXXXXXXXXXXXXXXXX
**文件名称:Timer.C
**功能说明:与定时器相关的函数等
**使用说明:
** 当前版本: 1.0
** 作 者: XXX
** 完成日期: 2007年xx月xx号
*************************************************************************************/
#include "lpc214x.h"
#include "common.h"
/*************************************************************************************
* 函数原型: void Uart1_Ini(INT16U Uart1Bps)
* 功能描述: 以一定的波特率初始化UART0
* 输入参数: Uart1Bps 波特率,如9600,38400
* 输出参数:
* 返回值 :
**************************************************************************************/
void Uart1_Ini(INT16U Uart1Bps)
{
INT32U Fdiv;
PINSEL0=(PINSEL0&(~(0x0F<<16)))|(0x05<<16); //选择UART1;
U1LCR= 3 | // 8位字符长度
(0<<2) | // 1位停止位
(0<<3) | //禁止奇偶校验
(0<<4) | //奇偶选择
(0<<6) | //禁止间隔发送
(1<<7); //使能除数设置
//******设置波特率**********************************
Fdiv=Fpclk/(16*Uart1Bps);
U1DLM=Fdiv/256;
U1DLL=Fdiv%256;
U1LCR=U1LCR&(~(1<<7)); //锁定波特率设置
U1FCR= 1 | //使能FIFO
(1<<1) | //复位RxFIFO
(1<<2) | //复位TxFIFO
(0<<6); //1字节触发
}
/*************************************************************************************
* 函数原型: INT8U Uart1_GetByte(void)
* 功能描述: 查询方式接受1字节数据
* 输入参数:
* 输出参数:
* 返回值 : 接受到的1字节数据
**************************************************************************************/
INT8U Uart1_GetByte(void)
{INT8U GetData;
while((U1LSR&0x01)==0); //就绪后采集数据
GetData=U1RBR; //
return(GetData) ;
}
/*************************************************************************************
* 函数原型: void Uart1_GetString(INT8U *s,INT8U n)
* 功能描述: 查询方式接受1个长度为n多字节
* 输入参数: n 长度
* 输出参数: *str 一个字符串
* 返回值 :
**************************************************************************************/
void Uart1_GetString(INT8U *s,INT8U n)
{
for(;n>0;n--)
*s++=Uart1_GetByte();
}
/*************************************************************************************
* 函数原型: void Uart1_SendByte(INT8U send_byte )
* 功能描述: 查询方式发送1字节数据
* 输入参数: send_byte 待发送的数据
* 输出参数:
* 返回值 :
**************************************************************************************/
void Uart1_SendByte(INT8U send_byte )
{
U1THR= send_byte;
while((U1LSR&0x40)==0); //直到发送缓冲器空
}
/*************************************************************************************
* 函数原型: void Uart1_SendString(INT8U *str)
* 功能描述: 查询方式发送1串字符
* 输入参数: *str 待发送的字符串
* 输出参数:
* 返回值 :
**************************************************************************************/
void Uart1_SendString(INT8U *str)
{
while(!(*str == '\0' ))
{ //if( *str == '\0' ) break;
Uart1_SendByte(*str++) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -