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

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

?? gprs003.c

?? MSP430與GPRS短消息收發例程
?? C
?? 第 1 頁 / 共 5 頁
字號:
           {
            User_Data[j]=Temp_cArray[29+j];//直接提取數據到User_Data[]中
           } 
           PDU_Len=Temp_cArray[28]; 
           goto Cotinue0;      
        }    
    if((Temp_cArray[20]&0x08)==0X08)//短信是16bit編碼 
        {
          SMS_Mode=2;
         for(j=0;j<Temp_cArray[28]/2;j++)
           {
            User_Data[j]=Temp_cArray[30+2*j];  //將16bit數據轉換成8bit數據,放到User_Data[].
            PDU_Len=Temp_cArray[28]/2;
           }
        }
          //檢測是否為手機設置命令
 Cotinue0:;
        if((User_Data[0]=='*')&&(User_Data[1]=='S')&&(User_Data[2]=='E')&&(User_Data[3]=='T'))
          {
             for(j=0;j<=11;j++)
             {
              Center_SIM[j]=Temp_Sim[j];
             }
           Mobile_SMS_Set(PDU_Len);//手機短信設置、處理、返回正確應答。
          }
        if((User_Data[0]=='*')&&(User_Data[1]=='G')&&(User_Data[2]=='E')&&(User_Data[3]=='T'))
         {
           for(j=0;j<=11;j++)
             {
              Center_SIM[j]=Temp_Sim[j];
             }
           Mobile_SMS_Get(PDU_Len); //手機短信讀取、處理、返回相應數據。   
         }
        if((User_Data[0]==0x68)&&(User_Data[7]==0x68))
        {
          for(j=0;j<=11;j++)
             {
              Center_SIM[j]=Temp_Sim[j];
             }
           ZheJiang_Protocol_Down(PDU_Len);  //浙江規約SMS傳輸數據
         }
} 
  
 if((DSR==0)&&(Rx1_Data_Buffer[i]==0x68)&&((Rx1_Data_Buffer[i+3]==0x68)||(Rx1_Data_Buffer[i+7]==0x68)))//接收到IEC102規約:轉發。
   { 
      //while(Tx0_Snd_Lenth);
      Data_Cmnd_Snd(Rx1_Lenth,&Rx1_Data_Buffer[i],0,20);//將串口1接收到的數據轉發給串口0。
      Beat_Rcv_Fail=0;//心跳接收失敗次數復位。
      Heart_Beat_Interval=600;//心跳信號時間間隔復位。
      Heart_Beat_Flag=0;
      Read_SMS_Time=60000;//10分鐘。
      Minute2_Interval=12000;//2分鐘通信測試間隔。
      Minute2_Interval_Flag=0;
      Beat_Test_Start=0; 
      Second=0;
      Minute=0;
      Heart_Flag=0;
      break;
    } 
}
}
//================================
//函數:Rx0Data_Judge_Trasmit();
//功能:將串口0接收到的數據轉發給串口1
//輸入參數:發送長度、發送緩沖區。
//輸出參數:
//=================================
void  Rx0Data_Judge_Trasmit(void)
{
  char  i,j;
  Uint   Temp2;
  DSR=P3IN&0X08; //P3.3:命令狀態/數據狀態。
 for(i=0;i<Rx0_Pointer;i++)//檢測是否為設置命令
{  
  WDTCTL=WDTPW+WDTCNTCL;
  if(Rx0_Data_Buffer[i]==0x2F)
   {
    if((Rx0_Data_Buffer[i+2]==90)&&(Rx0_Data_Buffer[i+5]==0xFD))
      {  //尋找數據頭、判斷,若為設置命令。
         Cal_Crc(&Rx0_Data_Buffer[i+1],88);//計算CRC
         Temp2=Rx0_Data_Buffer[i+89];//比較CRC
         Temp2=Temp2<<8;
         Temp2=Temp2+Rx0_Data_Buffer[i+90]; 
        if(CRC==Temp2)//若CRC相等,則為設置命令
          {
             Terminal_Addr_Low=Rx0_Data_Buffer[i-10];//取出終端地址低位
             Terminal_Addr_High=Rx0_Data_Buffer[i-9];//取出終端地址高位
            for(j=0;j<=90;j++)
              {
               Temp_iArray[j]=Rx0_Data_Buffer[i+j]; //將字符型數據轉換成整型->保存。
              }
           Wr_Data(Estart_Addr,91,Temp_iArray);//將設置數據寫到EEPROM中:0~90
           Wr_Data(Estart2_Addr,91,Temp_iArray);//將設置數據寫到EEPROM中:0~90
           Echo_Rx0(Echo_Array,8);//串口0正確設置應答、構造轉發命令。
           Read_Parameters_Initial(Estart_Addr);
           if(Read_Flag==0)//重新設置參數。
             Read_Parameters_Initial(Estart2_Addr);
           return;
          }
       } 
   if((Rx0_Data_Buffer[i+2]==7)&&(Rx0_Data_Buffer[i+5]==0xFC))    
      {    //尋找數據頭、判斷,若為抄讀命令。  
         Cal_Crc(&Rx0_Data_Buffer[i+1],5);//計算CRC
         Temp2=Rx0_Data_Buffer[i+6];//比較CRC
         Temp2=Temp2<<8;
         Temp2=Temp2+Rx0_Data_Buffer[i+7]; 
         if(CRC==Temp2)//若CRC相等,則為設置命令
           {
               Terminal_Addr_Low=Rx0_Data_Buffer[i-10];//獲取終端地址低位
               Terminal_Addr_High=Rx0_Data_Buffer[i-9]; //獲取終端地址高位
               Rd_Data(Estart_Addr,91,Temp_iArray);//將數據備份。100~190
             for(j=0;j<=90;j++)
               {
                Temp_cArray[j]=Temp_iArray[j];
               }
             Temp_cArray[5]=0XFC;//功能碼。
             Cal_Crc(&Temp_cArray[1],88);
             Temp_cArray[89]=CRC>>8;//校驗碼。
             Temp_cArray[90]=CRC;            
             Echo_Rx0(Temp_cArray,91);//串口0抄讀返回。
             return;
          }
      }
 }   
 if((DSR!=0)&&(Work_Mode==1))//若接收到終端數據時處于命令狀態,則主動連接主站
    {
       Heart_Beat_Flag=1;
       Terminal_Request_Flag=1;
       return;
    }    
if((DSR==0)&&(Rx0_Data_Buffer[i]==0x68)&&((Rx1_Data_Buffer[i+3]==0x68)||(Rx0_Data_Buffer[i+7]==0x68)))  //轉發IEC102規約數據
{ 
         
   Tx_Head=Rx0_Data_Buffer[i];
   Data_Cmnd_Snd(Rx0_Pointer-1,&Rx0_Data_Buffer[i+1],1,10);//將串口0接收到的數據轉發給串口1
     DSR=P3IN&0X08; //P3.3:命令狀態/數據狀態。
     _3NOP();
  
  if(Minute2_Interval_Flag==1)//數據狀態下,若2分鐘未數據通信,發送2個心跳測試璉路是否通暢。
    { 
       Beat_Test_Start=1;
       Beat_Test_Interval=2000;//
       Beat_Test_Fail=0;
       Beat_Rcved_Flag=0;
    }    
   return;
}
if((Rx0_Data_Buffer[i]==0x68)&&((Rx0_Data_Buffer[i+3]==0x68)||(Rx0_Data_Buffer[i+7]==0x68)))//浙江規約上行數據 
   {
     ZheJiang_Protocol_Up(Rx0_Pointer);
     break;
   } 
  }
 }
