Проблема с SIM800L

aleshka2201
Offline
Зарегистрирован: 28.06.2016

Всем доброго времени суток.

Возникла проблема с получаемым текстом SMS в телефоне при отправке с SIM800L.

В полученном тексте заменяет букву "w" и следующую за ней на "@".

Например, отправляю "gsm was offline", получаю в телефоне "gsm @s offline".

Подскажите куда копать?

b707
Offline
Зарегистрирован: 26.05.2017

мало информации. Давайте скетч, лучше целиком. Только сначала посмотрите выше, как код вставлять на форуме

aleshka2201
Offline
Зарегистрирован: 28.06.2016

Скетч

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:

}
aleshka2201
Offline
Зарегистрирован: 28.06.2016

А текст "GSM was www ww w"  получил "GSM @s @ß@ ò". Не может быть, что w+"что-то" видит как специальный символ?

belousovev
Offline
Зарегистрирован: 14.02.2017

а попробуйте 

33   send_single_sms();

перенести в функцию loop()

b707
Offline
Зарегистрирован: 26.05.2017

aleshka2201

Serial1 - это что? SoftwareSerial или железный?

b707
Offline
Зарегистрирован: 26.05.2017

belousovev пишет:

а попробуйте 

33   send_single_sms();

перенести в функцию loop()

да можно попробовать и мухоморов... важно знать зачем

aleshka2201
Offline
Зарегистрирован: 28.06.2016

Мой родной код очень большой, решил его сюда не вставлять.

Выше указанный скетч залил и проверил. СМС приходит с изменением как и говорил.

send_single_sms() в родном коде в loop'e, это на результат не влияет.

Serial1 - железный. Заливаю в STM32F103C8 через Arduino IDE.

aleshka2201
Offline
Зарегистрирован: 28.06.2016

Отправил смс с алфавитом маленьких и больших букв. Заменяет только "w" и следующую за ней на "@". Большую букву W не заменяет.

b707
Offline
Зарегистрирован: 26.05.2017

скорее всего дело не в этом, но на всякий случай поменяйте в строке 21

Serial1.println("AT+CMGS=\"+************\"");

на

Serial1.print("AT+CMGS=\"+************\"\r\n");

так будет правильнее