Доброго времени суток. Пытаюсь с помощью SIM900 осуществить TCP соединение с сервером, с целью обмена данными по протоколу HTTP. Применяю следующий алгоритм: 1) Подаю питание на модуль 2) Жду пока он зарегистрируется в сети 3) Подключаю сервис GPRS командой AT+CGATT=1 4) Устанавливаю тип соединения (GPRS) командой AT+CIPCSGP=1,"internet.mts.ru","mts","mts" 5) Устанавливаю TCP соединение с сервером командой AT+CIPSTART="TCP","IP-адрес сервера","80" 6) Вхожу в режим передачи данных на сервер командой AT+CIPSEND 7) Жду от SIM900 приглашения к началу передачи данных (символ '>') 8) Отправляю HTTP-запрос вида:
GET http://адрес.ru/index.php?параметры HTTP/1.0 Host: адрес.ru признак конца HTTP-запроса (2 байта 0x0A)
9) Посылаю признак конца блока данных (0x1A) 10) Считываю данные, пришедшие от сервера 11) Жду от модуля сообщение CLOSED 12) Выполняю текущие операции 13) Переход к п. 5)
В принципе, алгоритм работает, но бывает, что после нескольких соединений происходит зависание на п. 7. Так еще, после отправки команды AT+CIPSEND приглашения > не приходит. Подскажите пожалуйста, что я делаю не так?
|