//===============================
//函數: Echo_Rx0()
//功能:串口0正確設置應答
//輸入:
//輸出:
//===============================
void   Echo_Rx0(char *Dpointer,char Dlenth)
{
 char i,CheckSum=0;
  WDTCTL=WDTPW+WDTCNTCL;
 User_Data[0]=User_Data[3]=0x68;//數據頭
 User_Data[1]=User_Data[2]=Dlenth+11;//數據長度
 User_Data[4]=0x08;  //控制字
 User_Data[5]=Terminal_Addr_Low;  //獲取終端地址低位
 User_Data[6]=Terminal_Addr_High; //獲取終端地址高位
 User_Data[7]=0x05;//類型
 User_Data[8]=0x00;//可變結構限定詞
 User_Data[9]=0x05;//傳送原因
 User_Data[10]=0x10;//數據單元標識L
 User_Data[11]=0x30;//數據單元標識H
 User_Data[12]=0x00;//記錄地址
 User_Data[13]=0x00;//串口號
 User_Data[14]=Dlenth;//轉發長度
 for(i=0;i<Dlenth;i++)
 {
  User_Data[15+i]=*(Dpointer+i);//轉發數據。
 }
 for(i=0;i<11+Dlenth;i++)//計算102規約校驗和
 {
  CheckSum+=User_Data[4+i];
 }
 User_Data[15+Dlenth]=CheckSum;//校驗碼
 User_Data[16+Dlenth]=0x16;//結束碼
 Data_Cmnd_Snd(Dlenth+17,User_Data,0,5);//向串口0發送要轉發的數據,發送長度Dlenth+17
 _NOP();
}
//===============================
//函數:Gprs_AT_Command()
//功能:測試GPRS是否存在
//輸入參數:數據長度、命令、等待時間。
//返回參數:
//===============================
void Gprs_At_Command(Uint Lenth,char *Pcommand,Uint WTime)
{
 Wait_Result_TimeOut=0;
 Retry_Counter=3;//失敗重試三次。
Retry0:;
 AT_Set_Ok=0;
 Tx_Head=*Pcommand;
 Data_Cmnd_Snd(Lenth-1,&Pcommand[1],1,WTime);//檢測GPRS是否存在并正確響應。
while(AT_Set_Ok==0)//等待結果碼
 {
   WDTCTL=WDTPW+WDTCNTCL;
  if((Rx1_TimeOut_Flag==1)&&(Rx1_Pointer>2))//接收超時且接收到數據。
    Rx1Data_Judge_Trasmit(); 
  if(Wait_Result_TimeOut==1)
   {
      Wait_Result_TimeOut=0;
      Retry_Counter--;
     if(Retry_Counter!=0)//若沒有接收正確的結果碼,則重試3次。
       { 
         Rx1_Pointer=0;
         goto Retry0;
       }
     else 
       break;
    }  
 }
}

