2014-06-10 21 views
0

我正在开发一个项目,该项目在向微控制器发送短信时必须关闭泵。下面的代码必须能够读取并下载消息,以便它可以关闭泵但不起作用。有人可以检查代码并让我知道这个问题。使用的微控制器是atmega32,编程它的软件是atmel studio 6.1。 (1) { // check_sensor(); /* uint8_t x = 0;用于GSM模块(在控制器的UART)仅仅是ASCII characters.Mostly接收发送短信停止使用atmega32和sim300的泵

while(GSMWaitForMsg(&id)!=GSM_OK) 
    { 
     if(x) 
     { 
      LCDWriteStringXY(10,3,"%3"); //LOVE SYMBOL TILL MSG COMES CHECK MYUTILS.H 
      x=0; 
     } 
     else 
     { 
      LCDWriteStringXY(10,3,"%4"); //ARROW TO SHOW MESSAGE DOWNLOAD 
      x=1; 
     } 
    } 

    LCDWriteStringXY(10,3,"%2"); 

    _delay_ms(1000); 

    //function to read message 
    char msg[300]; 

    int8_t r=GSMReadMsg(id,msg);   //ID=NUMBER MSg=MESSAGE OA=THE REPLY 

    if(r==GSM_OK) 
    { 
     if(strcasecmp(msg,"STOP")==0)  // checking if message read is stop 
     { 
      PORTC|=(1<<PC7); 
      LCDClear(); 
      LCDWriteStringXY(0,1,"PUMP TURNED OFF");  // displaying on the lcd screen 
      RelayOff();         // turning the relay off 
      _delay_ms(2000); 

      goto comehomeboy;  // going back to home 

     } 
    } 
} 
+0

您需要在此处提供更多信息。显示器上显示什么? “不工作”是什么意思? –

回答

0

该消息没有NULL(\ 0)附加到数据。 对于strcasecmp()函数,您需要以NULL结尾的字符串作为Input。 请确保'msg'数组以NULL结尾。