Всем привет. После поиска причины зависания данного модуля удалось добиться повторяемости ситуации.
Последовательность такая:
1. Инициализация модуля
2. Активация GPRS,
следующие два действия выполняются в цикле:
3. Передача данных на сервер (100-200 байт раз в полминуты)
4. В течение всего оставшегося времени отправка АТ-команд без задержек (запрос статусов, температуры, напряжения питания)
Если между АТ-командами запроса статусов делать задержку 200-300 мс, то ничего не зависает, а если без задержек, то после какой-нибудь команды приходит ответ ERROR, после чего отправляю следующую команду и тут модуль уходит в себя, отказываясь совсем отвечать до перезапуска.
АТ-команды отправлял по отдельности и все вместе, как на скрине. Эффект один и тот же. Что нужно делать после ответа ERROR, не прибегая к перезапуску? Какую команду отправить? Пнуть модуль можно только программно по UART.