单片机驱动GSM模块,遇到了个很棘手的问题!【已解决】

2019-07-28 18:37发布

本帖最后由 512826028 于 2015-1-25 23:06 编辑

单片机是 MSP430F149  
GSM模块是 SIM900A

程序中 单片机单独发送  AT指令,可以得到OK答复,单片机点亮第一个LED灯。

单片机单独发送ATE0指令,也可以得到OK答复,单片机点亮另一个LED灯。

但是,如果让单片机按顺序,先发送AT指令,等到OK后,在发送ATE0指令,就不能继续运行了,第二个LED就一直都点不亮了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
512826028
2019-07-29 06:08
  1. int main( void )
  2. {
  3.     // Stop watchdog timer to prevent time out reset
  4.     WDTCTL = WDTPW + WDTHOLD;
  5.   
  6.     uchar i;
  7.    
  8.     WDTCTL = WDTPW + WDTHOLD;           //关狗
  9.     /*------选择系统主时钟为8MHz-------*/
  10.     BCSCTL1 &= ~XT2OFF;                 //打开XT2高频晶体振荡器
  11.     do
  12.     {
  13.         IFG1 &= ~OFIFG;                 //清除晶振失败标志
  14.         for (i = 0xFF; i > 0; i--);     //等待8MHz晶体起振
  15.     }
  16.     while ((IFG1 & OFIFG));             //晶振失效标志仍然存在?
  17.     BCSCTL2 |= SELM_2 + SELS;           //MCLK和SMCLK选择高频晶振
  18.    
  19.    
  20.     //计数时钟选择SMLK=8MHz,1/8分频后为1MHz
  21.     TACTL |= TASSEL_2 + ID_3;
  22.   
  23.     GPIO_Init(P2,DIR_OUTPUT);  //设置P2为输出模式  
  24.    
  25.     UART_Init(0);
  26.    
  27.     //打开全局中断
  28.     _EINT();


  29.      SIM900();

  30.      while(1);
  31. }
复制代码

一周热门 更多>