⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.txt

📁 采用TI MSP430进行GSM通信开发的实例程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
    if(Count == 15)   
    {   
      UBR00 = 0x60;               //波特率为38400    
      UBR10 = 0X00;   
      UMCTL0 = 0X00;   
      Count = 0;   
    }   
  }   
   
  while(Check_Flag[1] == 1)   
  {   
    Send_Cmd(Anydata_Cdma_Cmd1);          //修改通信模块波特率为38400    
    Delay(5000);   
    while(flag == 0);   
    Check_Return_OK(2);   
    Clear_Rcv();   
  }   
   
    UBR00 = 0X60;                  //波特率为38400    
    UBR10 = 0X00;   
    UMCTL0 = 0X00;   
   
}   
   
//启动SIMEMS GPRS模块    
void GPRS_SIMEMS_IGT(void)   
{   
   
  P1DIR |= VDD;   
  P1OUT |= VDD;   
   
  P1DIR |= IGT;   
  P1OUT |= IGT;   
   
  P1DIR |= PD;   
  P1OUT |= PD;   
   
  P3DIR |= TX;   
  P3OUT |= TX;   
   
  P1OUT &=~ PD;   
  Delay(32768);   
  while(flag == 0);   
   
  P1OUT &=~ IGT;   
   
  Delay(3300);   
  while(flag == 0);   
   
  P1OUT |= IGT;   
   
  Delay(6300);   
  while(flag == 0);   
   
  P1OUT &=~ IGT;   
   
  Delay(32768);   
  while(flag == 0);   
   
  while(Check_Flag[0] == 1)   
  {   
    Send_Cmd(Cmd0);   
    Delay(5000);   
    while(flag == 0);   
    Check_Return_OK(1);   
    Clear_Rcv();   
  }   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
 //以下部分用来点亮GPRS的网络灯,若不返回OK,U2将显示红灯    
  Check_Flag[0] = 1;   
    while(Check_Flag[0] == 1)   
  {   
    Send_Cmd(Simems_Gprs_Cmd_Netlignt);   
    Delay(5000);   
    while(flag == 0);   
    Check_Return_OK(1);   
    Clear_Rcv();   
  }   
   
}   
   
//启动ZTE模块    
void ZTE_Module_IGT(void)   
{   
   
  P1DIR |= VDD;   
  P1OUT |= VDD;   
   
  P1DIR |= ON_OFF;   
  P1OUT &=~ ON_OFF;   
   
  Delay(32768);   
  while(flag == 0);   
   
  Delay(32768);   
  while(flag == 0);   
   
  P1OUT |= ON_OFF;   
   
  Delay(32768);   
  while(flag == 0);   
   
  UBR00 = 0X60;                  //波特率为38400    
  UBR10 = 0X00;   
  UMCTL0 = 0X00;   
   
 while(Check_Flag[0] == 1)   
  {   
    Send_Cmd(Cmd0);   
    Delay(8192);   
    while(flag == 0);   
    Check_Return_OK(1);   
    Clear_Rcv();   
  }   
}   
   
//判断模块的种类    
void Init_Module(void)   
{   
   
  P1DIR &=~ (BIT0+BIT1+BIT2+BIT3);   
  Module_Address = (P1IN&0x0f);   
   
  switch(Module_Address)   
  {   
    case simems_gprs: GPRS_SIMEMS_IGT();break;   
   
    case simems_gprs_900: GPRS_SIMEMS_IGT();break;   
   
    case anydata_cdma:CDMA_ANYDATA_IGT();break;   
   
    case ZTE_module:ZTE_Module_IGT();break;   
   
    default:break;   
  }   
   
}   
   
//发送SIMEMS指令    
void Send_Simems_Gprs_Cmd(void)   
{   
   
   while(Check_Flag[1] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd1);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_CSQ(2);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[2] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd2);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(3);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[3] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd3);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(4);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[4] == 2)   
   {   
     Send_Cmd(Simems_Gprs_Cmd4);   
     Delay(32768);   
     while(flag == 0);   
   
     Check_Return_OK(5);   
     Clear_Rcv();   
   
   
     if(Check_Flag[4] == 1)   
     {   
       Send_Cmd(Simems_Gprs_Cmd5);   
       Delay(16384);   
       while(flag == 0);   
       Check_Return_1(5);   
       Clear_Rcv();   
     }   
   }   
   
   while(flag == 0);   
   Delay(32768);   
   
    while(Check_Flag[5] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd6);   
     Delay(32768);   
     while(flag == 0);   
     Check_Return_OK(6);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[6] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd7);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(7);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[7] == 1)   
   {   
     Send_Cmd(Simems_Gprs_Cmd8);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(8);   
     Clear_Rcv();   
   }   
   
   Delay(32768);   
   while(flag == 0);   
   
   if(Check_Flag[7] == 0)   
   {   
     P1OUT &=~ VDD;   
     Delay(32768);   
     while(flag == 0);   
     GPRS_SIMEMS_IGT();   
   }   
   
}   
   
