亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gprs.c

?? 周立功SMART ARM2200上GPRS源碼,快下吧,好東西
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機發展有限公司
**                                     研    究    所
**                                        產品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: GPRS.c
**創   建   人: 葉皓賁
**最后修改日期: 2005年7月4日
**描        述: μCOS-II下LPC2000的GPRS底層驅動 
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: Yehaoben
** 版  本: v1.0
** 日 期: 2007年2月25日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版  本:
** 日 期:
** 描 述:
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define 	IN_MODEM
#include 	"config.h"

#define  	GPRS_TASK_STK_SIZE                  128
OS_STK      GPRSTaskStartStk[GPRS_TASK_STK_SIZE];

static 		OS_EVENT *ModemSem, *Uart1Send, *Uart1Get,*HaveCall;
static 		uint8 ModemState;

/*********************************************************************************************************
** 函數名稱: UART1Init
** 功能描述: 初始化UART0 
** 輸 入: bps:波特率
**
** 輸 出:TRUE  :成功
**        FALSE:失敗
** 全局變量: Uart0Sem
** 調用模塊: OSSemCreate
**
** 作 者: 陳明計
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void UART1Init(uint32 bps)
{
    uint16 Fdiv;
    
    PINSEL0 = (PINSEL0 & 0x0000ffff) | 0x55550000;  /* 選擇管腳為UART0 */

    U1LCR = 0x80;                                   /* 允許訪問分頻因子寄存器 */
    Fdiv = (Fpclk / 16) / bps;                      /* 設置波特率 */
    U1DLM = Fdiv / 256;							
	U1DLL = Fdiv % 256;						
    U1LCR = 0x03;                                   /* 禁止訪問分頻因子寄存器 */
                                                    /* 且設置為8,1,n */
	U1IER = 0x01;                                   /* 允許接收和發送中斷 */
    U1FCR = 0x87;                                   /* 初始化FIFO */
    U1MCR = 0x03;
    Uart1Send = OSSemCreate(1);
    Uart1Get = OSSemCreate(0);

}
/*********************************************************************************************************
** 函數名稱: GetModemState
** 功能描述: 獲取MODEM狀態
** 輸 入: 無
**        
** 輸 出: MODEM狀態
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 GetModemState(void)
{
    return ModemState;
} 

/*********************************************************************************************************
** 函數名稱: ModemWrite
** 功能描述: 發送多個字節數據
** 輸 入: Data:發送數據存儲位置
**        NByte:發送數據個數
** 輸 出:無
** 全局變量: 無
** 調用模塊: UART0Putch
**
** 作 者: 陳明計
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 ModemWrite(char *Data, uint16 NByte)
{
    uint8 err,i;
    
    while (NByte > 0)
    {
        while((U1LSR&0X40) == 0);
        for (i = 0; i < 8; i++)
        {
            U1THR = *Data++;
            NByte--;
            if (NByte == 0)
            {
                break;
            }
        }
    }

    return ModemState;
} 

/*********************************************************************************************************
** 函數名稱: UART0Getch
** 功能描述: 接收一個字節
** 輸 入: 無
** 輸 出: 接收到的數據
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 ModemGetch(void)
{
    uint8 rt;

    OS_ENTER_CRITICAL();
    while ((U1LSR & 0x00000001) == 0)
    {                                           /* 沒有收到數據 */
        U1IER = U1IER | 0x01;                   /* 允許接收中斷 */
        OSSemPend(Uart1Get,OS_TICKS_PER_SEC/2, &rt);
        
        break;
    }
    if(rt == OS_TIMEOUT)
    	rt = 0;
    else
    	rt = U1RBR;                                 /* 讀取收到的數據 */
    OS_EXIT_CRITICAL();

    return rt;
} 
/*********************************************************************************************************
** 函數名稱: GetAllChar
** 功能描述: 接收當前的所有字節
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: Yehaoben
** 日 期: 2005年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void GetAllChar()
{
	uint8 i,j;
	OS_ENTER_CRITICAL();
	U1IER = U1IER | 0x01;                   /* 允許接收中斷 */
	OS_EXIT_CRITICAL();
	for (i = 0; i < 120; i++)
    {
    	j = ModemGetch();
    	if (j == 0)
    		break;
        
    }
}
/*********************************************************************************************************
** 函數名稱: ModemDialUp
** 功能描述: 通過modem撥號 
** 輸 入: 電話號碼
**
** 輸 出: modem狀態
**
** 全局變量: ModemState
** 調用模塊: ModemWrite,OSTimeDly
**
** 作 者: Yehaoben
** 日 期: 2005年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 ModemDialUp(char Number[])
{
    char *cp;
    uint8 i;
    uint8 err;
    OSSemPend(ModemSem, 0, &err);
    if (ModemState == MODEM_CLOSE)
    {
        while ((U1LSR & 0x00000001) != 0)
        {
            err = U1RBR;
        }
        ModemWrite("ATD", 3);
        i = 0;
        cp = Number;
        while (*cp++ != 0)
        {
            i++;
        }
        ModemWrite(Number, i);
        ModemWrite(";\r\n", 3);
        GetAllChar();
    }
    OSSemPost(ModemSem);
    return ModemState;
}
/*********************************************************************************************************
** 函數名稱: ModemDialDown
** 功能描述: 掛斷modem 
** 輸 入: 無
**
** 輸 出: modem狀態
**
** 全局變量: ModemState
** 調用模塊: OSTimeDly
**
** 作 者: 陳明計
** 日 期: 2004年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 ModemDialDown(void)
{
    U1MCR = 0x02;
    OSTimeDly(OS_TICKS_PER_SEC / 10);
    U1MCR = 0x03;
    OSTimeDly(OS_TICKS_PER_SEC / 10);
    return ModemState;
}
/*********************************************************************************************************
** 函數名稱: ModemCommand
** 功能描述: 向modem發送命令 
** 輸 入: 命令字符串
**
** 輸 出: modem狀態
**
** 全局變量: ModemState
** 調用模塊: ModemWrite,ModemGetch,
**
** 作 者: yehaoben
** 日 期: 2005年2月25日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 ModemCommand(char *Command)
{
    uint8 i,err;
    uint16 j;
    OSSemPend(ModemSem, 0, &err);
    GetAllChar();
    if (ModemState == MODEM_CLOSE)
    {
        while(1)
        {
	        while ((U1LSR & 0x00000001) != 0)
	        {
	            err = U1RBR;
	        }
	        ModemWrite("AT\r\n", 4);
	        i = ModemGetch();
	        j = 0;
	        while ( j <= 20 )
	        {
	            err = i;
	            i = ModemGetch();
	            if (err == 'O' || err == 'o')
	            if (i == 'K' || i == 'k')
	            {
	                i = ModemGetch();
	                i = ModemGetch();
	                break;
	            }
	            if( (i == 0) && (j == 3) )
	            {
	            	j=20;
	            }
	            j++;
	        }
	        if(j >=20 )
        	{
        		continue;
        	}
        	else
        		break;
        }
       
        ModemWrite(Command, strlen(Command));
        ModemWrite("\r\n", 2);
        i = ModemGetch();
        j=0;
        while (1)
        {
            err = i;
            i = ModemGetch();
            if (err == 'O' || err == 'o')
            if (i == 'K' || i == 'k')
            {
                i = ModemGetch();
                i = ModemGetch();
                break;
            }
            if(i == 0)
            	j++;
            if(j >= 3 )
            	break;
            	
        }
        GetAllChar();
        
    }
    OSSemPost(ModemSem);
    return ModemState;
}
/*********************************************************************************************************
** 函數名稱: GPRSCheckTask
** 功能描述: GPRS檢查是否有電話來和檢查是否有新的短信。
** 輸 入: 無
**
** 輸 出: 無
**
** 全局變量: ModemState
** 調用模塊: UART1Init,OSTimeDly,ModemCommand,
**
** 作 者: Yehaoben
** 日 期: 2005年7月2日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void  GPRSCheckTask(void *pdata)
{
	uint8 i,err,temp[3];
	while(1)
	{
		OSTimeDly(OS_TICKS_PER_SEC*2);
		OSSemPend(ModemSem, 0, &err);
		do
		{
			i = ModemGetch();
			if( i == 'R' )
			{
				temp[0] = ModemGetch(); 
				temp[1] = ModemGetch(); 
				temp[2] = ModemGetch(); 
				if( temp[0] == 'I' )
				if( temp[1] == 'N' )
				if( temp[2] == 'G' )
					OSSemPost(HaveCall);
			}
		}while( i != 0 );
		OSSemPost(ModemSem);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区精华液| 成人黄色小视频在线观看| 91超碰这里只有精品国产| 亚洲综合免费观看高清完整版在线| 欧洲av一区二区嗯嗯嗯啊| 亚洲一二三四区不卡| 欧美一区二区三区免费大片| 青青草成人在线观看| 精品国产乱码久久久久久浪潮 | 国产剧情一区二区三区| 久久综合九色综合欧美就去吻| 国产一区二区在线影院| 欧美激情资源网| 欧美日韩在线播| 狠狠色丁香婷婷综合| 国产精品久久久久精k8 | 懂色av一区二区三区免费观看| 国产精品久久久一本精品| 色88888久久久久久影院野外| 午夜激情综合网| 久久综合色婷婷| 色综合天天综合在线视频| 无吗不卡中文字幕| 国产亚洲精品7777| 欧美色综合天天久久综合精品| 久久99热狠狠色一区二区| 中文字幕亚洲精品在线观看| 欧美日韩三级一区| 国产成人丝袜美腿| 午夜视频一区在线观看| 2021久久国产精品不只是精品| 欧美中文字幕一区二区三区| 国产一区二区不卡在线| 亚洲成av人影院在线观看网| 久久久不卡影院| 欧美日韩日日摸| 成人av片在线观看| 精品亚洲aⅴ乱码一区二区三区| 亚洲免费视频成人| 亚洲精品在线电影| 欧美日韩免费一区二区三区| 成人免费视频视频在线观看免费| 亚洲成人免费电影| 国产精品成人一区二区三区夜夜夜| 欧美三区在线视频| 99精品1区2区| 国产乱一区二区| 日韩电影在线一区二区三区| 亚洲欧美日韩久久| 国产人成一区二区三区影院| 在线不卡欧美精品一区二区三区| 成人av在线一区二区| 国产在线一区二区| 播五月开心婷婷综合| 日本成人中文字幕| 亚洲综合av网| 亚洲人成网站色在线观看| 久久久久免费观看| 精品国产一区二区在线观看| 欧美日本不卡视频| 欧美在线视频你懂得| 91亚洲国产成人精品一区二三| 九九**精品视频免费播放| 天堂av在线一区| 亚洲成人先锋电影| 亚洲综合999| 亚洲一区二区三区自拍| 亚洲精品国产成人久久av盗摄| 中文字幕+乱码+中文字幕一区| 精品国产91洋老外米糕| 日韩视频一区二区三区在线播放 | 国产伦精品一区二区三区免费迷| 日韩高清不卡在线| 日日夜夜精品免费视频| 日韩国产在线观看一区| 香港成人在线视频| 日韩av在线播放中文字幕| 日韩中文字幕一区二区三区| 日本在线播放一区二区三区| 五月婷婷激情综合| 日本不卡中文字幕| 老司机免费视频一区二区三区| 人禽交欧美网站| 久久精品国产精品亚洲精品| 激情五月激情综合网| 国产美女精品一区二区三区| 国产精品99久久久久久久vr | 奇米四色…亚洲| 久久精品999| 国产成人8x视频一区二区| 成人激情文学综合网| 91黄色免费版| 日韩一区二区三区免费观看| 日韩精品一区二区三区老鸭窝| 久久综合成人精品亚洲另类欧美 | 国产午夜精品一区二区三区嫩草 | 一区二区三区91| 青青草91视频| 国产91精品入口| 色悠悠久久综合| 91精品国产日韩91久久久久久| 日韩欧美国产一二三区| 久久九九全国免费| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产美女搞黄色| 免费一区二区视频| 国产91富婆露脸刺激对白| 色婷婷一区二区| 日韩欧美国产一区在线观看| 国产精品美日韩| 石原莉奈一区二区三区在线观看 | 国产很黄免费观看久久| 91久久香蕉国产日韩欧美9色| 欧美高清精品3d| 国产精品青草久久| 视频一区国产视频| 成人黄色综合网站| 91精品国产91久久久久久一区二区| 精品99久久久久久| 亚洲欧美另类图片小说| 蜜臀久久99精品久久久画质超高清| 国产精品1区二区.| 欧美人狂配大交3d怪物一区| 国产欧美日韩激情| 香蕉久久一区二区不卡无毒影院| 国产九色sp调教91| 欧美精品777| 亚洲精品一二三四区| 国产综合一区二区| 欧美日韩一区二区三区免费看| 国产欧美日韩精品一区| 日韩av不卡在线观看| 成人av网址在线| 久久蜜桃一区二区| 青草av.久久免费一区| 一本到三区不卡视频| 国产拍揄自揄精品视频麻豆| 日本一不卡视频| 欧美午夜视频网站| 亚洲人成影院在线观看| 国产精品1024久久| 日韩一级视频免费观看在线| 亚洲一区二区高清| eeuss鲁片一区二区三区在线看| 日韩欧美一区电影| 天天色天天爱天天射综合| 色综合中文综合网| 日本一区二区三区四区| 免费人成黄页网站在线一区二区| 欧洲一区二区三区在线| 欧美激情一区二区三区在线| 加勒比av一区二区| 欧美一二三区在线| 日韩精品免费视频人成| 欧美亚洲国产bt| 亚洲美腿欧美偷拍| 91欧美一区二区| 亚洲视频精选在线| aa级大片欧美| 国产精品久久国产精麻豆99网站| 久99久精品视频免费观看| 欧美精品一二三区| 日韩精品一二三区| 欧美精品色综合| 青青草国产精品97视觉盛宴 | 日韩三级中文字幕| 奇米影视7777精品一区二区| 欧美一区二区三区思思人| 日韩经典中文字幕一区| 7777精品伊人久久久大香线蕉完整版| 亚洲第一福利一区| 欧美久久久久久蜜桃| 亚洲mv在线观看| 欧美一区二区三区成人| 裸体在线国模精品偷拍| 久久这里只有精品6| 成人午夜av电影| 亚洲视频资源在线| 欧洲一区二区三区在线| 婷婷久久综合九色综合伊人色| 欧美高清视频不卡网| 精品在线播放午夜| 欧美国产禁国产网站cc| 91色porny蝌蚪| 五月婷婷激情综合网| 日韩精品一区在线| 成人午夜视频在线观看| 亚洲另类中文字| 制服丝袜日韩国产| 黄色资源网久久资源365| 欧美国产精品久久| 色爱区综合激月婷婷| 日本午夜精品一区二区三区电影| 久久―日本道色综合久久| av一区二区三区四区| 亚洲国产另类精品专区| 久久在线观看免费| 一本到高清视频免费精品| 日本中文字幕一区二区视频| 中文字幕av资源一区|