⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart1.c

📁 包括使用ucos任务的一些操作实现了lpc2142上的一些基本功能:按键、流水灯
💻 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 + -