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

Sending message to a number stored as String in Arduino

我将 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_t * 和类似的缓冲区。

但是,如果您使用了字符串加法:const char * + String + const char * 您将得到 StringSumHelperwrite 不支持.

所以你可以使用:

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

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

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