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

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

?? modem.c

?? 一個完整的MODEM例程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
* 文件名:MODEM.C
* 功能:MODEM驅動程序。
* 說明:基于LPC2100、LPC2200系列ARM7微控制器的UART1
****************************************************************************/
#define IN_MODEM
#include "config.h"
void __irq UART1_Exception(void);
uint8 WaitCmdAck(void);
static volatile uint8  ModemState=NOT_INIT_MODEM;	// 定義MODEM狀態變量
uint8 RecBuff[1024];
volatile uint16 RecPointer=0;
volatile uint16 ReadPointer=0;
extern   uint8  Config_Finish;
/****************************************************************************
* 名稱:DelayNS()
* 功能:長軟件延時
* 入口參數:dly		延時參數,值越大,延時越久
* 出口參數:無
****************************************************************************/
void  DelayNS(uint32  dly)
{  uint32  i;

   for(; dly>0; dly--) 
      for(i=0; i<10000; i++);
}


void ClearFIFO(void)
{
    uint8 temp,i;
    for(i=0;i<16;i++)
    {
        if ( (U1LSR & 0x01) == 0x01 )
		{
			temp = U1RBR;				// 讀空接收FIFO
		}
		else
		{
			break;
		}
    }
    return;    
}
/****************************************************************************
* 名稱:UART1Init()
* 功能:UART1初始化(MODEM功能)。
* 入口參數:bps		波特率
* 出口參數:無
****************************************************************************/
void  UART1Init(uint32 bps)
{
    uint16 Fdiv;
    
    PINSEL0 = (PINSEL0 & 0x0000FFFF) | 0x55550000;  // 選擇管腳為UART0 
    
    U1LCR = 0x83;                                   // 允許訪問分頻因子寄存器 
    Fdiv = (Fpclk / 16) / bps;                      // 設置波特率 
    U1DLM = Fdiv / 256;							
	U1DLL = Fdiv % 256;						
    U1LCR = 0x03;                                   // 禁止訪問分頻因子寄存器 
                                                    // 且設置為8,1,n
                                                     
	U1IER = 0x0D;                                 // 允許接收和MODEM中斷 
    //U1IER = 0x0F;                                   // 允許接收、發送、MODEM中斷
    //U1IER=0x05; 
    //U1FCR = 0x87;                                 // 初始化FIFO 
    //U1FCR=0x07;                                   //FIFO里有數據就差生中斷              
    U1MCR = 0x03;                                   //允許硬件控制流
    
    ClearFIFO();
    
    VICIntSelect = 0x00000000;           	        // 設置所有通道為IRQ中斷
    VICVectCntl0 = 0x27;                 	        // UART1中斷通道分配到IRQ slot 0,即優先級最高
    VICVectAddr0 = (uint32)UART1_Exception;         // 設置UART1向量地址
    VICIntEnable = 0x00000080;          	        // 使能UART1中斷           
}


/****************************************************************************
* 名稱:ModemWrite()
* 功能:向UART1(MODEM)發送多字節數據。
* 入口參數:Data		待發送數據指針
*          NByte	發送數據字節個數
* 出口參數:返回當前MODEM狀態值
****************************************************************************/
uint8  ModemWrite(char *Data, uint16 NByte)
{
    uint8 i;
    
    while (NByte > 0)								// 發送NByte字節數據
    {
        for (i = 0; i < 8; i++)						// 一次發送8個字節(已使能FIFO)			
        {
            U1THR = *Data++;
            NByte--;
            if (NByte == 0)
            {
                break;
            }
        }
        while((U1LSR&0x20) == 0);					// 等待數據發送完畢
    }
    
    return(ModemState);
} 
/****************************************************************************
* 名稱:ModemGetch()
* 功能:接收UART1(MODEM)字節數據。
* 入口參數:無
* 出口參數:返回取得的數據
****************************************************************************/
uint8  ModemGetch(void)
{
    uint8 rt;

    while((U1LSR&0x01) == 0)
    {                                           // 沒有收到數據
        U1IER = U1IER | 0x01;                   // 允許接收中斷 
        for(rt=0; rt<200; rt++);
    }
    rt = U1RBR;                                 // 讀取收到的數據
 
    return(rt);
} 


