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

📄 uart1.c

📁 这个是一个带有IC卡
💻 C
字号:
/****************************************Copyright (c)*******************************/
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"

#define __SRC


#include"UART1.h"


#undef __SRC


#define UART_BPS 9600 			//定义串口的波特率

uint32 Uart1_Flag;
uint32 Uart1_Data_Buffer[32]; 




/******************************************************************************************************
**函数名称:Uart_Init(void)
**入口参数:无
**出口参数:无
**函数功能:初始化串口:波特率:115200 1位停止位,无校验位
********************************************************************************************************/
void 	Uart1_Init (void)
{
	uint32 Fdiv;					//设置串口的除数
	
	PINSEL0 = (PINSEL0&0xFFF0FFFF)|0x00050000;
	
	U1LCR = 0x83;					//使能除数锁存器
	Fdiv = (Fpclk/16)/UART_BPS;
	U1DLM = Fdiv/256;
	U1DLL = Fdiv%256;
	U1LCR = 0x03;
	 
	U1FCR = 0x81;					//使能8字节除非的接收FIFO;
	U1IER = 0x07;					//使能RDA,THRE,Rx线状态中断。
	
	
	 
    return;
}

/******************************************************************************************************
**函数名称:__irq Uart_Int(void)
**入口参数:无
**出口参数:无
**函数功能:中断服务程序
********************************************************************************************************/
void 	IRQ_Uart1(void)
{
	uint8 i;
	uint32   bak;
   	bak = VICIntEnable;
   	VICIntEnClr = 1 << 7;			
   	VICVectAddr = 0x00;
   	
   	IRQEnable();
		
	i = U1IIR;
	switch(i)
	{
	case 0xC2:	
		//Uart1_Transport_Int();	//发送中断
		break;
	
	case 0xC4: 
	
		//Uart1_Recive(Uart1_Data_Buffer);		//接收数据可用,FIFO满触发
		i =i;
		break;
	
	case 0xC6:
		//ERR = 0x1;				//线状态错误
		break;
	case 0xCC:
	
		//Uart1_Recive_Timeout(Uart1_Data_Buffer);		//字符超时中断
		break;
	
	}
	
	VICIntEnable = bak;
	
		
}

/******************************************************************************************************
**函数名称:Uart_Transport()
**入口参数:无
**出口参数:无
**函数功能:发送中断服务程序
********************************************************************************************************/
uint32 Uart1_Transport(uint8 * p )
{
	/*
	uint32 j;
	for(j=0;j<8;j++)
	{
		U1THR = *i;
		i++;
	}
	*/
	return 0;
}
	




/******************************************************************************************************
**函数名称:Uart_Transport_irq()
**入口参数:无
**出口参数:无
**函数功能:发送中断服务程序
********************************************************************************************************/
uint32 Uart1_Transport_Int(void)
{
	uint32 Flag;
	Flag = 1;
	return(Flag);
}

/******************************************************************************************************
**函数名称:Uart_Recive_Timeout()
**入口参数:无
**出口参数:无
**函数功能:接收中断服务程序
********************************************************************************************************/
void Uart1_Recive_Timeout(uint8 * p)
{	
/*	uint32 i;
	i = 0x0;
	//for(i=0;i<8;i++)			//先清空接收缓存区
	//{
	//	DataBuffer[i] = 0x0;
	//}
	//for(i=0;i<8;i++)
	//{
		
		DataBuffer[0] = U1RBR;
		
	//}
	Uart1_Flag = 0x01;
    return;*/
} 
/******************************************************************************************************
**函数名称:Uart_Recive()
**入口参数:无
**出口参数:无
**函数功能:接收中断服务程序
********************************************************************************************************/
uint32 Uart1_Recive(uint8 * p )
{
	/*
	uint32 i;
	
	for(i=0;i<8;i++)
		{
		
		DataBuff[i] = U1RBR;
		}
	Uart1_Flag = 0x02;
	
	return(Uart1_Flag);
	*/
}

/****************************************************************************
* 名称:UART0_SendStr()
* 功能:向串口发送一字符串
* 入口参数:srt		要发送的字符串的指针
* 出口参数:无
****************************************************************************/
void  UART1_SendStr(uint8 const *str)
{  while(1)
   {  if( *str == '\0' ) break;
      UART1_SendByte(*str++);	    // 发送数据
   }
}

/****************************************************************************
* 名称:UART0_SendByte()
* 功能:向串口发送字节数据,并等待发送完毕。
* 入口参数:data		要发送的数据
* 出口参数:无
****************************************************************************/
void  UART1_SendByte(uint8 data)
{  
	U1THR = data;				    // 发送数据

   	while( (U1LSR&0x40)==0 );	    // 等待数据发送完毕
}

 
/*********************************************************************************************************
**                            End Of File
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -