Проблема с SIM800L
- Войдите на сайт для отправки комментариев
Чт, 22/06/2017 - 13:54
Всем доброго времени суток.
Возникла проблема с получаемым текстом SMS в телефоне при отправке с SIM800L.
В полученном тексте заменяет букву "w" и следующую за ней на "@".
Например, отправляю "gsm was offline", получаю в телефоне "gsm @s offline".
Подскажите куда копать?
мало информации. Давайте скетч, лучше целиком. Только сначала посмотрите выше, как код вставлять на форуме
Скетч
void SettingsGSM() { Serial1.println("AT+CMGF=1"); delay(100); Serial1.println("AT+IFC=1, 1"); delay(100); Serial1.print("AT+CPBS=\"SM\"\r"); delay(100); Serial1.print("AT+GSMBUSY=1, 1\r"); delay(100); // Serial1.println("AT+CMGDA=\"DEL ALL\""); Serial1.println("AT+CMGD=4"); delay(100); Serial1.println("AT+CNMI=1,2,2,1,0"); delay(100); Serial.println("GSM Settings Done!"); } void send_single_sms(void) { Serial1.println("AT+CMGF=1"); delay(10); Serial1.println("AT+CMGS=\"+************\""); delay(10); Serial1.print("gsm was offline"); delay(10); Serial1.println((char)26); delay(100); Serial.println("Sms was sent"); } void setup() { Serial.begin(115200); Serial1.begin(115200); SettingsGSM(); send_single_sms(); } void loop() { // put your main code here, to run repeatedly: }А текст "GSM was www ww w" получил "GSM @s @ß@ ò". Не может быть, что w+"что-то" видит как специальный символ?
а попробуйте
33send_single_sms();перенести в функцию loop()
aleshka2201
Serial1 - это что? SoftwareSerial или железный?
а попробуйте
33send_single_sms();перенести в функцию loop()
да можно попробовать и мухоморов... важно знать зачем
Мой родной код очень большой, решил его сюда не вставлять.
Выше указанный скетч залил и проверил. СМС приходит с изменением как и говорил.
send_single_sms() в родном коде в loop'e, это на результат не влияет.
Serial1 - железный. Заливаю в STM32F103C8 через Arduino IDE.
Отправил смс с алфавитом маленьких и больших букв. Заменяет только "w" и следующую за ней на "@". Большую букву W не заменяет.
скорее всего дело не в этом, но на всякий случай поменяйте в строке 21
Serial1.println("AT+CMGS=\"+************\"");на
Serial1.print("AT+CMGS=\"+************\"\r\n");так будет правильнее