17.03.2021, 17:45
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
GSM 800L. Передача SMS.
Добрый день. Пишу для МК STM32f103.
написал код опроса модуля GSM800L:
Код:
|
uint8_t TxData[64];
uint8_t RxData[64];
strcpy((char *)TxData, "ATI\n\r");
HAL_UART_Transmit(&huart1, TxData,5, 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 1000);
DispDebug(); //выводится информация на дисплей 16*2: ....SIM800....
HAL_Delay(2000); //пауза - смотрю, что записалось
strcpy((char *)TxData, "AT+CMGF=1\n\r"); // Включить TextMode для SMS
HAL_UART_Transmit(&huart1, TxData,strlen(TxData), 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 1000);
DispDebug(); //выводится информация на дисплей 16*2: ....OK...
HAL_Delay(4000); //пауза - смотрю, что записалось
//Отправляю СМС себе на телефон
strcpy((char *)TxData, "AT+CMGS=\"+7953xxxxxxx\"Product1\r\x1A\0"); // Отправить sms. В конце 26=Cntr+Z (\032, \x1A)
HAL_UART_Transmit(&huart1, TxData,strlen(TxData), 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 1000);
DispDebug(); //выводится информация на дисплей 16*2: ....AT+CMGS=.... Вроде ответ от модуля получен.
HAL_Delay(4000); |
Подскажите, почему не принимается телефоном смска?
|
|
|
|
17.03.2021, 21:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,534
Сказал спасибо: 5,378
Сказали Спасибо 24,621 раз(а) в 5,542 сообщении(ях)
|
Re: GSM 800L. Передача SMS.
Трудно сказать. Думаю сперва стоит ознакомиться с рекомендациями производителей
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
17.03.2021, 22:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Сообщений: 4,418
Сказал спасибо: 395
Сказали Спасибо 2,205 раз(а) в 1,306 сообщении(ях)
|
Re: GSM 800L. Передача SMS.
https://codius.ru/articles/GSM_%D0%B...%D1%82%D1%8C_2
про смски - во второй половине страницы.
А так же смотрите мануал по AT-командам модуля
|
|
|
|
18.03.2021, 12:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: GSM 800L. Передача SMS.
Возврат каретки после номера, ЕМНИП, должен присутствовать, у вас - отсутствует (точнее, находится не на том месте)
Цитата:
|
"AT+CMGS=\"+7953xxxxxxx\"‹вот тут пропущено \r›Product1‹а вот тут оно не нужно›\r\x1A\0")
|
А еще для начала не шлите всё одной строкой. Сначала "AT+CMGS=\"+7953xxxxxxx\"\r", а после приглашения от модема "›" - уже собственно текст с Ctrl-Z в конце.
Ну и AT+CSCS="GSM" не мешало бы сделать.
Цитата:
|
выводится информация на дисплей 16*2: ....AT+CMGS=.... Вроде ответ от модуля получен."
|
это не ответ (эхо?)
ответ должен быть +CMGS=‹n›, без AT
Последний раз редактировалось AR_Favorit; 18.03.2021 в 13:00.
|
|
|
|
18.03.2021, 12:45
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: GSM 800L. Передача SMS.
Спасибо, но он для Ардуино... немного помог в плане последовательности.
На всякий случай опишу, как решилась задача:
Необходимо было отключить эхо:
Код:
|
strcpy((char *)TxData, "ATI\n\r"); //запрос информации о модуле
HAL_UART_Transmit(&huart1, TxData,5, 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 500);
DispDebug(); //вывод на дисплей 16*2 TxData, RxData
HAL_Delay(500);
strcpy((char *)TxData, "ATE0\n\r"); //отключить эхо
HAL_UART_Transmit(&huart1, TxData,5, 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 500);
DispDebug();
HAL_Delay(500);
strcpy((char *)TxData, "AT+CMGF=1\n\r"); // Включить TextMode для SMS
HAL_UART_Transmit(&huart1, TxData,strlen(TxData), 200);
HAL_UART_Receive(&huart1, RxData, sizeof(RxData), 500);
DispDebug();
HAL_Delay(500);
strcpy((char *)TxData, "AT+CMGS=\"+7953ччччччч\"\n\rProduct1\n\r\x1A"); // Отправить sms. В конце 26=Cntr+Z (\032, \x1A)
HAL_UART_Transmit(&huart1, TxData,strlen(TxData), 200);
//и все, смска пришла. |
|
|
|
|
18.03.2021, 13:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: GSM 800L. Передача SMS.
Сообщение от sanstan
|
Спасибо, но он для Ардуино... немного помог в плане последовательности.
На всякий случай опишу, как решилась задача:
Необходимо было отключить эхо:
Код:
|
strcpy((char *)TxData, "AT+CMGS=\"+7953ччччччч\"\n\rProduct1\n\r\x1A"); |
|
Эхо не при чём. Вот тут у вас возврат каретки после номера телефона - уже на месте.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо AR_Favorit за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:40.
|
|