• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Передача Ctrl+Z

Vypra

Member
Для отправки СМС на модуле SIM808 необходимо завершить сообщение символом Ctrl+Z.
На ESP8266 делал это так Serial.println(message + "\r\n" + (String)((char)26));
Перешел на ESP32, так не работает.
При чем при ручном вводе АТ команд через терминал и копировании готового символа Ctrl+Z в терминал - СМС-ки уходят.
Если делаю через скетч - уверен, что зависает именно на моменте ввода символа. На другие команды модуль отвечает ОК.
Запускаю команды через HardwareSerial
Serial2.begin(9600, SERIAL_8N1, 14, 13);

Код:
Serial2.println("AT+CMGF=1");
Serial2.println("AT+CMGS=\"" + phone + "\"");
Serial2.print(message);
Serial2.print((char)26);
Пробовал варианты:
Serial2.print((char)26);
Serial2.print((String)(char)26);
Serial2.write(x1A);

Не работает.
 

nikolz

Well-known member
Для отправки СМС на модуле SIM808 необходимо завершить сообщение символом Ctrl+Z.
На ESP8266 делал это так Serial.println(message + "\r\n" + (String)((char)26));
Перешел на ESP32, так не работает.
При чем при ручном вводе АТ команд через терминал и копировании готового символа Ctrl+Z в терминал - СМС-ки уходят.
Если делаю через скетч - уверен, что зависает именно на моменте ввода символа. На другие команды модуль отвечает ОК.
Запускаю команды через HardwareSerial
Serial2.begin(9600, SERIAL_8N1, 14, 13);

Код:
Serial2.println("AT+CMGF=1");
Serial2.println("AT+CMGS=\"" + phone + "\"");
Serial2.print(message);
Serial2.print((char)26);
Пробовал варианты:
Serial2.print((char)26);
Serial2.print((String)(char)26);
Serial2.write(x1A);

Не работает.
найдите в инете таблицу ASCII и найдите в ней нужный вам код управляющего символа.
Эти коды меньше 40.
 
Сверху Снизу