将消息发送到在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 *
你会得到它不支持write
StringSumHelper
。
所以,你可以使用:
Serial1.print("AT+CMGS=\"" + number1 + "\"");
或
Serial.write(("AT+CMGS=\"" + number1 + "\"").c_str());
或
Serial1.write("AT+CMGS=\"");
Serial.print(number1);
Serial.write("\"");
但它仍然无法正常工作。我无法在手机上收到文字。 –
那么,你问为什么这部分代码不能编译,并且解决了。并附上的代码不完整。那么我怎么知道它为什么不发送任何东西。至少看看[这里](https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/at-cmgs-text-mode/)。 – KIIV
对!我很抱歉。 如果我上传代码,您是否能够找出问题所在? –