我使用arduino mega的SIM900,并且必须使用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(""");