У меня проблема с закрытием UDP соединения по GPRS. Привожу отладочные сообщения устройства с комментариями:
AT OK
AT+CREG? +CREG: 0,1 OK
AT+CGATT? +CGATT: 1 OK
GSM AT+CIPMODE=1 OK
// Последний 0, чтобы по +++ не переходил в режим команд. Вдруг, такая комбинация данных встретиться. AT+CIPCCFG=5,3,256,0 OK
// переход в режим команд осуществляется сбросом линии DTR AT&D1 OK
// XXX.XXX.XXX.XXX - мой статический IP AT+CIPSTART="UDP","XXX.XXX.XXX.XXX","5000" OK CONNECT
Дальше идет обмен данными с XXX.XXX.XXX.XXX, все хорошо
Дальше я делаю следующие действия с сигналам DTR: - Сбрасываю DTR - Жду 2 секунды - Устанавливаю DTR - Жду 2 секунды - Работаю дальше
А вот дальше возможны следующие варианты: 1. AT+CIPCLOSE CLOSE OK
2. // Идет какой-то мусор и команда закрытия выдает ошибку, но следующая проходит нормально xxxxxxxxxjU5 AT+CIPCLOSE ERROR
AT+CIPCLOSE CLOSE OK
3. Самый плохой вариант, встретился один раз. Модуль перестает реагировать на любые AT команды и, хуже всего, не перезагружается c помощью линии PWRKEY (17).
В первом и втром случае я выхожу на команду AT+CIPSTART="UDP","XXX.XXX.XXX.XXX","5001" OK CONNECT
и так далее, пока не встретиться случай 3. Сейчас пытаюсь поймать 3 вариант еще раз. Но второй случай тоже не нравится.
Что я делаю не так?
|