//==========================
//函數:
//功能:初始化TIMERA
//輸入參數:
//輸出參數
//============================ 
void  Timer_Initial(void) 
{
  Heart_Beat_Interval=6000;//自動檢測IP連接的間隔時間:30s
  TACTL|=TASSEL1+ID1+TACLR;//定時器A時鐘源選系統主時鐘,1/4分頻,清除定時器。(1M)
  CCTL0|=CCIE;             //允許定時器A比較中斷
  CCTL1|=CCIE; 
  CCR0=1250;          //設置比較值
  CCR1=1250;          //設置定時器比較值。
  TACTL|=MC0;         //啟動連續計數模式
  Flash_Timer_Len=0;  //CPU正常運行指示燈。
  Led1_Flash=0;
  Heart_Beat_Flag=0; //自動檢測標志
  Minute2_Interval=12000;//若3分鐘未通信,則重新檢測。
  Minute2_Interval_Flag=0;
}
//==========================
//函數:Port_Initiale()
//功能:初始化端口
//輸入參數:無
//返回參數:無
//==========================
void  Port_Initial(void)
{
   P1DIR|=0XF7;//CS:P1.0; SK:P1.1; DI: P1.2; DO: P1.3(IN)   
               //LED1:P1.4; LED2:P1.5;LED3:P1.6;LED4:P1.7
   P1OUT|=0XF0;    
   P1OUT&=0X6F;
   P2DIR=0XFB;//P2.0:LED5;P2.1:LED6;p2.2--ring 
   P2OUT|=0X0B;
   
   P3SEL&=0XF7;//P3.3: C/D STATUS.
   P3DIR&=0XF7;//P3.3(IN):DSR
   DSR=P3IN&0X08;//讀取當前在線狀態。
   
   P4SEL=0X00;
   P4DIR|=0X02;//P4.1 DTR輸出
   P4OUT&=0XFD;//進入READY狀態。
  
   P5SEL&=0X00;
   P5DIR|=0XEF;//1110,1111
   //P5OUT=0XFF;
   //P5OUT&=0XDF;
  VIO=P5IN&0X10;//VIO=P5.4
  } 
