Отправка сообщения на номер, хранящийся как String в Arduino

Я использую SIM900 с arduino mega и должен отправить сообщение на определенный номер, который я сохраняю в переменной, используя AT-команды. Я сохраняю число как строку, но выдает ошибку. Ниже приведены соответствующие строки кода:

String number1 = "923360234233";
Serial1.write("AT+CMGS=\"" + number1 + "\"");

Выдает следующую ошибку.

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

Что я здесь делаю неправильно?


person 13.SS    schedule 14.09.2016    source источник


Ответы (1)


Метод write можно использовать только для C-строк char *, uint8_t * и подобных буферов.

Однако, если вы использовали сложение строк: const char * + String + const char *, вы получите StringSumHelper, который не поддерживается write.

Итак, вы можете использовать:

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

or

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

or

Serial1.write("AT+CMGS=\"");
Serial.print(number1);
Serial.write("\"");
person KIIV    schedule 14.09.2016
comment
Но это все еще не работает. Я не могу получить текст на свой телефон. - person 13.SS; 15.09.2016
comment
Ну, вы спросили, почему эта часть кода не может быть скомпилирована, и это решено. И прикрепленный код неполный. Так откуда мне знать, почему он ничего не отправляет. Хотя бы посмотрите здесь. - person KIIV; 15.09.2016
comment
Верно! Мои извинения. Если я загружу код, вы сможете понять, что не так? - person 13.SS; 15.09.2016
comment
Ну, новый вопрос был бы лучше. - person KIIV; 15.09.2016
comment
Работал на SIM808. - person opu 웃; 02.08.2018