将消息发送到Arduino中存储为字符串的数字

将消息发送到Arduino中存储为字符串的数字,arduino,at-command,sim900,Arduino,At Command,Sim900,我将SIM900与arduino mega一起使用,必须使用AT命令向存储在变量中的特定数字发送消息。我将数字存储为字符串,但它给出了一个错误。以下是相关代码行: String number1 = "923360234233"; Serial1.write("AT+CMGS=\"" + number1 + "\""); 它给出了以下错误 no matching function for call to 'HardwareSerial::write(StringSumHelper&)'

我将SIM900与arduino mega一起使用,必须使用AT命令向存储在变量中的特定数字发送消息。我将数字存储为字符串,但它给出了一个错误。以下是相关代码行:

String number1 = "923360234233";
Serial1.write("AT+CMGS=\"" + number1 + "\"");
它给出了以下错误

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

我在这里做错了什么?

方法
write
只能用于C字符串
char*
uint8\u t*
和类似的缓冲区

但是,如果您使用了字符串添加:
const char*
+
string
+
const char*
您将得到
StringSumHelper
,而
write
不支持它

因此,您可以使用:

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


但它仍然不起作用。我无法在手机上接收文本。你问我为什么那部分代码无法编译,这就解决了。所附代码不完整。那我怎么知道它为什么不发送任何东西呢。至少看一看,对!我道歉。如果我上传代码,你能找出错误吗?好吧,新问题会更好。为SIM808工作。
Serial.write(("AT+CMGS=\"" + number1 + "\"").c_str());
Serial1.write("AT+CMGS=\"");
Serial.print(number1);
Serial.write("\"");