//=======================================
//函數:USART0_Initial()
//功能:初始化串口0
//輸入參數:Parity(0-none,1-odd,2-even),BaudRate
//輸出參數:無。
//=======================================
void  USART1_Initial(void)
{
 UCTL1|=SWRST;    //SWRST置位
 UCTL1&=~PENA;    //無校驗
 UCTL1|=CHAR;            //字符長度為8位  
 UTCTL1|=SSEL0+URXSE;    //選擇輔助時鐘ACLK,接收到數據,請求接收中斷服務
 P3SEL |= 0xC0;          // P3.6,7 = USART0 TXD/RXD
 P3DIR |= 0x40;          // P3.6 output direction
 UBR01 = 0xA0;//默認波特率為9600
 UBR11 = 0x01;//
 UMCTL1= 0xB5;//波特率調整系數:10110101
 UCTL1&=~SWRST;    //SWRST復位,USARTY允許 
 ME2 |= UTXE1 + URXE1;   // Enable USART0 TXD/RXD
 IE2 |= URXIE1+UTXIE1;    
 Rx1_Start_Flag=0;  //串口接收開始標志
 Rx1_Time_Counter=0;//串口接收時間長度
 Rx1_TimeOut_Flag=0;//接收超時標志
 Rx1_Led=0x00;
 Tx1_Led=0x00;
}
//================================
//函數:USART0_Initial()
//功能:初始化串口0
//輸入參數:Parity(0-none,1-odd,2-even),BaudRate
//輸出參數:無。
//=================================
void  USART0_Initial(void)      //串行口0初始化
{
 UCTL0|=SWRST;           //SWRST復位,USARTY允許
 UTCTL0|=SSEL0+URXSE;    //選擇輔助時鐘ACLK,接收到數據,請求接收中斷服務
 P3SEL |= 0x30;          // P3.4,5 = USART0 TXD/RXD
 P3DIR |= 0x10;          // P3.4 output direction
 UCTL0&=~PENA;         //無校驗
 UCTL0|=CHAR;          //字符長度為8位  
 UBR00 = 0xA0;//默認波特率為9600
 UBR10 = 0x01;//
 UMCTL0= 0xB5;//波特率調整系數:10110101
 UCTL0&=~SWRST;    //SWRST復位,USARTY允許  
 ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD
 IE1 |= URXIE0+UTXIE0; // Enable USART0 RX interrupt
 Rx0_Start_Flag=0;  //串口接收開始標志
 Rx0_Time_Counter=0;//串口接收時間長度
 Rx0_TimeOut_Flag=0;//接收超時標志
 }
