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

📄 gprs_cpu_port.c

📁 周立功公司2410开发板上所有基于UCOS开发的源代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			GPRS_CPU_PORT.c
** Last modified Date:	2005-06-17
** Last Version:		1.0
** Descriptions:		cpu port function of GPRS
**						
**------------------------------------------------------------------------------------------------------
** Created by:			Yehaoben
** Created date:		2005-06-17
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: 
** Modified date:
** Version:	
** Descriptions: 
**
********************************************************************************************************/

#include "config.H"
/*********************************************************************************************************
** Function name:			IRQ_UART
**
** Descriptions:			UART interrupt server function
**
** input parameters:		None
** Returned value:			None
**         
** Used global variables:	None
** Calling modules:			None
**
** Created by:				Yehaoben
** Created Date:			2005/06/02
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
extern void ZLG_GPRS_RVC_HANDLE(uint8 i);
extern void ZLG_GPRS_RVC_HANDLE(uint8 i);
        void IRQ_UART0(void)
{
uint16 temp16;
	
	temp16 = rUFSTAT0;
	
	if(temp16 & (1<<9))//Tx FIFO FULL
	{
		//ERR
	}
	else if((temp16 & 0x00f0) == 0 )//Tx FIFO == 0
	{
		//SEND DATA
	}
	if(temp16 & (1<<8))//Rx FIFO FULL
	{
		//REVICE DATA
	}
	else if(temp16 & 0x000f)//Rx FIFO > 0
	{
		//REVICE DATA
		do
        {
            ZLG_GPRS_RVC_HANDLE(rURXH0);
        } while(rUFSTAT0 & 0x000f);
	}
	
	temp16 = rUERSTAT0;//READ ERR STATUS
	
	rSRCPND = 1<<28;
	rSUBSRCPND = 0x05;
	rINTPND = rINTPND;
}

/*********************************************************************************************************
** Function name:			UART_Ini
**
** Descriptions:			Initial uart
**
** input parameters:		baud bandrate
** Returned value:			None
**         
** Used global variables:	None
** Calling modules:			None
**
** Created by:				Yehaoben
** Created Date:			2005/06/02
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
uint8  UART_Ini(uint32 baud)

{  
uint8 i;
	
	VICVectAddr[28] = (uint32) IRQ_UART0;

	// 设置中断控制器
	rPRIORITY = 0x00000000;		// 使用默认的固定的优先级
	rINTMOD = 0x00000000;		// 所有中断均为IRQ中断
	rINTMSK = rINTMSK & (~(1<<28));			// 打开TIMER0中断允许
	rINTSUBMSK = rINTSUBMSK & 0X7FA;// ENABLE ERR0,TXD0,RXD0

	// IO口设置 (GPH3,GPH2)
	rGPHUP = rGPHUP | (0x0F);
	rGPHCON = (rGPHCON & (~0x000000FF)) | (0x000000AA);	

	// 串口模式设置
	rUFCON0 = 0x97;   	// 8tx,8rx,reset fifo ,enable fifo
	rUMCON0 = 0x01;   	// AFC(流控制)禁能
	rULCON0 = 0x03; 	// 禁止IRDA,无奇偶校验,1位停止位,8位数据位
	rUCON0  = 0x3c5; 	// 使用PCLK来生成波特率,发送中断为电平触发模式,接收中断为边沿触发模式,
                    	// 禁止接收超时中断,使能接收错误中断,正常工作模式,中断或查询方式(非DMA)	
	// 串口波特率设置
	rUBRDIV0=(int)(PCLK/16.0/baud + 0.5) -1; 
	
   	for(i=0;i<100;i++);
   	return 1;
}

/*********************************************************************************************************
** Function name:			ZLG_GPRS_Send_String
**
** Descriptions:			Send string
**
** input parameters:		char *:string pointer
** Returned value:			None
**         
** Used global variables:	None
** Calling modules:			None
**
** Created by:				Yehaoben
** Created Date:			2005/06/02
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void	ZLG_GPRS_Send_String(char * strptr)
{
	uint8	i,j,k,l;
	k = strlen(strptr);
	l = 0;
	do
	{
		j = (k > 8) ? 8 : k;
		for(i=0; i<j; i++)
			rUTXH0 = strptr[i + (l * 8)];	
		l++;
		k = k - j;
		while( (rUTRSTAT0 & 0X02) == 0 );
	}while(k > 0);
}

⌨️ 快捷键说明

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