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

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

?? gprs003.c

?? MSP430與GPRS短消息收發例程
?? C
?? 第 1 頁 / 共 5 頁
字號:
       CheckSum+=Temp_cArray[i];
      } 
      Temp_cArray[14]=CheckSum;
      Delay(100);
      Tx_Head=Temp_cArray[0];
      Data_Cmnd_Snd(15,&Temp_cArray[1],1,5);
      /*Delay(200);
      Tx_Head=Temp_cArray[0];
      Data_Cmnd_Snd(15,&Temp_cArray[1],1,5);*/
      Beat_Test_Start=1;
      Beat_Test_Interval=12000;//20秒鐘自動檢測心跳
      Beat_Test_Fail=0;
      Beat_Rcved_Flag=0;
      _NOP();
 }
}
//==============================================
//函數:Inqury_Signal()
//功能:查詢當前GSM信號強度
//輸入:
//輸出:
//==============================================
void  Inqury_Signal(void)
{
  char  *AT_CSQ="AT+CSQ\r";//檢測信號強度。
  char  i,CheckSum=0;
  char  Inqury_Counter=3;
  char  Temp; 
Inqury_Again:;
  Temp=Signal_Val;
  Inqury_Signal_Flag=0;
  AT_Set_Ok=0;
  Rx1_Pointer=0;
  Rx1_TimeOut_Flag=0;
  Tx_Head=AT_CSQ[0];
  Data_Cmnd_Snd(6,&AT_CSQ[1],1,40);  //查尋信號強弱命令
  Delay(200); 
 for(i=0;i<Rx1_Pointer;i++)//檢測信號強弱等級。
 {
  if((Rx1_Data_Buffer[i]=='+')&&(Rx1_Data_Buffer[i+1]=='C')&&(Rx1_Data_Buffer[i+2]=='S')&&(Rx1_Data_Buffer[i+3]=='Q')) 
    {
        if((Rx1_Data_Buffer[i+4]==':')&&(Rx1_Data_Buffer[i+5]==32))  //冒號 空格
          {
             
          if(Rx1_Data_Buffer[i+7]!=',')//信號強度無
            {
            if(((Rx1_Data_Buffer[i+6]-48)==9)&&((Rx1_Data_Buffer[i+7]-48)==9))//沒有檢測到信號。
                {
                  AT_Set_Ok=1;
                  P1OUT|=0X90;//LED4、LED5、LED6全黑(=99)
                  P2OUT|=0X01;
                  Signal_Val=0;//信號強度為0。
                 goto Signal000;
                }
          
            if(((Rx1_Data_Buffer[i+6]-48)>=2)&&((Rx1_Data_Buffer[i+7]-48)<=9))//信號強度大于20
               {
                 AT_Set_Ok=1;
                 P1OUT&=0X7F;//LED4亮、強。(>20)
                 P2OUT|=0X01;
                 P1OUT|=0X10;
                 Signal_Val=Rx1_Data_Buffer[i+6]-48;//十位BCD碼
                 Signal_Val=Signal_Val<<4;//左移8位。
                 Signal_Val+=Rx1_Data_Buffer[i+7]-48;//個位BCD碼
                 if(Signal_Val>0x31)
                   Signal_Val=0x31;
                goto Signal000;
               }
            if(((Rx1_Data_Buffer[i+6]-48)==1)&&((Rx1_Data_Buffer[i+7]-48)<=9))//信號強度
              {
                AT_Set_Ok=1;
                P2OUT&=0XFE;//LED5亮、中。(>10<20)
                P1OUT|=0X90;
                Signal_Val=Rx1_Data_Buffer[i+6]-48;//十位BCD碼
                Signal_Val=Signal_Val<<4;//左移8位。
                Signal_Val+=Rx1_Data_Buffer[i+7]-48;//個位BCD碼
                 if(Signal_Val>0x19)
                   Signal_Val=0x19;
               goto Signal000;
              }
           }
       if(Rx1_Data_Buffer[i+7]==',')//信號強度小于10 
            {
             AT_Set_Ok=1;
             P1OUT&=0XEF;//LED6亮、低。(<10)
             P2OUT|=0X01;
             P1OUT|=0X80;   
             Signal_Val=Rx1_Data_Buffer[i+6]-48;//BCD碼
             if(Signal_Val>9)
              Signal_Val=0x09;
             goto Signal000;
            }
          }
        }
 
} 
Signal000:
 if(AT_Set_Ok==0)
  Signal_Val=0x00;
 AT_Set_Ok=0;
 if(Signal_Val==0x00)
  {
   if((Inqury_Counter--)!=0)
     {
      for(i=0;i<20;i++)
      {
       Rx1_Data_Buffer[i]=0;
      }
      goto Inqury_Again;
     } 
  }
if(Signal_Val==0x00)
{
  if(Temp%2==0)
    Temp+=1;
  else
    Temp-=1;  
 Signal_Val=Temp;
}
/*
 User_Data[0]=User_Data[3]=0x68;//數據頭
 User_Data[1]=User_Data[2]=11;//數據長度
 User_Data[4]=0x5A;  //控制字
 User_Data[5]=0x99;  //獲取終端地址低位
 User_Data[6]=0x99;  //獲取終端地址高位
 User_Data[7]=0x06;  //類型
 User_Data[8]=0x82;  //可變結構限定詞
 User_Data[9]=0x05;  //傳送原因
 User_Data[10]=0x55; //數據單元標識L
 User_Data[11]=0x30; //數據單元標識H
 User_Data[12]=0x00; //記錄地址
 User_Data[13]=(Signal_Val&0X0F)+0X30;   //信號強度
 User_Data[14]=((Signal_Val>>4)&0X0F)+0X30; 
 for(i=0;i<=10;i++)//計算102規約校驗和
 {
  CheckSum+=User_Data[4+i];
 }
 User_Data[15]=CheckSum;
 User_Data[16]=0x16;
 */
 User_Data[0] = 0x68;
 User_Data[1] = 0x99;
 User_Data[2] = 0x99;
 User_Data[3] = 0x99;
 User_Data[4] = 0x99;
 User_Data[5] = 0x5E;
 User_Data[6] = 0x00;
 User_Data[7] = 0x68;
 User_Data[8] = 0x0F;
 User_Data[9] = 0x09;		// 自定義數據幀數據區長度
 User_Data[10]= 0x00;
 User_Data[11] = 0x1A;
 User_Data[12] = 0x82;
 User_Data[13] = 0x20;
 User_Data[14] = 0x99;
 User_Data[15] = 0x12;
 User_Data[16] = 0x34;
 User_Data[17] = 0x56;
 User_Data[18] = 0x78;
  User_Data[19]=(Signal_Val&0X0F)+0X30;   //信號強度
 User_Data[20]=((Signal_Val>>4)&0X0F)+0X30; 
 for(i=0;i<=20;i++)//計算校驗和
 {
  CheckSum+=User_Data[i];
 }
 User_Data[21]=CheckSum;
 User_Data[22]=0x16;
 Data_Cmnd_Snd(22,User_Data,0,5);//向串口0發送信號強度數據,發送長度22
 P5OUT|=0x80;//接收指示燈滅。
 Rx1_TimeOut_Flag=0;
 
}
//==============================================
//函數:Rd_Parameter_Initial()
//功能:從EEPROM中讀取工作參數、IP地址、端口、SMS號碼等
//      初始化波特率、定時器等
//輸入參數:
//輸出參數:
//==============================================
char Read_Parameters_Initial(char Address)
{
  char  i,j;
  Uint   Temp2;
  char  *Cgdcont="AT+CGDCONT=1,"; //設置PDP通道
   WDTCTL=WDTPW+WDTCNTCL;
 Rd_Data(Address,91,Temp_iArray);//讀取0x06通訊口配置參數。

 if(Temp_iArray[0]==0x2f)//尋找數據頭
   {
     if((Temp_iArray[2]==90)&&(Temp_iArray[5]==0xfd))//判斷數據長度、功能碼是否為設置命令。
     {
        for(i=0;i<=90;i++)
         {
          Temp_cArray[i]=Temp_iArray[i];
         }
       Cal_Crc(&Temp_cArray[1],88);//計算CRC
       Temp2=Temp_cArray[89];//比較CRC
       Temp2=Temp2<<8;
       Temp2=Temp2+Temp_cArray[90]; 
       if(CRC==Temp2)//若CRC相等,則讀出的數據正確。
        {
          Read_Flag=1;             //從EEPROM中讀取的數據正確。
          Work_Mode=Temp_cArray[6];//工作模式 
          
        for(i=0;i<=12;i++)//讀取APN名稱.
            {
              AT_CGDCONT[i]=*(Cgdcont+i);//="AT+CGDCONT=1,
            }
          AT_CGDCONT[13]=AT_CGDCONT[16]=0X22;
          AT_CGDCONT[14]='I';
          AT_CGDCONT[15]='P';
          AT_CGDCONT[17]=',';
          AT_CGDCONT[18]=0X22;
          for(i=0;i<=19;i++)//讀取APN名稱.
           { 
            if(Temp_cArray[7+i]!=0xFF)
             AT_CGDCONT[i+19]=Temp_cArray[7+i];
            else
             break; 
          }
          AT_CGDCONT[i+19]=0x22;
          AT_CGDCONT[i+20]=0x0d;
         for(j=i+21;j<=39;j++)//后面填零,以便計算長度.
            {
              AT_CGDCONT[j]=0;
            } 
             WDTCTL=WDTPW+WDTCNTCL;    
//============以下裝入IP地址================      
         for(i=0;i<=10;i++)//IP地址的AT命令。
            {
             AT_OpenIp0[i]=OpenIp[i];//
            }
           AT_OpenIp0[11]='"';
           AT_OpenIp0[27]='"';
           AT_OpenIp0[15]='.';
           AT_OpenIp0[19]='.';
           AT_OpenIp0[23]='.';
           AT_OpenIp0[28]=',';
           AT_OpenIp0[34]=0x0d;
         for(i=0;i<=2;i++)//***.***.***.***IP地址格式。
             {
              AT_OpenIp0[12+i]=Temp_cArray[27+i];
             }
           
         for(i=0;i<=2;i++)//***.***.***.***IP地址格式。
             {
              AT_OpenIp0[16+i]=Temp_cArray[30+i];
             }
           
         for(i=0;i<=2;i++)//***.***.***.***IP地址格式。
            {
              AT_OpenIp0[20+i]=Temp_cArray[33+i];
             }
           
          for(i=0;i<=2;i++)//***.***.***.***IP地址格式。
             {
              AT_OpenIp0[24+i]=Temp_cArray[36+i];
              }
           
          for(i=0;i<=4;i++)//數據服務中心通信端口號。
             {
               AT_OpenIp0[29+i]=Temp_cArray[39+i];
              }   
    //====IP地址處理結束======。    
       TCP_UDP=Temp_cArray[44];//網絡數據傳輸協議。
       Heart_Beat_Time=Temp_cArray[56];//心跳周期
       for(i=0;i<=5;i++)
       {
         PassWord[i]=Temp_cArray[57+i];//模塊設置密碼
       }
       for(i=0;i<=5;i++)
         {
           Terminal_SIM[i*2+1]=Temp_cArray[45+i*2];//數據終端手機號碼,位置交換。
           Terminal_SIM[i*2]=Temp_cArray[45+i*2+1];
           Center_SIM[i*2+1]=Temp_cArray[74+i*2];  //短信通信手機號碼。位置交換。
           Center_SIM[i*2]=Temp_cArray[74+i*2+1]; 
           Data_Center_Sim[i*2+1]=Temp_cArray[74+i*2];//報警數據中心手機號碼。位置交換。
           Data_Center_Sim[i*2]=Temp_cArray[74+i*2+1]; 
           }
        Terminal_SIM[10]='F';
        Center_SIM[10]='F';
        Data_Center_Sim[10]='F';
      WDTCTL=WDTPW+WDTCNTCL;
       
       for(i=0;i<=3;i++)//短信服務中心號碼的區號
         {
           SCA_SIM[i]=Temp_cArray[63+4+i];
         }
        _NOP();
         }  
     }
   }  
 if(Read_Flag==0)//若未進行初始化過或讀取參數不對,則工作于GSM+SMS模式、9600波特率。
 {
   Work_Mode=0x02;
  }
  WDTCTL=WDTPW+WDTCNTCL;
 _3NOP();
 Timer_Initial(); //初始化TIMERA。  
 _3NOP();
 USART0_Initial();
 _3NOP();
 USART1_Initial();//串行口1初始化:無校驗,9600、8位數據位、1位停止位。   
 _3NOP();
 _EINT();           //開放全局中斷 
 _3NOP();
 WorkMode_Initial_Log();//初始化GPRS工作方式、登陸CMNET、連接中心IP等。 
 return Read_Flag;
}
//=============================================
//函數:WorkMode_Initial_Log()
//功能:GPRS工作模式初始化、連接(若工作于GPRS模式)
//輸入參數:
//輸出參數:
//==============================================
void   WorkMode_Initial_Log(void)
{
 char  i; 
 char  *AT_CNMI="AT+CNMI=3,2,0,1\r";//SMS串口接收
 
 char  AT_CNMI01[16]={'A','T','+','C','N','M','I','=','3',',','1',',','0',',','0',0x0D};//GPRS+SMS模式
 char  AT_CBST[15]={'A','T','+','C','B','S','T','=','7',',','0',',','1',',',0X0D};//數據撥號類型。
 char  AT_CPMS01[23]={'A','T','+','C','P','M','S','=',
                      '"','S','M','"',',','"','S','M','"',',','"','S','M','"',0X0D};
  
 char  *AT_CRC="AT+CRC=1\r";//區分是語音來電、還是數據來電。
 char  *AT_S00="ATS0=0\r";
 char  *AT_S02="ATS0=2\r";
 char  *AT_IpParameters="AT*E2IPS=2,10,1,512\r";//等待2秒,重試10次,100毫秒,緩沖區512字節
 char  AT_SCA[25]={'A','T','+','C','S','C','A','=',
              '"','+','8','6','1','3','8','0','0','5','7','1','5','0','0','"',0x0d};
 char  *AT_Ring="AT*E2SMSRI=500\r";
 //char  *AT_PRn="AT*EPNR=2,1,8\r";
  WDTCTL=WDTPW+WDTCNTCL;
 SMS_Mode=0xFF;
 //SMS_Index=0;
 Command_Data_Status=0;//在命令行狀態。
 AT_Test_Flag=0;
 First_Connect_Flag=1;
 Read_SMS_Time=60000;//10;
 P1OUT|=0X40;
 P2OUT|=0X02;
 for(i=0;i<=3;i++)
 {
  AT_SCA[16+i]=SCA_SIM[i];
 }
  
for(i=0;i<=3;i++)
 {
 Gprs_At_Command(sizeof(AT)+1,AT,30);//AT命令,測試GPRS.
 if(AT_Test_Flag==0)//若AT測試命令沒有返回并且GPRS電源打開。
    {
     P4OUT|=0X02; //回到命令狀態。
     Delay(200);
     TXBUF1=0X1B;
     Delay(10);
     Gprs_At_Command(sizeof(AT_3Plus)+1,AT_3Plus,30);
    }
 else 
   break; 
 } 
  Gprs_At_Command(12,AT_Echo,30);//命令不返回,結果碼格式為字符、DTR控制、DCD指示。
 
  Inqury_Signal();
  Gprs_At_Command(10,AT_CMGF,30); //設置短信息的格式為:PDU模式
  Gprs_At_Command(15,AT_Ring,30); //短信振鈴指示。
  Gprs_At_Command(25,AT_SCA,30);//設置短信服務中心號碼
    WDTCTL=WDTPW+WDTCNTCL;  
  if(Work_Mode==0)//若是GSM工作模式。
      { 
        P2IE=0X00;//禁止P2.2中斷
        Gprs_At_Command(9,AT_CloseIp,50); //關閉IP連接
        Gprs_At_Command(16,AT_CNMI,30);   //設置GSM短信息接收方式:串口直接接收。
        Gprs_At_Command(15,AT_CBST,30);  //數據撥號類型。
        Gprs_At_Command(9,AT_CRC,30);    //區分是語音來電、還是數據來電。
        Gprs_At_Command(7,AT_S02,30);   //設置摘機響鈴次數:2次。
        Gprs_At_Command(5,AT_W,30);    //保存設置 
       }
  if(Work_Mode==1)//若是GPRS工作模式。 
      {   
         P2IFG=0;
         P2IE=0X04;//開放P2.2中斷
         P2IES=0X00;//上升沿觸發
         Gprs_At_Command(9,AT_CloseIp,50);  //關閉IP連接
         Gprs_At_Command(7,AT_S00,30);//設置摘機響鈴次數:不摘機。
         Gprs_At_Command(16,AT_CNMI01,30);//設置GPRS短信息接收方式:存放于SIM中。
         Delay(20);
         Gprs_At_Command(23,AT_CPMS01,30);//短信保存位置  
         Delay(20);
         Gprs_At_Command(20,AT_IpParameters,30);//設置IP參數:等待時間、重發次數等
         Gprs_At_Command(5,AT_W,30);    //保存設置  
         Gprs_At_Command(strlen(AT_CGDCONT),AT_CGDCONT,100);//設置PDP聯系通道:APN默認為CMNET。
         Gprs_At_Command(13,AT_ActivateIp,100);//激活IP地址。
         Tx_Head=AT_OpenIp0[0];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日本一线二线三线不卡| 一本大道久久精品懂色aⅴ| 日韩精品资源二区在线| 91丨porny丨首页| 麻豆国产精品777777在线| 亚洲国产一区二区在线播放| 国产精品全国免费观看高清| 久久精品免视看| 欧美国产欧美综合| 国产精品色哟哟| 欧美日韩中文字幕一区| 成人av免费在线| 91麻豆产精品久久久久久| 91免费观看视频| 欧美色视频在线| 9191成人精品久久| 精品久久久久久久久久久久久久久 | 男女男精品视频| 美女脱光内衣内裤视频久久影院| 日本免费在线视频不卡一不卡二| 一区二区三区四区蜜桃| 午夜久久久影院| 国产一区不卡在线| 91久久人澡人人添人人爽欧美| 成人小视频在线观看| 一本久道久久综合中文字幕| 欧美日韩免费在线视频| 国产女人18水真多18精品一级做| 国产精品久久久久毛片软件| 天天影视涩香欲综合网| 亚洲一区二区三区影院| 成人美女视频在线观看| 欧美男生操女生| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲国产日韩av| 一本久久a久久免费精品不卡| 欧美变态口味重另类| 亚洲国产一区二区三区| 国产乱子伦视频一区二区三区| 色噜噜狠狠色综合中国| 国产日韩欧美精品电影三级在线| 日韩精品一二三四| 欧美精品乱码久久久久久| 亚洲人成在线播放网站岛国| 成人黄色国产精品网站大全在线免费观看 | 精品成a人在线观看| 亚洲精选在线视频| 亚洲免费在线视频一区 二区| 欧美日本不卡视频| 91精品国产一区二区三区| 日日夜夜精品免费视频| 免费日韩伦理电影| 麻豆精品久久久| 国产精品一区二区果冻传媒| 国产精品亚洲人在线观看| 99国产精品一区| 日韩一卡二卡三卡| 亚洲国产精品成人综合色在线婷婷| 国产精品久久久久久久久搜平片 | 欧美日韩的一区二区| 欧美精品一区二区三区在线| 一区二区三区美女视频| 国产精品一区二区久久精品爱涩| 色8久久人人97超碰香蕉987| 欧美一区日韩一区| 亚洲激情自拍视频| www.色综合.com| 国产精品色噜噜| 粉嫩高潮美女一区二区三区| 精品少妇一区二区三区视频免付费| 中文字幕五月欧美| 91年精品国产| 一区二区三区小说| 91久久精品一区二区| 日本一区二区成人| 成人性视频免费网站| 久久久夜色精品亚洲| 国产成人av影院| 国产精品全国免费观看高清| 国产精品456露脸| **性色生活片久久毛片| 91欧美一区二区| 极品美女销魂一区二区三区免费| 国产精品乱码久久久久久| 精品久久久久久久久久久久久久久久久 | 久久久久99精品国产片| 91国产免费观看| 91亚洲永久精品| 成人av先锋影音| 成人免费视频app| 国产精品一区二区你懂的| 亚洲自拍与偷拍| 亚洲欧洲av在线| 日本韩国精品在线| 国产欧美一区二区精品仙草咪| 国产91清纯白嫩初高中在线观看| 日韩码欧中文字| 久久久久亚洲综合| 欧美日韩一区二区三区高清 | 精品欧美乱码久久久久久1区2区| 成人久久视频在线观看| 日韩高清一区二区| 亚洲图片激情小说| 国产亚洲欧美在线| 欧美一级黄色片| 欧美精品一二三四| 欧美电影在线免费观看| 91女人视频在线观看| 成人av在线观| av色综合久久天堂av综合| 国产福利视频一区二区三区| 久久精品二区亚洲w码| 日韩电影免费在线看| 老司机午夜精品| 国产中文字幕一区| 激情另类小说区图片区视频区| 美女视频第一区二区三区免费观看网站| 国产精品美女久久久久久久久久久| 欧美国产综合色视频| 国产精品人成在线观看免费| 国产精品久久99| 日韩精彩视频在线观看| 一区二区三区精品久久久| 精品日韩av一区二区| 国产尤物一区二区在线| 亚洲国产精品久久久久秋霞影院 | 色视频一区二区| 国产91在线看| 91网站黄www| 欧美四级电影网| 日韩欧美二区三区| 国产丝袜美腿一区二区三区| 中文一区二区在线观看| 一区二区三区四区乱视频| 日韩福利视频导航| 国产综合久久久久影院| 丁香啪啪综合成人亚洲小说 | 欧美日韩1234| 精品成人私密视频| 亚洲激情欧美激情| 国产一级精品在线| 欧美日韩三级一区| 中文字幕一区二区在线播放| 亚洲尤物在线视频观看| 国产二区国产一区在线观看| 在线观看区一区二| 国产精品全国免费观看高清| 日韩无一区二区| 国产精品国产馆在线真实露脸| 日韩黄色免费电影| 色吧成人激情小说| 亚洲图片欧美激情| 成人一区在线观看| 国产日韩欧美在线一区| 另类小说一区二区三区| 日韩欧美中文字幕制服| 亚洲成人你懂的| 欧美日韩精品系列| 午夜久久久久久| 欧美一区永久视频免费观看| 亚洲自拍欧美精品| 欧美午夜免费电影| 亚洲国产综合色| 日韩午夜激情免费电影| 麻豆91精品视频| 中文字幕av一区二区三区高| 国产精品1024久久| 亚洲免费毛片网站| 欧美日韩电影在线| 国产一区二区伦理| ●精品国产综合乱码久久久久 | 在线观看日韩高清av| 午夜亚洲国产au精品一区二区| 91精品国产综合久久久蜜臀图片 | 午夜精品福利一区二区三区蜜桃| 欧美日韩高清在线| 粉嫩久久99精品久久久久久夜| 18成人在线视频| 9191久久久久久久久久久| 国产精品一品二品| 日日欢夜夜爽一区| 《视频一区视频二区| 精品国产1区二区| 91久久久免费一区二区| 国产一区二区三区观看| 亚洲精品美国一| 中文字幕av在线一区二区三区| 欧美日韩精品电影| 91视频免费观看| 国产精品一色哟哟哟| 偷拍亚洲欧洲综合| 亚洲精品视频免费看| 亚洲国产精品黑人久久久| 日韩一区二区精品葵司在线| 在线视频欧美精品| 91影视在线播放| 日本道精品一区二区三区| 成人国产精品免费网站| 国产高清成人在线| 国产精品一区二区在线看|