//===============================
//函數:Turn_Off_Gprs()
//功能:打開GPRS電源
//輸入參數:無
//輸出參數:無
//===============================
void  Turn_Off_Gprs(void)    
{ 
 //P5OUT|=0X20;
 //Delay(2500);
 //P5OUT&=~0X20;      
 //Delay(1000);
  for(;;)//模塊復位,重新啟動。
   {
    _5NOP();
   }
} 
//===============================
//函數:Turn_on_Gprs()
//功能:打開GPRS電源
//輸入參數:無
//輸出參數:無
//===============================
void  Turn_On_Gprs(void)    
{ 
  P5OUT|=0X20;
  Delay(200);
  P5OUT&=~0X20;   
  Delay(4500);//等待45秒信號正常.
}
//=============================
//函數:Delay()
//功能:軟延時
//輸入參數:Delay_Len延時長度
//返回參數:
//==============================
void  Delay(Uint Delay_Len)
{
 Uint i;
 while(Delay_Len--)
 {
   i=1000;
    WDTCTL=WDTPW+WDTCNTCL;
   while(i--);  //4000*0.25US=1ms
 }
}
 //================================
 //函數:TimerA_Int()
 //功能:定時器A比較0中斷
 //輸入參數:
 //輸出參數:
 //================================
 #pragma vector=TIMERA0_VECTOR
