2016-09-14 31 views
1

我正在使用SIM900和arduino mega,並且必須使用AT命令將消息發送到存儲在變量中的特定號碼。我將該數字存儲爲一個字符串,但它會給出錯誤。以下是相關的代碼行:將消息發送到在Arduino中以字符串形式存儲的號碼

String number1 = "923360234233"; 
Serial1.write("AT+CMGS=\"" + number1 + "\""); 

它給出了以下錯誤。

no matching function for call to 'HardwareSerial::write(StringSumHelper&)' 

我在做什麼錯在這裏?

回答

1

方法write只能用於C字符串char *,uint8_t *和類似的緩衝區。

但是如果你使用的字符串另外:const char * + String + const char *你會得到它不支持writeStringSumHelper

所以,你可以使用:

Serial1.print("AT+CMGS=\"" + number1 + "\""); 

Serial.write(("AT+CMGS=\"" + number1 + "\"").c_str()); 

Serial1.write("AT+CMGS=\""); 
Serial.print(number1); 
Serial.write("\""); 
+0

但它仍然無法正常工作。我無法在手機上收到文字。 –

+0

那麼,你問爲什麼這部分代碼不能編譯,並且解決了。並附上的代碼不完整。那麼我怎麼知道它爲什麼不發送任何東西。至少看看[這裏](https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/at-cmgs-text-mode/)。 – KIIV

+0

對!我很抱歉。 如果我上傳代碼,您是否能夠找出問題所在? –

相關問題