//发送ANYDATA指令    
void Send_Anydata_Cdma_Cmd(void)   
{   
   
   while(Check_Flag[2] == 1)   
   {   
     Send_Cmd(Anydata_Cdma_Cmd2);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(3);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[3] == 1)   
   {   
     Send_Cmd(Anydata_Cdma_Cmd3);   
     Delay(2000);   
     while(flag == 0);   
     Check_Return_CSQ(4);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[4] == 2)   
   {   
     Send_Cmd(Anydata_Cdma_Cmd4);   
     Delay(2000);   
     while(flag == 0);   
     Check_Return_OK(5);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[5] == 1)   
   {   
     Send_Cmd(Anydata_Cdma_Cmd5);   
     Delay(32768);   
     while(flag == 0);   
     Check_Return_OK(6);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[6] == 1)   
   {   
     Send_Cmd(Anydata_Cdma_Cmd6);   
     Delay(16384);   
     while(flag == 0);   
     Check_Return_GMR(7);   
     Clear_Rcv();   
   }   
   
   Delay(32768);   
   while(flag == 0);   
   
   if(Check_Flag[6] == 0)   
   {   
     P1OUT &=~ VDD;   
     Delay(32768);   
     while(flag == 0);   
     CDMA_ANYDATA_IGT();   
   }   
   
}   
   
//发送ZTE指令    
void Send_ZTE_module_Cmd(void)   
{   
   
  while(Check_Flag[1] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd1);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_CSQ(2);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[2] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd2);   
     Delay(16384);   
     while(flag == 0);   
     Check_Return_ZVERS(3);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[3] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd3);   
     Delay(32768);   
     while(flag == 0);   
     Check_Return_OK(4);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[4] == 2)   
   {   
     Send_Cmd(ZTE_Module_Cmd4);   
     Delay(32768);   
     while(flag == 0);   
   
     Check_Return_OK(5);   
     Clear_Rcv();   
   
     if(Check_Flag[4] == 1)   
     {   
       Send_Cmd(ZTE_Module_Cmd5);   
       Delay(16384);   
       while(flag == 0);   
       Check_Return_1(5);   
       Clear_Rcv();   
     }   
   }   
   
   while(flag == 0);   
   Delay(32768);   
   
   while(Check_Flag[5] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd6);   
     Delay(32768);   
     while(flag == 0);   
     Delay(32768);   
     while(flag == 0);   
     Check_Return_OK(6);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[6] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd7);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(7);   
     Clear_Rcv();   
   }   
   
   while(Check_Flag[7] == 1)   
   {   
     Send_Cmd(ZTE_Module_Cmd8);   
     Delay(5000);   
     while(flag == 0);   
     Check_Return_OK(8);   
     Clear_Rcv();   
   }   
   
   Delay(32768);   
   while(flag == 0);   
   
   if(Check_Flag[7] == 0)   
   {   
     P1OUT &=~ VDD;   
     Delay(32768);   
     while(flag == 0);   
     ZTE_Module_IGT();   
   }   
   
}   
   
//主程序    
void main(void)   
{   
   
  WDTCTL = WDTPW + WDTHOLD;   
  XT_Init();   
  TimerA_Init();   
  P4DIR = 0Xff;   
  P5DIR = 0Xff;   
  P4OUT = 0X00;   
  P5OUT = 0X00;   
  _EINT();   
  Uart0_Init();   
  Init_Module();   
   
  while(1)   
  {   
    Module_Address = (P1IN&0x0f);   
    switch(Module_Address)   
    {   
      case simems_gprs:Send_Simems_Gprs_Cmd();break;   
      case simems_gprs_900:Send_Simems_Gprs_Cmd();break;   
      case anydata_cdma:Send_Anydata_Cdma_Cmd();break;   
      case ZTE_module:Send_ZTE_module_Cmd();break;   
      default:break;   
    }   
  }   
   
}   
   
//精确延时TIMERA中断延时服务程序    
#pragma vector = TIMERA0_VECTOR    
__interrupt void timera (void)   
{   
   
  flag = 1;   
  CCTL0 &=~ CCIE;   
   
}   
   
//COM0口接收数据中断服务程序    
#pragma vector = USART0RX_VECTOR    
__interrupt void uart_rx (void)   
{   
   
  RCV_Byte[j] = RXBUF0;   
  j++;   
   
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -