2014-06-10 23 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結尾。