将消息发送到在 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 *
您将得到 StringSumHelper
,write
不支持.
所以你可以使用:
Serial1.print("AT+CMGS=\"" + number1 + "\"");
或
Serial.write(("AT+CMGS=\"" + number1 + "\"").c_str());
或
Serial1.write("AT+CMGS=\"");
Serial.print(number1);
Serial.write("\"");
我将 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 *
您将得到 StringSumHelper
,write
不支持.
所以你可以使用:
Serial1.print("AT+CMGS=\"" + number1 + "\"");
或
Serial.write(("AT+CMGS=\"" + number1 + "\"").c_str());
或
Serial1.write("AT+CMGS=\"");
Serial.print(number1);
Serial.write("\"");