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

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

?? section6.c

?? msp430應用系統開發典型實例 第7章程序代碼
?? C
字號:
#include <MSP430X14X.h>
#include "modem.h"
#include "uart.h"
#include "process.h"
#include "const.h"

//定義全局變量
static char nComm;
int *pFlash;
//定義串口操作變量
char nRev_UART0;	// 串口 0 的接收標志
char nRev_UART1;	// 串口 1 的接收標志
char UART0_TX_BUF[112];	// 串口 0 的發送緩沖區
char UART0_RX_BUF[20];	// 串口 0 的接收緩沖區
char UART1_TX_BUF[112];	// 串口 1 的發送緩沖區
char UART1_RX_BUF[50];	// 串口 1 的接收緩沖區
char pBuf0[100];
static int nTX1_Len;
static char nRX1_Len;
char nRX1_Len_temp;
static int nTX0_Len;
static int nRX0_Len;
int nRX0_Len_temp;
static char nTX0_Flag;
static char nTX1_Flag;
int nSend_TX0;
int nSend_TX1;
static char nComm_Command;
char nBusy;
char nDial;
void main(void)
{

    int j;
    int n;
    int nTemp;
    char nRes_UART1;
    char nRes_UART0;
    char PhoneNumber[8];
    char UART1_RX_Temp[50];
    char UART0_RX_Temp[30];    
    char nPhoneOK;
    int nPhone;
    
    WDTCTL = WDTPW + WDTHOLD;   // 關閉看門狗    
    
    _DINT();			// 關閉中斷
    
    nBusy = 0;
    nDial = 0;
    nComm_Command = 0;
    nSend_TX1 = 0;
    nSend_TX0 = 0;
    nTX1_Flag = 0;
    nTX0_Flag = 0;
    nTX0_Len = 0;
    nTX1_Len = 0;
    nRX1_Len = 0;
    nRX0_Len = 0;
    nRev_UART1 = 0;
    nRev_UART0 = 0;
    nComm = 0;
    /////////////////////////////////
    // 初始化
    Init_CLK();
    Init_Process();
    Init_UART0();
    Init_UART1();
	_EINT(); 			// 打開中斷
    // 讀配置信息
    nPhone = ReadPhoneNum(PhoneNumber);
    // 等待配置信息
    if(nPhone == 2)
    {
    	for(;;)
    	{
    	    if(nRev_UART1 == 1)
    	    {
    	        nRev_UART1 = 0;
    	        for(i = 0;i < nRX1_Len;i++) 
    	            UART1_RX_Temp[i] = UART1_RX_BUF[i];
    	        nRes_UART1 = ProcessUART1(UART1_RX_Temp,nRX1_Len);
    	        switch(nRes_UART1)
    	        {
    	            case 0:
    	            {
    	            	SetOK(UART1_TX_BUF,&nTX1_Len);
    	            	nRX1_Len = 0;    	    	    
                        IFG2 |= UTXIFG1; // 設置中斷標志,進入發送中斷程序
    	            	break;
    	            }
    	            case 1:
    	            {
    	            	QueryPhone(UART1_TX_BUF,&nTX1_Len);
    	            	nRX1_Len = 0;    	    	    
                        IFG2 |= UTXIFG1; // 設置中斷標志,進入發送中斷程序
    	            	break;
    	            }
    	            case 2:
    	            {
    	            	nTemp = 0;
    	            	nTemp = SetPhone(UART1_RX_Temp);
    	            	if(nTemp == 1)
    	            	{
    	            	    SetOK(UART1_TX_BUF,&nTX1_Len);
    	    	    	
    	    	    	    nPhone = (char)(UART1_RX_Temp[12] - 0x30);
    	    	    	    for(i = 0;i < 8;i++) 
    	    	    	        PhoneNumber[i] = UART1_RX_Temp[13 + i];
    	    	    	
    	    	    	    nPhoneOK = 1;
    	            	}
    	            	else
    	            	{
    	            	    SetError(UART1_TX_BUF,&nTX1_Len);
    	            	}
    	            	nRX1_Len = 0;    	    	    
                        IFG2 |= UTXIFG1; // 設置中斷標志,進入發送中斷程序
    	            	break;
    	            }
    	            default:break;
    	        }
    	    }
    	    if(nPhoneOK == 1) break;
    	}
    	
    }
    for(;;)
    {
        
        //首先初始化MODEM
        if(nComm == 1 && nComm_Command == 0 && nBusy == 0)
        {		    
            // 將p1.0設置成高電平
            P2OUT |= BIT0;
            for(i = 0;i < 3;i++)
            {    
                nTX0_Len = ModemInit(UART0_TX_BUF);
                
                nBusy = 1;
                IFG1 |= UTXIFG0; // 設置中斷標志,進入發送中斷程序
                Delay_ms(500);
            }
        }//if(nComm == 1 && nComm_Command == 0 && nBusy == 0)

        // 撥號
        if(nComm == 1 && nDial == 0 && nComm_Command == 1 && nBusy == 0)
        {
            nBusy = 1;

    	    nTX0_Len = SetPhoneNum(UART0_TX_BUF,nPhone,PhoneNumber);    
            IFG1 |= UTXIFG0; // 設置中斷標志,進入發送中斷程序
	    	    
        }//if(nComm == 1 && nDial == 0 && nComm_Command == 1 && nBusy == 0)
        // 往MODEM傳送數據
        if(nComm == 1 && nDial == 1)	
        {
     
            for(i = 0;i < 50;i++)
            {
            	for(n = 0;n < 100;n++)
            	{
            	    pBuf0[n] = i;
            	}
            	
            	while(1) // 等待緩沖區里的數據發送完畢
            	{
            	    if(nTX0_Flag == 1) break;            	     
            	}
            	nTX0_Len = PackData(UART0_TX_BUF,pBuf0,100);
         	    IFG1 |= UTXIFG0;// 設置中斷標志,進入發送中斷程序
            }
    	    // 數據已經發送完畢
    	    Delay_ms(100);
    	    // 發送+++命令,從傳送數據狀態到命令狀態
 	        nTX0_Len = DataToCommand(UART0_TX_BUF);
 	
 	        nComm_Command = 2;
 	        nDial = 0; 
 	        IFG1 |= UTXIFG0;		// 設置中斷標志,進入發送中斷程序
    	
        }//if(nComm == 1 && nDial == 1)
     

        // 發送+++命令,從傳送數據狀態到命令狀態
        if(nComm_Command == 2)
        {
            Delay_ms(1000);
            nTX0_Len = DataToCommand(UART0_TX_BUF);
            IFG1 |= UTXIFG0; // 設置中斷標志,進入發送中斷程序
            Delay_ms(1000);
        }//if(nComm_Command == 2)
        // 發送掛斷命令
        if(nComm_Command == 3)
        {
            Delay_ms(1000);
            nTX0_Len = SetATH0(UART0_TX_BUF);
            IFG1 |= UTXIFG0; // 設置中斷標志,進入發送中斷程序
            Delay_ms(1000);
        }//if(nComm_Command == 3)
        //處理來自MODEM的響應
        if(nRev_UART0 == 1)
        {
            nRev_UART0 = 0;
    
            for(i = 0;i < nRX0_Len;i++) UART0_RX_Temp[i] = UART0_RX_BUF[i];
            nRes_UART0 = ProcessUART0(UART0_RX_Temp,nRX0_Len,0);
            nRX0_Len = 0;
    
            switch(nRes_UART0)
            {
    	        case 0:
    	        {
    	    
    	            break;
    	        }
    	        case 1:
    	        {
    	            nDial = 1;
    	            nBusy = 1;
    	            break;
    	        }
    	        case 2:
    	        {    
    	            break;
    	        }
    	        case 3:
    	        {   
    	            if(nComm_Command == 3)
    	            {
    	                nBusy = 0;
    	    	        nDial = 0;
    	    	        nComm_Command = 0;
    	            }
    	            nBusy = 0;
    	            nBusy = 0;
    	            break;
    	        }
    	        case 4:
    	        {
    	            if(nComm_Command == 0) 
    	            {
    	            	// 0表示發送初始化命令,1表示初始化完畢
    	    	        nComm_Command = 1;
    	    	        nBusy = 0;
    	            }
    	            if(nComm_Command == 2) 
    	            {
    	            	// 2表示發送+++,3表示收到+++響應
    	    	        nComm_Command = 3;
    	    	        // 數據已經發送完畢
    		        Delay_ms(1000);
    		        // 發送ATH0命令,掛斷線路
    		        nTX0_Len = SetATH0(UART0_TX_BUF);
    		        // 設置中斷標志,進入發送中斷程序
                        IFG1 |= UTXIFG0;		
 		        Delay_ms(1000);
 		        break;
    	            }
    	            if(nComm_Command == 3) 
    	            {
    	    	        nBusy = 0;
    	    	        nDial = 0;
    	    	        nComm_Command = 0;
    	    	        nComm = 0;
    	    	        // 停止給MODEM供電
    	    	        for(i = 0;i < 5;i++) P2OUT &= ~(BIT0);
    	    	        for(i = 300;i > 0;i--) ;  // 延遲一點時間
    	    	        
    	    	        break;	
    	            }  
    	        }  	   
    	        case 5: // 沒有接電話線的情況
    	        {
    	            nBusy = 0;
    	            nDial = 0;
    	            nComm_Command = 1;
    	            break;
    	        }    	
    	        case 6: // 對方掛斷的情況
    	        {
    	            nBusy = 0;
    	            nDial = 0;
    	            nComm_Command = 1;
    	            break;
    	        }
    	        case 7:
    	        {
    	            // 2表示發送+++,3表示收到+++響應
    	            nComm_Command = 3; 
    	            // 數據已經發送完畢
    	            Delay_ms(1000);
    	            // 發送ATH0命令,掛斷線路
    	            nTX0_Len = SetATH0(UART0_TX_BUF);
    	            // 設置中斷標志,進入發送中斷程序
                    IFG1 |= UTXIFG0; 
 	            Delay_ms(1000);
 	            break;
    	        }    	    	    	    	    	
    	        case 255:
    	        {
    	            nBusy = 0;
    	            break;
    	        }  
    	        case -1:
    	        {
    	            nBusy = 0;
    	            break;
    	        }  	    	  	    	
    	        default:
    	                break;
             }    	
         }//if(nRev_UART0 == 1) 
    }
}
////////////////////////////////////////
// 處理來自串口 0 的接收中斷
interrupt [UART0RX_VECTOR] void UART0_RX_ISR(void)
{
    UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;	//接收來自的數據
    
    nRX0_Len_temp += 1;
    if(UART0_RX_BUF[nRX0_Len_temp - 1] == 13)
    {
        nRX0_Len = nRX0_Len_temp;
        nRev_UART0 = 1;
        nRX0_Len_temp = 0;
    }  
}
////////////////////////////////////////
// 處理來自串口 0 的發送中斷
interrupt [UART0TX_VECTOR] void UART0_TX_ISR(void)
{
    if(nTX0_Len != 0)
    {
    	nTX0_Flag = 0;				// 表示緩沖區里的數據沒有發送完
    	
    	TXBUF0 = UART0_TX_BUF[nSend_TX0];
    	nSend_TX0 += 1;
    	Delay_us(5);
    	if(nSend_TX0 >= nTX0_Len)
    	{
    	    nSend_TX0 = 0;
    	    nTX0_Len = 0;
    	    nTX0_Flag = 1;
    	}
    }
}
///////////////////////////////////////
// 處理來自串口 1 的接收中斷
interrupt [UART1RX_VECTOR] void UART1_RX_ISR(void)
{
    
    UART1_RX_BUF[nRX1_Len_temp] = RXBUF1;	//接收來自的數據
    
    nRX1_Len_temp += 1;
        
    if(UART1_RX_BUF[nRX1_Len_temp - 1] == 13)
    {
    	nRX1_Len = nRX1_Len_temp;
    	nRev_UART1 = 1;
    	nRX1_Len_temp = 0;
    }
}
///////////////////////////////////////
// 處理來自串口 1 的發送中斷
interrupt [UART1TX_VECTOR] void UART1_TX_ISR(void)
{
    if(nTX1_Len != 0)
    {
    	nTX1_Flag = 0;			// 表示緩沖區里的數據沒有發送完
    	
    	TXBUF1 = UART1_TX_BUF[nSend_TX1];
    	nSend_TX1 += 1;
    	
    	if(nSend_TX1 >= nTX1_Len)
    	{
    	    nSend_TX1 = 0;
    	    nTX1_Len = 0;
    	    nTX1_Flag = 1;
    	}
    }
}
///////////////////////////////////////
// 處理來自端口 1 的中斷
interrupt [PORT1_VECTOR] void COMM_ISR(void)
{
    
    if(P1IFG & BIT5)
    {
    	nComm = 1;

    	nComm_Command = 0;
    	P1IFG &= ~(BIT5);	// 清除中斷標志位
    	Delay_us(100);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久妇女6080| 久久日一线二线三线suv| 国产三级精品视频| 五月天国产精品| 99久久99久久精品国产片果冻| 日韩欧美在线网站| 一区二区三区国产精华| 成人综合婷婷国产精品久久免费| 51精品秘密在线观看| 亚洲欧美另类图片小说| 成人在线综合网站| 精品久久久久香蕉网| 性做久久久久久久久| 色欧美乱欧美15图片| 中文在线一区二区| 国产一区二区三区久久久| 欧美美女激情18p| 亚洲色图色小说| 成人免费观看男女羞羞视频| 亚洲一区二区高清| 精品国产乱码久久| 亚洲成人三级小说| 欧美在线看片a免费观看| 亚洲欧洲日本在线| 成人免费av网站| 国产亚洲美州欧州综合国| 久久99精品久久久| 欧美一级日韩免费不卡| 午夜不卡在线视频| 精品视频在线免费看| 亚洲午夜久久久久中文字幕久| 色屁屁一区二区| 一区二区三区在线影院| 一本色道久久综合亚洲aⅴ蜜桃 | 99在线视频精品| 日本一区二区三区国色天香| 国产一区 二区| 久久女同精品一区二区| 精品一二线国产| 精品动漫一区二区三区在线观看| 看国产成人h片视频| 日韩欧美另类在线| 国产中文字幕一区| 久久免费看少妇高潮| 国产精品1区2区| 日本一区二区三区四区| 不卡视频在线观看| 亚洲欧美偷拍三级| 在线看一区二区| 亚洲自拍偷拍九九九| 欧美在线观看你懂的| 亚洲国产aⅴ天堂久久| 欧美日韩国产精品自在自线| 天堂资源在线中文精品| 51精品国自产在线| 激情综合网激情| 久久精品一区蜜桃臀影院| 成人激情动漫在线观看| 综合网在线视频| 在线观看91视频| 首页综合国产亚洲丝袜| 精品国产网站在线观看| 国产一区二区伦理| 制服丝袜国产精品| 亚洲免费av网站| 欧美日韩国产综合久久| 麻豆精品在线看| 久久日一线二线三线suv| bt欧美亚洲午夜电影天堂| 亚洲黄色免费电影| 91精品久久久久久久99蜜桃| 狠狠狠色丁香婷婷综合激情| 国产精品区一区二区三区| 91在线免费看| 婷婷夜色潮精品综合在线| 精品国产乱码久久久久久蜜臀| 成人妖精视频yjsp地址| 夜夜嗨av一区二区三区网页| 欧美一区二区黄| 国产成人在线电影| 亚洲自拍与偷拍| 精品人伦一区二区色婷婷| 丁香五精品蜜臀久久久久99网站| 亚洲主播在线观看| 精品剧情在线观看| av在线一区二区| 日本中文字幕不卡| 国产精品免费视频一区| 欧美无砖砖区免费| 国产一区二区三区观看| 亚洲精选免费视频| 日韩精品一区二区三区老鸭窝| 国产成人免费在线视频| 亚洲一区成人在线| 久久久亚洲精品一区二区三区| 色综合天天做天天爱| 美脚の诱脚舐め脚责91| 亚洲视频一区在线观看| 精品裸体舞一区二区三区| 色又黄又爽网站www久久| 精品一区二区在线播放| 亚洲综合免费观看高清完整版 | 欧美日本精品一区二区三区| 国产精品一区二区在线看| 一区二区三区自拍| 国产亚洲成av人在线观看导航| 欧美日韩成人一区| 99久久精品国产一区二区三区| 蜜桃久久av一区| 夜夜精品视频一区二区| 国产亚洲一区二区三区四区 | 国内久久精品视频| 亚洲一区二区成人在线观看| 国产三级精品三级在线专区| 欧美日韩高清一区二区三区| www.久久久久久久久| 久久成人羞羞网站| 香蕉乱码成人久久天堂爱免费| 中文字幕一区二区三区四区不卡| 精品久久久久久亚洲综合网| 欧美在线看片a免费观看| 成人精品小蝌蚪| 久久国产精品99精品国产| 亚洲图片欧美一区| 亚洲天堂久久久久久久| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美久久一区二区| 在线免费观看成人短视频| 夫妻av一区二区| 国内精品视频666| 日韩成人免费看| 午夜精品一区二区三区免费视频| 国产精品不卡在线| 国产精品免费看片| 久久久一区二区三区捆绑**| 欧美v国产在线一区二区三区| 欧美日韩国产首页在线观看| 色婷婷国产精品| 99这里只有精品| 成人av影视在线观看| 国产一区二区三区视频在线播放| 麻豆免费看一区二区三区| 日韩精品成人一区二区三区| 亚洲一二三专区| 亚洲国产aⅴ天堂久久| 夜夜嗨av一区二区三区中文字幕| 亚洲人成在线观看一区二区| 中文字幕一区二区三区四区不卡| 亚洲国产精品av| 欧美国产乱子伦 | 欧美视频一区在线| 色婷婷狠狠综合| 欧美亚洲综合一区| 欧美性极品少妇| 欧美色视频一区| 欧美色图激情小说| 欧美日韩一区二区三区免费看| 99久精品国产| 成人免费的视频| heyzo一本久久综合| 92国产精品观看| 日本高清免费不卡视频| 91麻豆国产精品久久| 一本一道久久a久久精品 | 男女男精品视频| 麻豆成人免费电影| 韩国精品免费视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲自拍偷拍九九九| 亚洲成人一区在线| 日韩av网站在线观看| 老鸭窝一区二区久久精品| 激情综合亚洲精品| 国产69精品久久久久毛片| 不卡一卡二卡三乱码免费网站| 99vv1com这只有精品| 欧美亚洲另类激情小说| 在线播放日韩导航| 欧美电视剧在线看免费| 久久久亚洲国产美女国产盗摄| 国产精品私人自拍| 樱桃国产成人精品视频| 亚洲成av人片观看| 免费久久精品视频| 国产xxx精品视频大全| 色嗨嗨av一区二区三区| 91精品国产色综合久久不卡蜜臀 | 国产三级一区二区| 中文字幕亚洲一区二区va在线| 亚洲综合在线视频| 蜜桃视频在线观看一区| 成人国产视频在线观看 | 黑人巨大精品欧美黑白配亚洲| 精品精品欲导航| 日韩精品一二三| 黄色日韩三级电影| 99久久婷婷国产精品综合| 欧美高清视频不卡网| 久久久精品免费免费| 一区二区三区在线不卡|