/****************************************************************************
* 名稱:ModemCommand()
* 功能:發送MODEM命令。
* 入口參數:Command		AT指令(字符串)
* 出口參數:返回當前MODEM狀態值
****************************************************************************/
uint8  ModemCommand(char *Command)
{
    char  *cp;
    uint8  i, err;
    
    if(ModemState == MODEM_CLOSE)
    {
        while((U1LSR&0x01) != 0)			// 讀取完接收到的數據
        {
            err = U1RBR;
        }
        
        cp = Command;
        i = 0;
        while(*cp++ != 0)					// 取得AT指令字符個數
        {
            i++;
        }
        
        ReadPointer=RecPointer=0;
        ModemWrite(Command, i);				// 發送AT指令
        ModemWrite("\r", 1);				// 發送命令結束符
       
        ModemState=WaitCmdAck();
        return(ModemState);
   }      
        /*i = ModemGetch();
        if((i=='A') || (i=='a'))			// 若命令回顯,接字符形式等待回應
        {
            while(1)
            {
                err = i;
                i = ModemGetch();
                if((err=='O') || (err=='o'))
                if((i=='K') || (i=='k'))
                {
                    i = ModemGetch();
                    i = ModemGetch();
                    break;
                }
            }
        }
        else								// 按數字形式等待回應
        {
            while(1)
            {
                if(i == '0')
                {   
                    i = ModemGetch();
                    break;
                }
                i = ModemGetch();
            }
        }
    }*/
    
    return(ModemState);
}


/****************************************************************************
* 名稱:ModemDialDown()
* 功能:Modem斷開。
* 入口參數:Number		拔號字符串
* 出口參數:返回當前MODEM狀態值
****************************************************************************/
uint8  ModemDialDown(void)
{
    U1MCR = 0x02;							// 設置DTR為0,使MODEM掛機并返回命令狀態
    DelayNS(1);								// MODEM中斷會設置ModemState為MODEM_CLOSE
    U1MCR = 0x03;							// 恢復DTR為1
    DelayNS(1);
    										
    return(ModemState);
}