__interrupt void Timer0_A (void)
 {
  Flash_Timer_Len++;
  if(Flash_Timer_Len==100)
    {
     CCR0=1250;
     Flash_Timer_Len=0;
     Led1_Flash^=0x10;//只改變1位.
     P1OUT&=0XEF;
     P1OUT|=Led1_Flash; //每秒鐘LED1 FLASH 一次。
    }
 
if(Rx1_Start_Flag==1)//串口1接收計時
  {
     Rx1_Time_Counter++;
   if(Rx1_Time_Counter>=(Rx1_Time_Interval+1))//CHANGED 11.5
     {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情欧美激情| 99综合影院在线| 波多野结衣中文字幕一区二区三区| 99久久精品99国产精品| 欧美片在线播放| 国产精品久久福利| 狠狠色狠狠色综合日日91app| 欧美色涩在线第一页| 国产精品灌醉下药二区| 毛片av一区二区三区| 欧美性色欧美a在线播放| 成人免费在线视频| 国产一区二区精品久久91| 宅男噜噜噜66一区二区66| 一区二区三区日本| 99久久久久免费精品国产 | 欧美激情综合在线| 美美哒免费高清在线观看视频一区二区 | 成人欧美一区二区三区| 国产一区在线不卡| 精品日韩av一区二区| 美国毛片一区二区| 日韩免费观看高清完整版| 日韩成人伦理电影在线观看| 欧美三级电影在线观看| 亚洲欧美区自拍先锋| 91丨九色丨蝌蚪富婆spa| 亚洲欧洲精品成人久久奇米网 | 九九**精品视频免费播放| 欧美日韩一区二区三区在线看| 亚洲欧美国产毛片在线| 91久久久免费一区二区| 亚洲精品免费在线观看| 日本高清视频一区二区| 亚洲午夜久久久| 欧美日韩在线直播| 日韩高清在线观看| 日韩限制级电影在线观看| 理论电影国产精品| 久久综合久久综合久久| 国产精品1区2区3区在线观看| 久久影院视频免费| 成人免费看黄yyy456| 综合电影一区二区三区 | 成人av在线资源网| 亚洲三级在线免费观看| 欧美体内she精视频| 午夜精品久久久久久久| 欧美一区二区三区在线电影| 国内精品国产成人| 中文字幕av一区二区三区高 | 亚洲国产一区二区视频| 欧美日韩色一区| 激情另类小说区图片区视频区| 国产女主播一区| 欧美亚洲一区二区在线| 久久激情五月激情| 亚洲欧洲日本在线| 欧美一级艳片视频免费观看| 高清国产一区二区| 亚洲国产婷婷综合在线精品| 欧美电影免费提供在线观看| 99re这里只有精品首页| 奇米色777欧美一区二区| 国产精品视频看| 91精品国产麻豆国产自产在线 | 69堂精品视频| 国产一区二区日韩精品| 亚洲日本中文字幕区| 91精品中文字幕一区二区三区| 国产成人精品一区二| 午夜成人免费视频| 国产日韩影视精品| 欧美日韩亚州综合| 99re视频精品| 韩国成人福利片在线播放| 亚洲在线视频一区| 久久久青草青青国产亚洲免观| 欧美日韩在线播放一区| 成人高清av在线| 久久er精品视频| 亚洲成人免费视频| 国产精品久久久久三级| 久久在线观看免费| 日韩欧美一二三四区| 在线观看日韩国产| 99免费精品在线| 国产精品123| 久久99精品国产麻豆不卡| 亚洲国产精品麻豆| 自拍偷拍国产亚洲| 亚洲国产成人在线| 亚洲精品一线二线三线| 欧美日韩你懂的| 欧洲人成人精品| 91美女蜜桃在线| 成人av在线网| 成人av在线播放网址| 国产宾馆实践打屁股91| 久久成人免费网| 久久爱另类一区二区小说| 日韩高清国产一区在线| 亚洲国产va精品久久久不卡综合| 亚洲欧洲三级电影| 中文字幕一区二区三区不卡 | 国产精品丝袜一区| 久久久精品国产99久久精品芒果| 26uuu另类欧美| 精品国产1区二区| 日韩欧美的一区二区| 日韩写真欧美这视频| 精品久久久久久最新网址| 日韩视频一区二区在线观看| 欧美一级日韩不卡播放免费| 欧美日韩高清在线播放| 欧美日本一区二区在线观看| 欧美蜜桃一区二区三区| 7799精品视频| 日韩欧美成人一区二区| 2022国产精品视频| 国产欧美一区二区三区在线看蜜臀 | 国产成人亚洲综合a∨婷婷图片| 国精产品一区一区三区mba视频| 国产一区久久久| 国产成人免费网站| 99国产精品久| 欧美日韩一区在线观看| 91精品国产一区二区人妖| 欧美va在线播放| 欧美激情一区二区三区| 亚洲欧洲另类国产综合| 亚洲欧美日本在线| 免费在线看成人av| 国产综合久久久久久久久久久久 | 国产欧美视频一区二区| 亚洲欧洲成人精品av97| 亚洲二区在线观看| 精品制服美女丁香| 91在线视频官网| 欧美女孩性生活视频| 久久久亚洲综合| 亚洲欧洲精品成人久久奇米网| 一区二区久久久| 国内精品国产成人国产三级粉色| 成人激情免费电影网址| 欧美三级日本三级少妇99| 欧美成人a∨高清免费观看| 国产精品久久三| 婷婷综合在线观看| 成人黄色片在线观看| 欧美剧情片在线观看| 欧美国产激情一区二区三区蜜月| 亚洲激情一二三区| 国产一区二区福利视频| 欧美性色综合网| 欧美经典一区二区三区| 五月婷婷欧美视频| jiyouzz国产精品久久| 欧美一区二区在线视频| 中文字幕一区日韩精品欧美| 美女精品自拍一二三四| 日本国产一区二区| 欧美极品美女视频| 久久精品久久综合| 日本久久电影网| 国产精品三级av| 久久99精品国产麻豆婷婷| 欧美三级三级三级爽爽爽| 中文一区二区完整视频在线观看| 蜜桃视频免费观看一区| 欧美日韩精品欧美日韩精品一综合| 国产人成亚洲第一网站在线播放| 亚洲超碰精品一区二区| 91在线观看地址| 国产精品久久久久影院老司| 国产麻豆精品久久一二三| 欧美一卡二卡在线| 日韩精品国产欧美| 色噜噜狠狠成人中文综合| 日本一区二区三区dvd视频在线| 久草中文综合在线| 在线播放视频一区| 亚洲综合精品自拍| 91在线云播放| 亚洲欧洲制服丝袜| jlzzjlzz亚洲女人18| 国产精品素人一区二区| 国产精品一级黄| 久久久久久97三级| 国产精品一区二区三区乱码| 26uuu欧美| 国产乱子伦视频一区二区三区 | 久久精品水蜜桃av综合天堂| 捆绑紧缚一区二区三区视频| 在线综合视频播放| 日韩av高清在线观看| 欧美一区二区人人喊爽| 秋霞影院一区二区| 日韩一区国产二区欧美三区| 蜜臀精品一区二区三区在线观看 |