将消息发送到在Arduino中以字符串形式存储的号码

将消息发送到在Arduino中以字符串形式存储的号码

问题描述:

我正在使用SIM900和arduino mega,并且必须使用AT命令将消息发送到存储在变量中的特定号码。我将该数字存储为一个字符串,但它会给出错误。以下是相关的代码行:将消息发送到在Arduino中以字符串形式存储的号码

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

它给出了以下错误。

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

我在做什么错在这里?

方法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

对!我很抱歉。 如果我上传代码,您是否能够找出问题所在? –