/****************************************************************************
* 名稱:ModemDialUp()
* 功能:Modem拔號操作。
* 入口參數:Number		拔號字符串
* 出口參數:返回當前MODEM狀態值
****************************************************************************/
uint8  ModemDialUp(char Number[])
{
    char   *cp;
    uint8  i, err;
    
    if(ModemState == MODEM_CLOSE)
    {
        while((U1LSR & 0x00000001) != 0)	// 讀取完接收到的數據
        {
            err = U1RBR;
        }
        ModemWrite("ATD", 3);				// 發送拔號命令
        i = 0;
        cp = Number;
        while(*cp++ != 0)					// 取得AT指令字符個數
        {
            i++;
        }
        ModemWrite(Number, i);				// 發送拔號號碼
        ModemWrite("\r", 1);				// 發送命令結束符

        U1IER = U1IER | 0x01;             	// 允許接收中斷
        for (i = 0; i < 200; i++)
        {
            DelayNS(5);
            if (ModemState == MODEM_CONNECT)
            {
                break;
            }
        }
    }
    
    return(ModemState);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清免费不卡视频| 91精品黄色片免费大全| 欧美色综合天天久久综合精品| 宅男噜噜噜66一区二区66| 久久久99精品免费观看| 亚洲无人区一区| 福利视频网站一区二区三区| 欧美日韩高清不卡| 亚洲色图.com| 国产91清纯白嫩初高中在线观看| 欧美疯狂性受xxxxx喷水图片| 国产精品天美传媒沈樵| 麻豆传媒一区二区三区| 色88888久久久久久影院野外| 中文av一区二区| 精品一区二区综合| 欧美一区二区三区白人| 亚洲综合丝袜美腿| 99久久久精品免费观看国产蜜| 精品国产污污免费网站入口| 午夜精品久久一牛影视| 91成人看片片| 一区二区三区在线影院| 成人免费观看男女羞羞视频| 久久久久国产精品麻豆ai换脸| 蜜臀久久99精品久久久久宅男| 欧美性极品少妇| 亚洲美腿欧美偷拍| 一本到高清视频免费精品| 国产日韩欧美a| 高清久久久久久| 国产婷婷一区二区| 国产成人免费av在线| 午夜精品久久久久久久| 日产欧产美韩系列久久99| 激情小说欧美图片| 欧美日韩激情在线| 亚洲国产视频一区二区| 欧洲一区在线观看| 亚洲一二三四在线| 欧美日韩黄色影视| 日韩激情一二三区| 日韩一级完整毛片| 精品一区二区在线视频| 久久亚洲捆绑美女| 高清不卡一区二区在线| 欧美mv日韩mv| 亚洲私人影院在线观看| 国产成人精品三级麻豆| 国产欧美日本一区二区三区| 国产一区二区不卡| 亚洲国产精品激情在线观看| 国产精品每日更新在线播放网址| 国产精品福利影院| 狠狠色丁香久久婷婷综合_中| 欧美精品一区二区三区很污很色的| 轻轻草成人在线| 成人欧美一区二区三区小说| 99这里只有精品| 亚洲一区二区av电影| 91精品国产综合久久福利软件 | 国产精品久久久久久久第一福利| 成人avav影音| 偷拍与自拍一区| 精品国产一区久久| 99re视频精品| 日韩制服丝袜先锋影音| 国产视频一区二区在线观看| 色噜噜夜夜夜综合网| 日本不卡一二三区黄网| 中文字幕亚洲一区二区va在线| 欧美色区777第一页| 精品一区二区三区视频| 亚洲精品国产a久久久久久 | 国产成人av影院| 日韩免费福利电影在线观看| 国产ts人妖一区二区| 国产精品不卡在线观看| 精品动漫一区二区三区在线观看| 大尺度一区二区| 亚洲日本一区二区三区| 欧美α欧美αv大片| 97精品视频在线观看自产线路二| 亚洲午夜久久久| 国产亚洲欧美一区在线观看| 欧美在线免费视屏| 北条麻妃一区二区三区| 精品免费99久久| 成人免费视频caoporn| 欧美日韩专区在线| 日韩黄色免费电影| 中文字幕国产一区| 69堂亚洲精品首页| 91福利在线免费观看| 国产在线国偷精品产拍免费yy | 一本到不卡免费一区二区| 激情图区综合网| 日日夜夜精品视频天天综合网| 中文字幕在线不卡国产视频| 欧美va亚洲va香蕉在线| 制服视频三区第一页精品| 91在线免费看| 粉嫩嫩av羞羞动漫久久久| 精品一区二区三区的国产在线播放 | 国产精品麻豆欧美日韩ww| 精品久久久久久最新网址| 欧美视频完全免费看| 99久久精品情趣| 成人免费毛片app| 国产91对白在线观看九色| 亚洲成a人在线观看| 欧美午夜片在线看| 亚洲人精品午夜| 国产免费成人在线视频| 日本一区二区三级电影在线观看 | 综合激情成人伊人| 国产精品全国免费观看高清| 久久这里只有精品6| 久久夜色精品国产欧美乱极品| 日韩三级在线观看| 精品美女在线观看| 久久久久免费观看| 欧美国产日韩a欧美在线观看| 国产亚洲欧洲一区高清在线观看| 久久蜜桃一区二区| 中文字幕免费在线观看视频一区| 久久久噜噜噜久噜久久综合| 国产日韩成人精品| 国产精品福利影院| 亚洲黄一区二区三区| 亚洲国产人成综合网站| 日日骚欧美日韩| 久久99精品久久只有精品| 激情国产一区二区| 成人免费看的视频| 欧美亚洲免费在线一区| 91精品国产综合久久婷婷香蕉| 欧美www视频| 中文成人综合网| 亚洲国产中文字幕| 欧美aⅴ一区二区三区视频| 狠狠狠色丁香婷婷综合激情| 成人黄色大片在线观看| 欧美在线一区二区| 日韩欧美电影在线| 国产精品白丝在线| 日韩成人一级大片| 丰满放荡岳乱妇91ww| 91福利在线看| 久久综合国产精品| av成人老司机| 欧美电影精品一区二区| 偷拍自拍另类欧美| 欧美日韩大陆一区二区| 亚洲欧美二区三区| 色婷婷av久久久久久久| 午夜精品久久久久影视| 三级久久三级久久久| 粉嫩一区二区三区在线看| 色视频欧美一区二区三区| 欧美成人福利视频| 亚洲人成精品久久久久久| 久久99九九99精品| 欧洲视频一区二区| 国产欧美视频一区二区三区| 香蕉成人伊视频在线观看| 国产米奇在线777精品观看| 91搞黄在线观看| 国产三区在线成人av| 午夜a成v人精品| 97se亚洲国产综合自在线| 精品捆绑美女sm三区| 亚洲综合一区二区精品导航| 国产一区二区三区在线看麻豆| www.成人网.com| 日本成人在线网站| 欧美久久一区二区| 国产精品久久久久久亚洲伦| 美女视频网站久久| 欧美在线观看视频在线| 国产精品免费丝袜| 床上的激情91.| 日韩一区二区三区四区五区六区| 亚洲精品久久嫩草网站秘色| 国产成人精品网址| 精品国产伦一区二区三区观看方式| 亚洲福利国产精品| 91黄色免费看| 亚洲欧美日韩人成在线播放| 国产91丝袜在线播放| 久久午夜老司机| 激情丁香综合五月| 欧美va在线播放| 久久精品国产亚洲5555| 在线综合视频播放| 青青草伊人久久| 欧美一二区视频| 久久99久久99精品免视看婷婷| 91精品国产一区二区三区蜜臀| 视频一区二区中文字幕|